diff --git a/CHANGELOG.md b/CHANGELOG.md
new file mode 100644
--- /dev/null
+++ b/CHANGELOG.md
@@ -0,0 +1,39 @@
+# Changelog for `haal-models`
+
+All notable changes to this project will be documented in this file.
+
+The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
+and this project adheres to the
+[Haskell Package Versioning Policy](https://pvp.haskell.org/).
+
+## 0.1.3.0 - 2026-10-10
+
+### Changed
+- Builds against `haal` 0.7: bumped the dependency to
+  `haal >= 0.7.0.0 && < 0.8`. The models are unchanged.
+
+## 0.1.2.0 - 2026-10-03
+
+### Changed
+- All models are regenerated with the table-based `haal-gen`, which builds
+  them with `Haal.Automaton.MealyAutomaton.mkMealyAutomatonTable` instead of
+  one equation per transition. Types, state numbering, and transitions are
+  unchanged, and stepping a model is as fast as before. The package builds
+  in about half the time at `-O1` and a third at `-O0`. This requires the
+  `haal` release that adds `mkMealyAutomatonTable`. Bumped dependency 
+  to `haal >= 0.6 && haal < 0.7`.
+
+## 0.1.1.0 - 2026-04-22
+
+### Added
+- `tasty-bench`-based benchmark suite in `bench/` covering end-to-end
+  learning on real protocol models (MQTT, TLS, TCP) and scaling analysis
+  across model sizes. Run with `stack bench haal-models`.
+
+### Changed
+- Bumped `haal` dependency bound to `>= 0.5.0.0 && < 0.6`.
+
+## 0.1.0.0 - 2026-03-21
+
+- Initial release. Pre-built Mealy automaton models for DTLS, MQTT, TCP,
+  and TLS protocols generated from DOT files via `haal-gen`.
diff --git a/bench/Bench/Models.hs b/bench/Bench/Models.hs
new file mode 100644
--- /dev/null
+++ b/bench/Bench/Models.hs
@@ -0,0 +1,52 @@
+module Bench.Models (modelBenchmarks) where
+
+import Test.Tasty.Bench (Benchmark, bench, bgroup, whnf)
+
+import Haal.EquivalenceOracle.WMethod (WMethod, WMethodConfig (..), mkWMethod)
+import Haal.EquivalenceOracle.WpMethod (WpMethod, WpMethodConfig (..), mkWpMethod)
+import Haal.Experiment (experiment, runExperiment)
+import Haal.Learning.LMstar (LMstarConfig (..), mkLMstar)
+
+import Haal.Models.MQTT.EmqttSimple (emqttSimple)
+import Haal.Models.TCP.TCPLinuxServer (tCPLinuxServer)
+import Haal.Models.TLS.OpenSSLV1V0V2ServerRegular (openSSLV1V0V2ServerRegular)
+
+wmethod :: Int -> WMethod
+wmethod d = either error id (mkWMethod (WMethodConfig d))
+
+wpmethod :: Int -> WpMethod
+wpmethod d = either error id (mkWpMethod (WpMethodConfig d))
+
+{- | End-to-end learning benchmarks on real protocol models.
+Uses whnf since MealyAutomaton contains functions (no NFData).
+-}
+modelBenchmarks :: Benchmark
+modelBenchmarks =
+    bgroup
+        "Models"
+        [ bgroup
+            "MQTT/EmqttSimple (3 states)"
+            [ bench "LMstar/WMethod" $
+                whnf (runExperiment (experiment (mkLMstar Star) (wmethod 1))) emqttSimple
+            , bench "LMstar/WpMethod" $
+                whnf (runExperiment (experiment (mkLMstar Star) (wpmethod 1))) emqttSimple
+            , bench "LMplus/WMethod" $
+                whnf (runExperiment (experiment (mkLMstar Plus) (wmethod 1))) emqttSimple
+            ]
+        , bgroup
+            "TLS/OpenSSL (7 states)"
+            [ bench "LMstar/WMethod" $
+                whnf (runExperiment (experiment (mkLMstar Star) (wmethod 1))) openSSLV1V0V2ServerRegular
+            , bench "LMstar/WpMethod" $
+                whnf (runExperiment (experiment (mkLMstar Star) (wpmethod 1))) openSSLV1V0V2ServerRegular
+            , bench "LMplus/WMethod" $
+                whnf (runExperiment (experiment (mkLMstar Plus) (wmethod 1))) openSSLV1V0V2ServerRegular
+            ]
+        , bgroup
+            "TCP/LinuxServer (57 states)"
+            [ bench "LMstar/WMethod" $
+                whnf (runExperiment (experiment (mkLMstar Star) (wmethod 0))) tCPLinuxServer
+            , bench "LMstar/WpMethod" $
+                whnf (runExperiment (experiment (mkLMstar Star) (wpmethod 0))) tCPLinuxServer
+            ]
+        ]
diff --git a/bench/Bench/Scaling.hs b/bench/Bench/Scaling.hs
new file mode 100644
--- /dev/null
+++ b/bench/Bench/Scaling.hs
@@ -0,0 +1,77 @@
+module Bench.Scaling (scalingBenchmarks) where
+
+import qualified Data.Map as Map
+import qualified Data.Set as Set
+import Test.Tasty.Bench (Benchmark, bench, bgroup, nf, whnf)
+
+import Haal.BlackBox (accessSequences, globalCharacterizingSet, reachable)
+import Haal.EquivalenceOracle.WMethod (WMethod, WMethodConfig (..), mkWMethod, wmethodSuiteSize)
+import Haal.Experiment (experiment, runExperiment)
+import Haal.Learning.LMstar (LMstarConfig (..), mkLMstar)
+
+import Haal.Models.MQTT.ActiveMQNonClean (activeMQNonClean)
+import Haal.Models.MQTT.EmqttSimple (emqttSimple)
+import Haal.Models.TCP.TCPLinuxServer (tCPLinuxServer)
+import Haal.Models.TLS.OpenSSLV1V0V2ServerRegular (openSSLV1V0V2ServerRegular)
+
+wmethod :: Int -> WMethod
+wmethod d = either error id (mkWMethod (WMethodConfig d))
+
+-- | Scaling benchmarks: measure BlackBox operations and learning across model sizes.
+scalingBenchmarks :: Benchmark
+scalingBenchmarks =
+    bgroup
+        "Scaling"
+        [ bgroup
+            "reachable"
+            [ bench "MQTT/EmqttSimple (3 states)" $
+                nf (Set.size . reachable) emqttSimple
+            , bench "TLS/OpenSSL (7 states)" $
+                nf (Set.size . reachable) openSSLV1V0V2ServerRegular
+            , bench "MQTT/ActiveMQNonClean (12 states)" $
+                nf (Set.size . reachable) activeMQNonClean
+            , bench "TCP/LinuxServer (57 states)" $
+                nf (Set.size . reachable) tCPLinuxServer
+            ]
+        , bgroup
+            "accessSequences"
+            [ bench "MQTT/EmqttSimple (3 states)" $
+                nf (Map.size . accessSequences) emqttSimple
+            , bench "TLS/OpenSSL (7 states)" $
+                nf (Map.size . accessSequences) openSSLV1V0V2ServerRegular
+            , bench "MQTT/ActiveMQNonClean (12 states)" $
+                nf (Map.size . accessSequences) activeMQNonClean
+            , bench "TCP/LinuxServer (57 states)" $
+                nf (Map.size . accessSequences) tCPLinuxServer
+            ]
+        , bgroup
+            "globalCharacterizingSet"
+            [ bench "MQTT/EmqttSimple (3 states)" $
+                nf (Set.size . globalCharacterizingSet) emqttSimple
+            , bench "TLS/OpenSSL (7 states)" $
+                nf (Set.size . globalCharacterizingSet) openSSLV1V0V2ServerRegular
+            , bench "MQTT/ActiveMQNonClean (12 states)" $
+                nf (Set.size . globalCharacterizingSet) activeMQNonClean
+            , bench "TCP/LinuxServer (57 states)" $
+                nf (Set.size . globalCharacterizingSet) tCPLinuxServer
+            ]
+        , bgroup
+            "wmethodSuiteSize"
+            [ bgroup
+                "MQTT/ActiveMQNonClean (12 states)"
+                [ bench "depth=0" $ nf (\w -> wmethodSuiteSize w activeMQNonClean) (wmethod 0)
+                , bench "depth=1" $ nf (\w -> wmethodSuiteSize w activeMQNonClean) (wmethod 1)
+                , bench "depth=2" $ nf (\w -> wmethodSuiteSize w activeMQNonClean) (wmethod 2)
+                , bench "depth=3" $ nf (\w -> wmethodSuiteSize w activeMQNonClean) (wmethod 3)
+                ]
+            ]
+        , bgroup
+            "learning"
+            [ bench "MQTT/EmqttSimple (3 states)" $
+                whnf (runExperiment (experiment (mkLMstar Star) (wmethod 1))) emqttSimple
+            , bench "TLS/OpenSSL (7 states)" $
+                whnf (runExperiment (experiment (mkLMstar Star) (wmethod 1))) openSSLV1V0V2ServerRegular
+            , bench "TCP/LinuxServer (57 states)" $
+                whnf (runExperiment (experiment (mkLMstar Star) (wmethod 0))) tCPLinuxServer
+            ]
+        ]
diff --git a/bench/Main.hs b/bench/Main.hs
new file mode 100644
--- /dev/null
+++ b/bench/Main.hs
@@ -0,0 +1,13 @@
+module Main (main) where
+
+import Test.Tasty.Bench (defaultMain)
+
+import Bench.Models (modelBenchmarks)
+import Bench.Scaling (scalingBenchmarks)
+
+main :: IO ()
+main =
+    defaultMain
+        [ modelBenchmarks
+        , scalingBenchmarks
+        ]
diff --git a/haal-models.cabal b/haal-models.cabal
--- a/haal-models.cabal
+++ b/haal-models.cabal
@@ -1,11 +1,11 @@
 cabal-version: 2.2
 
--- This file has been generated from package.yaml by hpack version 0.38.1.
+-- This file has been generated from package.yaml by hpack version 0.38.0.
 --
 -- see: https://github.com/sol/hpack
 
 name:           haal-models
-version:        0.1.0.0
+version:        0.1.3.0
 synopsis:       Pre-built Mealy automaton models for haal.
 description:    A collection of real-world Mealy automaton models (DTLS, MQTT, TCP, TLS) bundled for use with the haal library.
 category:       Model Learning
@@ -16,6 +16,8 @@
 copyright:      2025 Stefanos Anagnostou
 license:        BSD-3-Clause
 build-type:     Simple
+extra-doc-files:
+    CHANGELOG.md
 
 source-repository head
   type: git
@@ -104,5 +106,27 @@
   build-depends:
       base >=4.18.3 && <5
     , containers >=0.6.7 && <0.8
+    , haal >=0.7.0.0 && <0.8
+  default-language: Haskell2010
+
+benchmark haal-models-bench
+  type: exitcode-stdio-1.0
+  main-is: Main.hs
+  other-modules:
+      Bench.Models
+      Bench.Scaling
+      Paths_haal_models
+  autogen-modules:
+      Paths_haal_models
+  hs-source-dirs:
+      bench
+  ghc-options: -Wall -Wcompat -Widentities -Wincomplete-record-updates -Wincomplete-uni-patterns -Wmissing-export-lists -Wmissing-home-modules -Wpartial-fields -Wredundant-constraints -threaded -rtsopts -with-rtsopts=-N -O2
+  build-depends:
+      base >=4.18.3 && <5
+    , containers
+    , deepseq
     , haal
+    , haal-models
+    , tasty
+    , tasty-bench
   default-language: Haskell2010
diff --git a/src/Haal/Models/DTLS/CtinydtlsEcdheCertNone.hs b/src/Haal/Models/DTLS/CtinydtlsEcdheCertNone.hs
--- a/src/Haal/Models/DTLS/CtinydtlsEcdheCertNone.hs
+++ b/src/Haal/Models/DTLS/CtinydtlsEcdheCertNone.hs
@@ -5,8 +5,7 @@
     , ctinydtlsEcdheCertNone
     ) where
 
-import qualified Data.Set as Set
-import Haal.Automaton.MealyAutomaton (MealyAutomaton, mkMealyAutomaton)
+import Haal.Automaton.MealyAutomaton (MealyAutomaton, mkMealyAutomatonTable)
 
 data CtinydtlsEcdheCertNoneInput
     = In_ECDH_CLIENT_HELLO
@@ -32,508 +31,313 @@
     | Out_APPLICATION
     deriving (Show, Eq, Ord, Enum, Bounded)
 
+{- Transitions (state  input -> next state / output):
+    0     In_ECDH_CLIENT_HELLO               -> 1 / Out_HELLO_VERIFY_REQUEST
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 2 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 0 / Out_TIMEOUT
+          In_APPLICATION                     -> 0 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 0 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 0 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 0 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 0 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 0 / Out_TIMEOUT
+    1     In_ECDH_CLIENT_HELLO               -> 4 / Out_SERVER_HELLO_CERTIFICATE_ECDHE_SERVER_KEY_EXCHANGE_SERVER_HELLO_DONE
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 5 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 6 / Out_TIMEOUT
+          In_FINISHED                        -> 1 / Out_TIMEOUT
+          In_APPLICATION                     -> 1 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 1 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 1 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 1 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 1 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 1 / Out_TIMEOUT
+    2     In_ECDH_CLIENT_HELLO               -> 5 / Out_HELLO_VERIFY_REQUEST
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 2 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 19 / Out_TIMEOUT
+          In_FINISHED                        -> 2 / Out_TIMEOUT
+          In_APPLICATION                     -> 2 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 2 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 2 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 2 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 2 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 2 / Out_TIMEOUT
+    3     In_ECDH_CLIENT_HELLO               -> 6 / Out_HELLO_VERIFY_REQUEST
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 19 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 3 / Out_TIMEOUT
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 3 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 3 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 3 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 3 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 3 / Out_TIMEOUT
+    4     In_ECDH_CLIENT_HELLO               -> 7 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 8 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 9 / Out_TIMEOUT
+          In_FINISHED                        -> 7 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_APPLICATION                     -> 4 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 7 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_EMPTY_CERTIFICATE               -> 7 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CERTIFICATE_VERIFY              -> 7 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 10 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 10 / Out_TIMEOUT
+    5     In_ECDH_CLIENT_HELLO               -> 18 / Out_SERVER_HELLO_CERTIFICATE_ECDHE_SERVER_KEY_EXCHANGE_SERVER_HELLO_DONE
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 5 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 15 / Out_TIMEOUT
+          In_FINISHED                        -> 5 / Out_TIMEOUT
+          In_APPLICATION                     -> 5 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 5 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 5 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 5 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 5 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 5 / Out_TIMEOUT
+    6     In_ECDH_CLIENT_HELLO               -> 9 / Out_SERVER_HELLO_CERTIFICATE_ECDHE_SERVER_KEY_EXCHANGE_SERVER_HELLO_DONE
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 15 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 6 / Out_TIMEOUT
+          In_FINISHED                        -> 6 / Out_TIMEOUT
+          In_APPLICATION                     -> 6 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 6 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 6 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 6 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 6 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 6 / Out_TIMEOUT
+    7     In_ECDH_CLIENT_HELLO               -> 7 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 11 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 12 / Out_TIMEOUT
+          In_FINISHED                        -> 7 / Out_TIMEOUT
+          In_APPLICATION                     -> 7 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 7 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 7 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 7 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 10 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 10 / Out_TIMEOUT
+    8     In_ECDH_CLIENT_HELLO               -> 11 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 11 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CHANGE_CIPHER_SPEC              -> 20 / Out_TIMEOUT
+          In_FINISHED                        -> 11 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_APPLICATION                     -> 8 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 11 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_EMPTY_CERTIFICATE               -> 11 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CERTIFICATE_VERIFY              -> 11 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 17 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 17 / Out_TIMEOUT
+    9     In_ECDH_CLIENT_HELLO               -> 13 / Out_Alert_FATAL_DECRYPT_ERROR
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 14 / Out_Alert_FATAL_DECRYPT_ERROR
+          In_CHANGE_CIPHER_SPEC              -> 13 / Out_Alert_FATAL_DECRYPT_ERROR
+          In_FINISHED                        -> 13 / Out_Alert_FATAL_DECRYPT_ERROR
+          In_APPLICATION                     -> 13 / Out_Alert_FATAL_DECRYPT_ERROR
+          In_CERTIFICATE                     -> 13 / Out_Alert_FATAL_DECRYPT_ERROR
+          In_EMPTY_CERTIFICATE               -> 13 / Out_Alert_FATAL_DECRYPT_ERROR
+          In_CERTIFICATE_VERIFY              -> 13 / Out_Alert_FATAL_DECRYPT_ERROR
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 13 / Out_Alert_FATAL_DECRYPT_ERROR
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 13 / Out_Alert_FATAL_DECRYPT_ERROR
+    10    In_ECDH_CLIENT_HELLO               -> 4 / Out_SERVER_HELLO_CERTIFICATE_ECDHE_SERVER_KEY_EXCHANGE_SERVER_HELLO_DONE
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 17 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 13 / Out_TIMEOUT
+          In_FINISHED                        -> 10 / Out_TIMEOUT
+          In_APPLICATION                     -> 10 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 10 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 10 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 10 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 10 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 10 / Out_TIMEOUT
+    11    In_ECDH_CLIENT_HELLO               -> 11 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 11 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 12 / Out_TIMEOUT
+          In_FINISHED                        -> 11 / Out_TIMEOUT
+          In_APPLICATION                     -> 11 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 11 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 11 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 11 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 17 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 17 / Out_TIMEOUT
+    12    In_ECDH_CLIENT_HELLO               -> 12 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 12 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 12 / Out_TIMEOUT
+          In_FINISHED                        -> 12 / Out_TIMEOUT
+          In_APPLICATION                     -> 12 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 12 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 12 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 12 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 12 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 12 / Out_TIMEOUT
+    13    In_ECDH_CLIENT_HELLO               -> 9 / Out_SERVER_HELLO_CERTIFICATE_ECDHE_SERVER_KEY_EXCHANGE_SERVER_HELLO_DONE
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 14 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 13 / Out_TIMEOUT
+          In_FINISHED                        -> 13 / Out_TIMEOUT
+          In_APPLICATION                     -> 13 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 13 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 13 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 13 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 13 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 13 / Out_TIMEOUT
+    14    In_ECDH_CLIENT_HELLO               -> 16 / Out_SERVER_HELLO_CERTIFICATE_ECDHE_SERVER_KEY_EXCHANGE_SERVER_HELLO_DONE
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 14 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 12 / Out_TIMEOUT
+          In_FINISHED                        -> 14 / Out_TIMEOUT
+          In_APPLICATION                     -> 14 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 14 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 14 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 14 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 14 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 14 / Out_TIMEOUT
+    15    In_ECDH_CLIENT_HELLO               -> 16 / Out_SERVER_HELLO_CERTIFICATE_ECDHE_SERVER_KEY_EXCHANGE_SERVER_HELLO_DONE
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 15 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 15 / Out_TIMEOUT
+          In_FINISHED                        -> 15 / Out_TIMEOUT
+          In_APPLICATION                     -> 15 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 15 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 15 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 15 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 15 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 15 / Out_TIMEOUT
+    16    In_ECDH_CLIENT_HELLO               -> 14 / Out_Alert_FATAL_DECRYPT_ERROR
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 14 / Out_Alert_FATAL_DECRYPT_ERROR
+          In_CHANGE_CIPHER_SPEC              -> 12 / Out_Alert_FATAL_DECRYPT_ERROR
+          In_FINISHED                        -> 14 / Out_Alert_FATAL_DECRYPT_ERROR
+          In_APPLICATION                     -> 14 / Out_Alert_FATAL_DECRYPT_ERROR
+          In_CERTIFICATE                     -> 14 / Out_Alert_FATAL_DECRYPT_ERROR
+          In_EMPTY_CERTIFICATE               -> 14 / Out_Alert_FATAL_DECRYPT_ERROR
+          In_CERTIFICATE_VERIFY              -> 14 / Out_Alert_FATAL_DECRYPT_ERROR
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 14 / Out_Alert_FATAL_DECRYPT_ERROR
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 14 / Out_Alert_FATAL_DECRYPT_ERROR
+    17    In_ECDH_CLIENT_HELLO               -> 18 / Out_SERVER_HELLO_CERTIFICATE_ECDHE_SERVER_KEY_EXCHANGE_SERVER_HELLO_DONE
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 17 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 12 / Out_TIMEOUT
+          In_FINISHED                        -> 17 / Out_TIMEOUT
+          In_APPLICATION                     -> 17 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 17 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 17 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 17 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 17 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 17 / Out_TIMEOUT
+    18    In_ECDH_CLIENT_HELLO               -> 11 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 8 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 21 / Out_TIMEOUT
+          In_FINISHED                        -> 11 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_APPLICATION                     -> 18 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 11 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_EMPTY_CERTIFICATE               -> 11 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CERTIFICATE_VERIFY              -> 11 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 17 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 17 / Out_TIMEOUT
+    19    In_ECDH_CLIENT_HELLO               -> 15 / Out_HELLO_VERIFY_REQUEST
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 19 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 19 / Out_TIMEOUT
+          In_FINISHED                        -> 19 / Out_TIMEOUT
+          In_APPLICATION                     -> 19 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 19 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 19 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 19 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 19 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 19 / Out_TIMEOUT
+    20    In_ECDH_CLIENT_HELLO               -> 12 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 12 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CHANGE_CIPHER_SPEC              -> 21 / Out_TIMEOUT
+          In_FINISHED                        -> 22 / Out_CHANGE_CIPHER_SPEC_FINISHED
+          In_APPLICATION                     -> 20 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 12 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_EMPTY_CERTIFICATE               -> 12 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CERTIFICATE_VERIFY              -> 12 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 12 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 12 / Out_TIMEOUT
+    21    In_ECDH_CLIENT_HELLO               -> 12 / Out_Alert_FATAL_DECRYPT_ERROR
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 12 / Out_Alert_FATAL_DECRYPT_ERROR
+          In_CHANGE_CIPHER_SPEC              -> 12 / Out_Alert_FATAL_DECRYPT_ERROR
+          In_FINISHED                        -> 12 / Out_Alert_FATAL_DECRYPT_ERROR
+          In_APPLICATION                     -> 12 / Out_Alert_FATAL_DECRYPT_ERROR
+          In_CERTIFICATE                     -> 12 / Out_Alert_FATAL_DECRYPT_ERROR
+          In_EMPTY_CERTIFICATE               -> 12 / Out_Alert_FATAL_DECRYPT_ERROR
+          In_CERTIFICATE_VERIFY              -> 12 / Out_Alert_FATAL_DECRYPT_ERROR
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 12 / Out_Alert_FATAL_DECRYPT_ERROR
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 12 / Out_Alert_FATAL_DECRYPT_ERROR
+    22    In_ECDH_CLIENT_HELLO               -> 23 / Out_SERVER_HELLO_CERTIFICATE_ECDHE_SERVER_KEY_EXCHANGE_SERVER_HELLO_DONE
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 22 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 12 / Out_TIMEOUT
+          In_FINISHED                        -> 22 / Out_TIMEOUT
+          In_APPLICATION                     -> 22 / Out_APPLICATION
+          In_CERTIFICATE                     -> 22 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 22 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 22 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 12 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 12 / Out_TIMEOUT
+    23    In_ECDH_CLIENT_HELLO               -> 12 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 24 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 21 / Out_TIMEOUT
+          In_FINISHED                        -> 12 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_APPLICATION                     -> 23 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 12 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_EMPTY_CERTIFICATE               -> 12 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CERTIFICATE_VERIFY              -> 12 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 12 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 12 / Out_TIMEOUT
+    24    In_ECDH_CLIENT_HELLO               -> 12 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 12 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CHANGE_CIPHER_SPEC              -> 20 / Out_TIMEOUT
+          In_FINISHED                        -> 12 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_APPLICATION                     -> 24 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 12 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_EMPTY_CERTIFICATE               -> 12 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CERTIFICATE_VERIFY              -> 12 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 12 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 12 / Out_TIMEOUT
+-}
 ctinydtlsEcdheCertNone :: MealyAutomaton Int CtinydtlsEcdheCertNoneInput CtinydtlsEcdheCertNoneOutput
-ctinydtlsEcdheCertNone = mkMealyAutomaton delta lambda (Set.fromList [0..24]) 0
+ctinydtlsEcdheCertNone =
+    case mkMealyAutomatonTable 25 0 deltaTable lambdaTable of
+        Right m -> m
+        Left err -> error ("haal-gen: invalid transition table: " ++ err)
   where
-    delta 0 In_ECDH_CLIENT_HELLO = 1
-    delta 0 In_ECDH_CLIENT_KEY_EXCHANGE = 2
-    delta 0 In_CHANGE_CIPHER_SPEC = 3
-    delta 0 In_FINISHED = 0
-    delta 0 In_APPLICATION = 0
-    delta 0 In_CERTIFICATE = 0
-    delta 0 In_EMPTY_CERTIFICATE = 0
-    delta 0 In_CERTIFICATE_VERIFY = 0
-    delta 0 In_Alert_WARNING_CLOSE_NOTIFY = 0
-    delta 0 In_Alert_FATAL_UNEXPECTED_MESSAGE = 0
-    delta 1 In_ECDH_CLIENT_HELLO = 4
-    delta 1 In_ECDH_CLIENT_KEY_EXCHANGE = 5
-    delta 1 In_CHANGE_CIPHER_SPEC = 6
-    delta 1 In_FINISHED = 1
-    delta 1 In_APPLICATION = 1
-    delta 1 In_CERTIFICATE = 1
-    delta 1 In_EMPTY_CERTIFICATE = 1
-    delta 1 In_CERTIFICATE_VERIFY = 1
-    delta 1 In_Alert_WARNING_CLOSE_NOTIFY = 1
-    delta 1 In_Alert_FATAL_UNEXPECTED_MESSAGE = 1
-    delta 4 In_ECDH_CLIENT_HELLO = 7
-    delta 4 In_ECDH_CLIENT_KEY_EXCHANGE = 8
-    delta 4 In_CHANGE_CIPHER_SPEC = 9
-    delta 4 In_FINISHED = 7
-    delta 4 In_APPLICATION = 4
-    delta 4 In_CERTIFICATE = 7
-    delta 4 In_EMPTY_CERTIFICATE = 7
-    delta 4 In_CERTIFICATE_VERIFY = 7
-    delta 4 In_Alert_WARNING_CLOSE_NOTIFY = 10
-    delta 4 In_Alert_FATAL_UNEXPECTED_MESSAGE = 10
-    delta 7 In_ECDH_CLIENT_HELLO = 7
-    delta 7 In_ECDH_CLIENT_KEY_EXCHANGE = 11
-    delta 7 In_CHANGE_CIPHER_SPEC = 12
-    delta 7 In_FINISHED = 7
-    delta 7 In_APPLICATION = 7
-    delta 7 In_CERTIFICATE = 7
-    delta 7 In_EMPTY_CERTIFICATE = 7
-    delta 7 In_CERTIFICATE_VERIFY = 7
-    delta 7 In_Alert_WARNING_CLOSE_NOTIFY = 10
-    delta 7 In_Alert_FATAL_UNEXPECTED_MESSAGE = 10
-    delta 9 In_ECDH_CLIENT_HELLO = 13
-    delta 9 In_ECDH_CLIENT_KEY_EXCHANGE = 14
-    delta 9 In_CHANGE_CIPHER_SPEC = 13
-    delta 9 In_FINISHED = 13
-    delta 9 In_APPLICATION = 13
-    delta 9 In_CERTIFICATE = 13
-    delta 9 In_EMPTY_CERTIFICATE = 13
-    delta 9 In_CERTIFICATE_VERIFY = 13
-    delta 9 In_Alert_WARNING_CLOSE_NOTIFY = 13
-    delta 9 In_Alert_FATAL_UNEXPECTED_MESSAGE = 13
-    delta 6 In_ECDH_CLIENT_HELLO = 9
-    delta 6 In_ECDH_CLIENT_KEY_EXCHANGE = 15
-    delta 6 In_CHANGE_CIPHER_SPEC = 6
-    delta 6 In_FINISHED = 6
-    delta 6 In_APPLICATION = 6
-    delta 6 In_CERTIFICATE = 6
-    delta 6 In_EMPTY_CERTIFICATE = 6
-    delta 6 In_CERTIFICATE_VERIFY = 6
-    delta 6 In_Alert_WARNING_CLOSE_NOTIFY = 6
-    delta 6 In_Alert_FATAL_UNEXPECTED_MESSAGE = 6
-    delta 15 In_ECDH_CLIENT_HELLO = 16
-    delta 15 In_ECDH_CLIENT_KEY_EXCHANGE = 15
-    delta 15 In_CHANGE_CIPHER_SPEC = 15
-    delta 15 In_FINISHED = 15
-    delta 15 In_APPLICATION = 15
-    delta 15 In_CERTIFICATE = 15
-    delta 15 In_EMPTY_CERTIFICATE = 15
-    delta 15 In_CERTIFICATE_VERIFY = 15
-    delta 15 In_Alert_WARNING_CLOSE_NOTIFY = 15
-    delta 15 In_Alert_FATAL_UNEXPECTED_MESSAGE = 15
-    delta 16 In_ECDH_CLIENT_HELLO = 14
-    delta 16 In_ECDH_CLIENT_KEY_EXCHANGE = 14
-    delta 16 In_CHANGE_CIPHER_SPEC = 12
-    delta 16 In_FINISHED = 14
-    delta 16 In_APPLICATION = 14
-    delta 16 In_CERTIFICATE = 14
-    delta 16 In_EMPTY_CERTIFICATE = 14
-    delta 16 In_CERTIFICATE_VERIFY = 14
-    delta 16 In_Alert_WARNING_CLOSE_NOTIFY = 14
-    delta 16 In_Alert_FATAL_UNEXPECTED_MESSAGE = 14
-    delta 13 In_ECDH_CLIENT_HELLO = 9
-    delta 13 In_ECDH_CLIENT_KEY_EXCHANGE = 14
-    delta 13 In_CHANGE_CIPHER_SPEC = 13
-    delta 13 In_FINISHED = 13
-    delta 13 In_APPLICATION = 13
-    delta 13 In_CERTIFICATE = 13
-    delta 13 In_EMPTY_CERTIFICATE = 13
-    delta 13 In_CERTIFICATE_VERIFY = 13
-    delta 13 In_Alert_WARNING_CLOSE_NOTIFY = 13
-    delta 13 In_Alert_FATAL_UNEXPECTED_MESSAGE = 13
-    delta 14 In_ECDH_CLIENT_HELLO = 16
-    delta 14 In_ECDH_CLIENT_KEY_EXCHANGE = 14
-    delta 14 In_CHANGE_CIPHER_SPEC = 12
-    delta 14 In_FINISHED = 14
-    delta 14 In_APPLICATION = 14
-    delta 14 In_CERTIFICATE = 14
-    delta 14 In_EMPTY_CERTIFICATE = 14
-    delta 14 In_CERTIFICATE_VERIFY = 14
-    delta 14 In_Alert_WARNING_CLOSE_NOTIFY = 14
-    delta 14 In_Alert_FATAL_UNEXPECTED_MESSAGE = 14
-    delta 12 In_ECDH_CLIENT_HELLO = 12
-    delta 12 In_ECDH_CLIENT_KEY_EXCHANGE = 12
-    delta 12 In_CHANGE_CIPHER_SPEC = 12
-    delta 12 In_FINISHED = 12
-    delta 12 In_APPLICATION = 12
-    delta 12 In_CERTIFICATE = 12
-    delta 12 In_EMPTY_CERTIFICATE = 12
-    delta 12 In_CERTIFICATE_VERIFY = 12
-    delta 12 In_Alert_WARNING_CLOSE_NOTIFY = 12
-    delta 12 In_Alert_FATAL_UNEXPECTED_MESSAGE = 12
-    delta 10 In_ECDH_CLIENT_HELLO = 4
-    delta 10 In_ECDH_CLIENT_KEY_EXCHANGE = 17
-    delta 10 In_CHANGE_CIPHER_SPEC = 13
-    delta 10 In_FINISHED = 10
-    delta 10 In_APPLICATION = 10
-    delta 10 In_CERTIFICATE = 10
-    delta 10 In_EMPTY_CERTIFICATE = 10
-    delta 10 In_CERTIFICATE_VERIFY = 10
-    delta 10 In_Alert_WARNING_CLOSE_NOTIFY = 10
-    delta 10 In_Alert_FATAL_UNEXPECTED_MESSAGE = 10
-    delta 17 In_ECDH_CLIENT_HELLO = 18
-    delta 17 In_ECDH_CLIENT_KEY_EXCHANGE = 17
-    delta 17 In_CHANGE_CIPHER_SPEC = 12
-    delta 17 In_FINISHED = 17
-    delta 17 In_APPLICATION = 17
-    delta 17 In_CERTIFICATE = 17
-    delta 17 In_EMPTY_CERTIFICATE = 17
-    delta 17 In_CERTIFICATE_VERIFY = 17
-    delta 17 In_Alert_WARNING_CLOSE_NOTIFY = 17
-    delta 17 In_Alert_FATAL_UNEXPECTED_MESSAGE = 17
-    delta 11 In_ECDH_CLIENT_HELLO = 11
-    delta 11 In_ECDH_CLIENT_KEY_EXCHANGE = 11
-    delta 11 In_CHANGE_CIPHER_SPEC = 12
-    delta 11 In_FINISHED = 11
-    delta 11 In_APPLICATION = 11
-    delta 11 In_CERTIFICATE = 11
-    delta 11 In_EMPTY_CERTIFICATE = 11
-    delta 11 In_CERTIFICATE_VERIFY = 11
-    delta 11 In_Alert_WARNING_CLOSE_NOTIFY = 17
-    delta 11 In_Alert_FATAL_UNEXPECTED_MESSAGE = 17
-    delta 3 In_ECDH_CLIENT_HELLO = 6
-    delta 3 In_ECDH_CLIENT_KEY_EXCHANGE = 19
-    delta 3 In_CHANGE_CIPHER_SPEC = 3
-    delta 3 In_FINISHED = 3
-    delta 3 In_APPLICATION = 3
-    delta 3 In_CERTIFICATE = 3
-    delta 3 In_EMPTY_CERTIFICATE = 3
-    delta 3 In_CERTIFICATE_VERIFY = 3
-    delta 3 In_Alert_WARNING_CLOSE_NOTIFY = 3
-    delta 3 In_Alert_FATAL_UNEXPECTED_MESSAGE = 3
-    delta 19 In_ECDH_CLIENT_HELLO = 15
-    delta 19 In_ECDH_CLIENT_KEY_EXCHANGE = 19
-    delta 19 In_CHANGE_CIPHER_SPEC = 19
-    delta 19 In_FINISHED = 19
-    delta 19 In_APPLICATION = 19
-    delta 19 In_CERTIFICATE = 19
-    delta 19 In_EMPTY_CERTIFICATE = 19
-    delta 19 In_CERTIFICATE_VERIFY = 19
-    delta 19 In_Alert_WARNING_CLOSE_NOTIFY = 19
-    delta 19 In_Alert_FATAL_UNEXPECTED_MESSAGE = 19
-    delta 8 In_ECDH_CLIENT_HELLO = 11
-    delta 8 In_ECDH_CLIENT_KEY_EXCHANGE = 11
-    delta 8 In_CHANGE_CIPHER_SPEC = 20
-    delta 8 In_FINISHED = 11
-    delta 8 In_APPLICATION = 8
-    delta 8 In_CERTIFICATE = 11
-    delta 8 In_EMPTY_CERTIFICATE = 11
-    delta 8 In_CERTIFICATE_VERIFY = 11
-    delta 8 In_Alert_WARNING_CLOSE_NOTIFY = 17
-    delta 8 In_Alert_FATAL_UNEXPECTED_MESSAGE = 17
-    delta 18 In_ECDH_CLIENT_HELLO = 11
-    delta 18 In_ECDH_CLIENT_KEY_EXCHANGE = 8
-    delta 18 In_CHANGE_CIPHER_SPEC = 21
-    delta 18 In_FINISHED = 11
-    delta 18 In_APPLICATION = 18
-    delta 18 In_CERTIFICATE = 11
-    delta 18 In_EMPTY_CERTIFICATE = 11
-    delta 18 In_CERTIFICATE_VERIFY = 11
-    delta 18 In_Alert_WARNING_CLOSE_NOTIFY = 17
-    delta 18 In_Alert_FATAL_UNEXPECTED_MESSAGE = 17
-    delta 21 In_ECDH_CLIENT_HELLO = 12
-    delta 21 In_ECDH_CLIENT_KEY_EXCHANGE = 12
-    delta 21 In_CHANGE_CIPHER_SPEC = 12
-    delta 21 In_FINISHED = 12
-    delta 21 In_APPLICATION = 12
-    delta 21 In_CERTIFICATE = 12
-    delta 21 In_EMPTY_CERTIFICATE = 12
-    delta 21 In_CERTIFICATE_VERIFY = 12
-    delta 21 In_Alert_WARNING_CLOSE_NOTIFY = 12
-    delta 21 In_Alert_FATAL_UNEXPECTED_MESSAGE = 12
-    delta 20 In_ECDH_CLIENT_HELLO = 12
-    delta 20 In_ECDH_CLIENT_KEY_EXCHANGE = 12
-    delta 20 In_CHANGE_CIPHER_SPEC = 21
-    delta 20 In_FINISHED = 22
-    delta 20 In_APPLICATION = 20
-    delta 20 In_CERTIFICATE = 12
-    delta 20 In_EMPTY_CERTIFICATE = 12
-    delta 20 In_CERTIFICATE_VERIFY = 12
-    delta 20 In_Alert_WARNING_CLOSE_NOTIFY = 12
-    delta 20 In_Alert_FATAL_UNEXPECTED_MESSAGE = 12
-    delta 22 In_ECDH_CLIENT_HELLO = 23
-    delta 22 In_ECDH_CLIENT_KEY_EXCHANGE = 22
-    delta 22 In_CHANGE_CIPHER_SPEC = 12
-    delta 22 In_FINISHED = 22
-    delta 22 In_APPLICATION = 22
-    delta 22 In_CERTIFICATE = 22
-    delta 22 In_EMPTY_CERTIFICATE = 22
-    delta 22 In_CERTIFICATE_VERIFY = 22
-    delta 22 In_Alert_WARNING_CLOSE_NOTIFY = 12
-    delta 22 In_Alert_FATAL_UNEXPECTED_MESSAGE = 12
-    delta 23 In_ECDH_CLIENT_HELLO = 12
-    delta 23 In_ECDH_CLIENT_KEY_EXCHANGE = 24
-    delta 23 In_CHANGE_CIPHER_SPEC = 21
-    delta 23 In_FINISHED = 12
-    delta 23 In_APPLICATION = 23
-    delta 23 In_CERTIFICATE = 12
-    delta 23 In_EMPTY_CERTIFICATE = 12
-    delta 23 In_CERTIFICATE_VERIFY = 12
-    delta 23 In_Alert_WARNING_CLOSE_NOTIFY = 12
-    delta 23 In_Alert_FATAL_UNEXPECTED_MESSAGE = 12
-    delta 5 In_ECDH_CLIENT_HELLO = 18
-    delta 5 In_ECDH_CLIENT_KEY_EXCHANGE = 5
-    delta 5 In_CHANGE_CIPHER_SPEC = 15
-    delta 5 In_FINISHED = 5
-    delta 5 In_APPLICATION = 5
-    delta 5 In_CERTIFICATE = 5
-    delta 5 In_EMPTY_CERTIFICATE = 5
-    delta 5 In_CERTIFICATE_VERIFY = 5
-    delta 5 In_Alert_WARNING_CLOSE_NOTIFY = 5
-    delta 5 In_Alert_FATAL_UNEXPECTED_MESSAGE = 5
-    delta 2 In_ECDH_CLIENT_HELLO = 5
-    delta 2 In_ECDH_CLIENT_KEY_EXCHANGE = 2
-    delta 2 In_CHANGE_CIPHER_SPEC = 19
-    delta 2 In_FINISHED = 2
-    delta 2 In_APPLICATION = 2
-    delta 2 In_CERTIFICATE = 2
-    delta 2 In_EMPTY_CERTIFICATE = 2
-    delta 2 In_CERTIFICATE_VERIFY = 2
-    delta 2 In_Alert_WARNING_CLOSE_NOTIFY = 2
-    delta 2 In_Alert_FATAL_UNEXPECTED_MESSAGE = 2
-    delta 24 In_ECDH_CLIENT_HELLO = 12
-    delta 24 In_ECDH_CLIENT_KEY_EXCHANGE = 12
-    delta 24 In_CHANGE_CIPHER_SPEC = 20
-    delta 24 In_FINISHED = 12
-    delta 24 In_APPLICATION = 24
-    delta 24 In_CERTIFICATE = 12
-    delta 24 In_EMPTY_CERTIFICATE = 12
-    delta 24 In_CERTIFICATE_VERIFY = 12
-    delta 24 In_Alert_WARNING_CLOSE_NOTIFY = 12
-    delta 24 In_Alert_FATAL_UNEXPECTED_MESSAGE = 12
-    delta _ _ = error "haal-gen: undefined transition"
-    lambda 0 In_ECDH_CLIENT_HELLO = Out_HELLO_VERIFY_REQUEST
-    lambda 0 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 0 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 0 In_FINISHED = Out_TIMEOUT
-    lambda 0 In_APPLICATION = Out_TIMEOUT
-    lambda 0 In_CERTIFICATE = Out_TIMEOUT
-    lambda 0 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 0 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 0 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 0 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 1 In_ECDH_CLIENT_HELLO = Out_SERVER_HELLO_CERTIFICATE_ECDHE_SERVER_KEY_EXCHANGE_SERVER_HELLO_DONE
-    lambda 1 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 1 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 1 In_FINISHED = Out_TIMEOUT
-    lambda 1 In_APPLICATION = Out_TIMEOUT
-    lambda 1 In_CERTIFICATE = Out_TIMEOUT
-    lambda 1 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 1 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 1 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 1 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 4 In_ECDH_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 4 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 4 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 4 In_FINISHED = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 4 In_APPLICATION = Out_TIMEOUT
-    lambda 4 In_CERTIFICATE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 4 In_EMPTY_CERTIFICATE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 4 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 4 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 4 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 7 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 7 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 7 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 7 In_FINISHED = Out_TIMEOUT
-    lambda 7 In_APPLICATION = Out_TIMEOUT
-    lambda 7 In_CERTIFICATE = Out_TIMEOUT
-    lambda 7 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 7 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 7 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 7 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 9 In_ECDH_CLIENT_HELLO = Out_Alert_FATAL_DECRYPT_ERROR
-    lambda 9 In_ECDH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_DECRYPT_ERROR
-    lambda 9 In_CHANGE_CIPHER_SPEC = Out_Alert_FATAL_DECRYPT_ERROR
-    lambda 9 In_FINISHED = Out_Alert_FATAL_DECRYPT_ERROR
-    lambda 9 In_APPLICATION = Out_Alert_FATAL_DECRYPT_ERROR
-    lambda 9 In_CERTIFICATE = Out_Alert_FATAL_DECRYPT_ERROR
-    lambda 9 In_EMPTY_CERTIFICATE = Out_Alert_FATAL_DECRYPT_ERROR
-    lambda 9 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_DECRYPT_ERROR
-    lambda 9 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_DECRYPT_ERROR
-    lambda 9 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_Alert_FATAL_DECRYPT_ERROR
-    lambda 6 In_ECDH_CLIENT_HELLO = Out_SERVER_HELLO_CERTIFICATE_ECDHE_SERVER_KEY_EXCHANGE_SERVER_HELLO_DONE
-    lambda 6 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 6 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 6 In_FINISHED = Out_TIMEOUT
-    lambda 6 In_APPLICATION = Out_TIMEOUT
-    lambda 6 In_CERTIFICATE = Out_TIMEOUT
-    lambda 6 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 6 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 6 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 6 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 15 In_ECDH_CLIENT_HELLO = Out_SERVER_HELLO_CERTIFICATE_ECDHE_SERVER_KEY_EXCHANGE_SERVER_HELLO_DONE
-    lambda 15 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 15 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 15 In_FINISHED = Out_TIMEOUT
-    lambda 15 In_APPLICATION = Out_TIMEOUT
-    lambda 15 In_CERTIFICATE = Out_TIMEOUT
-    lambda 15 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 15 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 15 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 15 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 16 In_ECDH_CLIENT_HELLO = Out_Alert_FATAL_DECRYPT_ERROR
-    lambda 16 In_ECDH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_DECRYPT_ERROR
-    lambda 16 In_CHANGE_CIPHER_SPEC = Out_Alert_FATAL_DECRYPT_ERROR
-    lambda 16 In_FINISHED = Out_Alert_FATAL_DECRYPT_ERROR
-    lambda 16 In_APPLICATION = Out_Alert_FATAL_DECRYPT_ERROR
-    lambda 16 In_CERTIFICATE = Out_Alert_FATAL_DECRYPT_ERROR
-    lambda 16 In_EMPTY_CERTIFICATE = Out_Alert_FATAL_DECRYPT_ERROR
-    lambda 16 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_DECRYPT_ERROR
-    lambda 16 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_DECRYPT_ERROR
-    lambda 16 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_Alert_FATAL_DECRYPT_ERROR
-    lambda 13 In_ECDH_CLIENT_HELLO = Out_SERVER_HELLO_CERTIFICATE_ECDHE_SERVER_KEY_EXCHANGE_SERVER_HELLO_DONE
-    lambda 13 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 13 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 13 In_FINISHED = Out_TIMEOUT
-    lambda 13 In_APPLICATION = Out_TIMEOUT
-    lambda 13 In_CERTIFICATE = Out_TIMEOUT
-    lambda 13 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 13 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 13 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 13 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 14 In_ECDH_CLIENT_HELLO = Out_SERVER_HELLO_CERTIFICATE_ECDHE_SERVER_KEY_EXCHANGE_SERVER_HELLO_DONE
-    lambda 14 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 14 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 14 In_FINISHED = Out_TIMEOUT
-    lambda 14 In_APPLICATION = Out_TIMEOUT
-    lambda 14 In_CERTIFICATE = Out_TIMEOUT
-    lambda 14 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 14 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 14 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 14 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 12 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 12 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 12 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 12 In_FINISHED = Out_TIMEOUT
-    lambda 12 In_APPLICATION = Out_TIMEOUT
-    lambda 12 In_CERTIFICATE = Out_TIMEOUT
-    lambda 12 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 12 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 12 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 12 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 10 In_ECDH_CLIENT_HELLO = Out_SERVER_HELLO_CERTIFICATE_ECDHE_SERVER_KEY_EXCHANGE_SERVER_HELLO_DONE
-    lambda 10 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 10 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 10 In_FINISHED = Out_TIMEOUT
-    lambda 10 In_APPLICATION = Out_TIMEOUT
-    lambda 10 In_CERTIFICATE = Out_TIMEOUT
-    lambda 10 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 10 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 10 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 10 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 17 In_ECDH_CLIENT_HELLO = Out_SERVER_HELLO_CERTIFICATE_ECDHE_SERVER_KEY_EXCHANGE_SERVER_HELLO_DONE
-    lambda 17 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 17 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 17 In_FINISHED = Out_TIMEOUT
-    lambda 17 In_APPLICATION = Out_TIMEOUT
-    lambda 17 In_CERTIFICATE = Out_TIMEOUT
-    lambda 17 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 17 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 17 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 17 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 11 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 11 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 11 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 11 In_FINISHED = Out_TIMEOUT
-    lambda 11 In_APPLICATION = Out_TIMEOUT
-    lambda 11 In_CERTIFICATE = Out_TIMEOUT
-    lambda 11 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 11 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 11 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 11 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 3 In_ECDH_CLIENT_HELLO = Out_HELLO_VERIFY_REQUEST
-    lambda 3 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 3 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 3 In_FINISHED = Out_TIMEOUT
-    lambda 3 In_APPLICATION = Out_TIMEOUT
-    lambda 3 In_CERTIFICATE = Out_TIMEOUT
-    lambda 3 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 3 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 3 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 3 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 19 In_ECDH_CLIENT_HELLO = Out_HELLO_VERIFY_REQUEST
-    lambda 19 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 19 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 19 In_FINISHED = Out_TIMEOUT
-    lambda 19 In_APPLICATION = Out_TIMEOUT
-    lambda 19 In_CERTIFICATE = Out_TIMEOUT
-    lambda 19 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 19 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 19 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 19 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 8 In_ECDH_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 8 In_ECDH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 8 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 8 In_FINISHED = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 8 In_APPLICATION = Out_TIMEOUT
-    lambda 8 In_CERTIFICATE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 8 In_EMPTY_CERTIFICATE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 8 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 8 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 8 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 18 In_ECDH_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 18 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 18 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 18 In_FINISHED = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 18 In_APPLICATION = Out_TIMEOUT
-    lambda 18 In_CERTIFICATE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 18 In_EMPTY_CERTIFICATE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 18 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 18 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 18 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 21 In_ECDH_CLIENT_HELLO = Out_Alert_FATAL_DECRYPT_ERROR
-    lambda 21 In_ECDH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_DECRYPT_ERROR
-    lambda 21 In_CHANGE_CIPHER_SPEC = Out_Alert_FATAL_DECRYPT_ERROR
-    lambda 21 In_FINISHED = Out_Alert_FATAL_DECRYPT_ERROR
-    lambda 21 In_APPLICATION = Out_Alert_FATAL_DECRYPT_ERROR
-    lambda 21 In_CERTIFICATE = Out_Alert_FATAL_DECRYPT_ERROR
-    lambda 21 In_EMPTY_CERTIFICATE = Out_Alert_FATAL_DECRYPT_ERROR
-    lambda 21 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_DECRYPT_ERROR
-    lambda 21 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_DECRYPT_ERROR
-    lambda 21 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_Alert_FATAL_DECRYPT_ERROR
-    lambda 20 In_ECDH_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 20 In_ECDH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 20 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 20 In_FINISHED = Out_CHANGE_CIPHER_SPEC_FINISHED
-    lambda 20 In_APPLICATION = Out_TIMEOUT
-    lambda 20 In_CERTIFICATE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 20 In_EMPTY_CERTIFICATE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 20 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 20 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 20 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 22 In_ECDH_CLIENT_HELLO = Out_SERVER_HELLO_CERTIFICATE_ECDHE_SERVER_KEY_EXCHANGE_SERVER_HELLO_DONE
-    lambda 22 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 22 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 22 In_FINISHED = Out_TIMEOUT
-    lambda 22 In_APPLICATION = Out_APPLICATION
-    lambda 22 In_CERTIFICATE = Out_TIMEOUT
-    lambda 22 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 22 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 22 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 22 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 23 In_ECDH_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 23 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 23 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 23 In_FINISHED = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 23 In_APPLICATION = Out_TIMEOUT
-    lambda 23 In_CERTIFICATE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 23 In_EMPTY_CERTIFICATE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 23 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 23 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 23 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 5 In_ECDH_CLIENT_HELLO = Out_SERVER_HELLO_CERTIFICATE_ECDHE_SERVER_KEY_EXCHANGE_SERVER_HELLO_DONE
-    lambda 5 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 5 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 5 In_FINISHED = Out_TIMEOUT
-    lambda 5 In_APPLICATION = Out_TIMEOUT
-    lambda 5 In_CERTIFICATE = Out_TIMEOUT
-    lambda 5 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 5 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 5 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 5 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 2 In_ECDH_CLIENT_HELLO = Out_HELLO_VERIFY_REQUEST
-    lambda 2 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 2 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 2 In_FINISHED = Out_TIMEOUT
-    lambda 2 In_APPLICATION = Out_TIMEOUT
-    lambda 2 In_CERTIFICATE = Out_TIMEOUT
-    lambda 2 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 2 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 2 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 2 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 24 In_ECDH_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 24 In_ECDH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 24 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 24 In_FINISHED = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 24 In_APPLICATION = Out_TIMEOUT
-    lambda 24 In_CERTIFICATE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 24 In_EMPTY_CERTIFICATE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 24 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 24 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 24 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda _ _ = error "haal-gen: undefined transition"
+    deltaTable =
+        "\1\2\3\0\0\0\0\0\0\0\
+        \\4\5\6\1\1\1\1\1\1\1\
+        \\5\2\19\2\2\2\2\2\2\2\
+        \\6\19\3\3\3\3\3\3\3\3\
+        \\7\8\9\7\4\7\7\7\10\10\
+        \\18\5\15\5\5\5\5\5\5\5\
+        \\9\15\6\6\6\6\6\6\6\6\
+        \\7\11\12\7\7\7\7\7\10\10\
+        \\11\11\20\11\8\11\11\11\17\17\
+        \\13\14\13\13\13\13\13\13\13\13\
+        \\4\17\13\10\10\10\10\10\10\10\
+        \\11\11\12\11\11\11\11\11\17\17\
+        \\12\12\12\12\12\12\12\12\12\12\
+        \\9\14\13\13\13\13\13\13\13\13\
+        \\16\14\12\14\14\14\14\14\14\14\
+        \\16\15\15\15\15\15\15\15\15\15\
+        \\14\14\12\14\14\14\14\14\14\14\
+        \\18\17\12\17\17\17\17\17\17\17\
+        \\11\8\21\11\18\11\11\11\17\17\
+        \\15\19\19\19\19\19\19\19\19\19\
+        \\12\12\21\22\20\12\12\12\12\12\
+        \\12\12\12\12\12\12\12\12\12\12\
+        \\23\22\12\22\22\22\22\22\12\12\
+        \\12\24\21\12\23\12\12\12\12\12\
+        \\12\12\20\12\24\12\12\12\12\12"
+    lambdaTable =
+        "\0\1\1\1\1\1\1\1\1\1\
+        \\2\1\1\1\1\1\1\1\1\1\
+        \\0\1\1\1\1\1\1\1\1\1\
+        \\0\1\1\1\1\1\1\1\1\1\
+        \\3\1\1\3\1\3\3\3\4\1\
+        \\2\1\1\1\1\1\1\1\1\1\
+        \\2\1\1\1\1\1\1\1\1\1\
+        \\1\1\1\1\1\1\1\1\1\1\
+        \\3\3\1\3\1\3\3\3\4\1\
+        \\5\5\5\5\5\5\5\5\5\5\
+        \\2\1\1\1\1\1\1\1\1\1\
+        \\1\1\1\1\1\1\1\1\1\1\
+        \\1\1\1\1\1\1\1\1\1\1\
+        \\2\1\1\1\1\1\1\1\1\1\
+        \\2\1\1\1\1\1\1\1\1\1\
+        \\2\1\1\1\1\1\1\1\1\1\
+        \\5\5\5\5\5\5\5\5\5\5\
+        \\2\1\1\1\1\1\1\1\1\1\
+        \\3\1\1\3\1\3\3\3\4\1\
+        \\0\1\1\1\1\1\1\1\1\1\
+        \\3\3\1\6\1\3\3\3\4\1\
+        \\5\5\5\5\5\5\5\5\5\5\
+        \\2\1\1\1\7\1\1\1\4\1\
+        \\3\1\1\3\1\3\3\3\4\1\
+        \\3\3\1\3\1\3\3\3\4\1"
diff --git a/src/Haal/Models/DTLS/CtinydtlsEcdheCertReq.hs b/src/Haal/Models/DTLS/CtinydtlsEcdheCertReq.hs
--- a/src/Haal/Models/DTLS/CtinydtlsEcdheCertReq.hs
+++ b/src/Haal/Models/DTLS/CtinydtlsEcdheCertReq.hs
@@ -5,8 +5,7 @@
     , ctinydtlsEcdheCertReq
     ) where
 
-import qualified Data.Set as Set
-import Haal.Automaton.MealyAutomaton (MealyAutomaton, mkMealyAutomaton)
+import Haal.Automaton.MealyAutomaton (MealyAutomaton, mkMealyAutomatonTable)
 
 data CtinydtlsEcdheCertReqInput
     = In_ECDH_CLIENT_HELLO
@@ -32,608 +31,373 @@
     | Out_APPLICATION
     deriving (Show, Eq, Ord, Enum, Bounded)
 
+{- Transitions (state  input -> next state / output):
+    0     In_ECDH_CLIENT_HELLO               -> 1 / Out_HELLO_VERIFY_REQUEST
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 2 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 0 / Out_TIMEOUT
+          In_APPLICATION                     -> 0 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 0 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 0 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 0 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 0 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 0 / Out_TIMEOUT
+    1     In_ECDH_CLIENT_HELLO               -> 4 / Out_SERVER_HELLO_CERTIFICATE_ECDHE_SERVER_KEY_EXCHANGE_CERTIFICATE_REQUEST_SERVER_HELLO_DONE
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 5 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 6 / Out_TIMEOUT
+          In_FINISHED                        -> 1 / Out_TIMEOUT
+          In_APPLICATION                     -> 1 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 1 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 1 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 1 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 1 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 1 / Out_TIMEOUT
+    2     In_ECDH_CLIENT_HELLO               -> 5 / Out_HELLO_VERIFY_REQUEST
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 2 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 20 / Out_TIMEOUT
+          In_FINISHED                        -> 2 / Out_TIMEOUT
+          In_APPLICATION                     -> 2 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 2 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 2 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 2 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 2 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 2 / Out_TIMEOUT
+    3     In_ECDH_CLIENT_HELLO               -> 6 / Out_HELLO_VERIFY_REQUEST
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 20 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 3 / Out_TIMEOUT
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 3 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 3 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 3 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 3 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 3 / Out_TIMEOUT
+    4     In_ECDH_CLIENT_HELLO               -> 7 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 8 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CHANGE_CIPHER_SPEC              -> 9 / Out_TIMEOUT
+          In_FINISHED                        -> 7 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_APPLICATION                     -> 4 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 10 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 10 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 7 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 11 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 11 / Out_TIMEOUT
+    5     In_ECDH_CLIENT_HELLO               -> 19 / Out_SERVER_HELLO_CERTIFICATE_ECDHE_SERVER_KEY_EXCHANGE_CERTIFICATE_REQUEST_SERVER_HELLO_DONE
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 5 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 16 / Out_TIMEOUT
+          In_FINISHED                        -> 5 / Out_TIMEOUT
+          In_APPLICATION                     -> 5 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 5 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 5 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 5 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 5 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 5 / Out_TIMEOUT
+    6     In_ECDH_CLIENT_HELLO               -> 9 / Out_SERVER_HELLO_CERTIFICATE_ECDHE_SERVER_KEY_EXCHANGE_CERTIFICATE_REQUEST_SERVER_HELLO_DONE
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 16 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 6 / Out_TIMEOUT
+          In_FINISHED                        -> 6 / Out_TIMEOUT
+          In_APPLICATION                     -> 6 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 6 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 6 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 6 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 6 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 6 / Out_TIMEOUT
+    7     In_ECDH_CLIENT_HELLO               -> 7 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 8 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 12 / Out_TIMEOUT
+          In_FINISHED                        -> 7 / Out_TIMEOUT
+          In_APPLICATION                     -> 7 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 7 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 7 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 7 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 11 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 11 / Out_TIMEOUT
+    8     In_ECDH_CLIENT_HELLO               -> 8 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 8 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 12 / Out_TIMEOUT
+          In_FINISHED                        -> 8 / Out_TIMEOUT
+          In_APPLICATION                     -> 8 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 8 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 8 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 8 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 18 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 18 / Out_TIMEOUT
+    9     In_ECDH_CLIENT_HELLO               -> 13 / Out_Alert_FATAL_DECRYPT_ERROR
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 14 / Out_Alert_FATAL_DECRYPT_ERROR
+          In_CHANGE_CIPHER_SPEC              -> 13 / Out_Alert_FATAL_DECRYPT_ERROR
+          In_FINISHED                        -> 13 / Out_Alert_FATAL_DECRYPT_ERROR
+          In_APPLICATION                     -> 13 / Out_Alert_FATAL_DECRYPT_ERROR
+          In_CERTIFICATE                     -> 13 / Out_Alert_FATAL_DECRYPT_ERROR
+          In_EMPTY_CERTIFICATE               -> 13 / Out_Alert_FATAL_DECRYPT_ERROR
+          In_CERTIFICATE_VERIFY              -> 13 / Out_Alert_FATAL_DECRYPT_ERROR
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 13 / Out_Alert_FATAL_DECRYPT_ERROR
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 13 / Out_Alert_FATAL_DECRYPT_ERROR
+    10    In_ECDH_CLIENT_HELLO               -> 7 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 15 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 9 / Out_TIMEOUT
+          In_FINISHED                        -> 7 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_APPLICATION                     -> 10 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 7 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_EMPTY_CERTIFICATE               -> 7 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CERTIFICATE_VERIFY              -> 7 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 11 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 11 / Out_TIMEOUT
+    11    In_ECDH_CLIENT_HELLO               -> 4 / Out_SERVER_HELLO_CERTIFICATE_ECDHE_SERVER_KEY_EXCHANGE_CERTIFICATE_REQUEST_SERVER_HELLO_DONE
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 18 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 13 / Out_TIMEOUT
+          In_FINISHED                        -> 11 / Out_TIMEOUT
+          In_APPLICATION                     -> 11 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 11 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 11 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 11 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 11 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 11 / Out_TIMEOUT
+    12    In_ECDH_CLIENT_HELLO               -> 12 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 12 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 12 / Out_TIMEOUT
+          In_FINISHED                        -> 12 / Out_TIMEOUT
+          In_APPLICATION                     -> 12 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 12 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 12 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 12 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 12 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 12 / Out_TIMEOUT
+    13    In_ECDH_CLIENT_HELLO               -> 9 / Out_SERVER_HELLO_CERTIFICATE_ECDHE_SERVER_KEY_EXCHANGE_CERTIFICATE_REQUEST_SERVER_HELLO_DONE
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 14 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 13 / Out_TIMEOUT
+          In_FINISHED                        -> 13 / Out_TIMEOUT
+          In_APPLICATION                     -> 13 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 13 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 13 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 13 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 13 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 13 / Out_TIMEOUT
+    14    In_ECDH_CLIENT_HELLO               -> 17 / Out_SERVER_HELLO_CERTIFICATE_ECDHE_SERVER_KEY_EXCHANGE_CERTIFICATE_REQUEST_SERVER_HELLO_DONE
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 14 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 12 / Out_TIMEOUT
+          In_FINISHED                        -> 14 / Out_TIMEOUT
+          In_APPLICATION                     -> 14 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 14 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 14 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 14 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 14 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 14 / Out_TIMEOUT
+    15    In_ECDH_CLIENT_HELLO               -> 8 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 8 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CHANGE_CIPHER_SPEC              -> 21 / Out_TIMEOUT
+          In_FINISHED                        -> 8 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_APPLICATION                     -> 15 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 8 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_EMPTY_CERTIFICATE               -> 8 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CERTIFICATE_VERIFY              -> 23 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 18 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 18 / Out_TIMEOUT
+    16    In_ECDH_CLIENT_HELLO               -> 17 / Out_SERVER_HELLO_CERTIFICATE_ECDHE_SERVER_KEY_EXCHANGE_CERTIFICATE_REQUEST_SERVER_HELLO_DONE
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 16 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 16 / Out_TIMEOUT
+          In_FINISHED                        -> 16 / Out_TIMEOUT
+          In_APPLICATION                     -> 16 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 16 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 16 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 16 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 16 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 16 / Out_TIMEOUT
+    17    In_ECDH_CLIENT_HELLO               -> 14 / Out_Alert_FATAL_DECRYPT_ERROR
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 14 / Out_Alert_FATAL_DECRYPT_ERROR
+          In_CHANGE_CIPHER_SPEC              -> 12 / Out_Alert_FATAL_DECRYPT_ERROR
+          In_FINISHED                        -> 14 / Out_Alert_FATAL_DECRYPT_ERROR
+          In_APPLICATION                     -> 14 / Out_Alert_FATAL_DECRYPT_ERROR
+          In_CERTIFICATE                     -> 14 / Out_Alert_FATAL_DECRYPT_ERROR
+          In_EMPTY_CERTIFICATE               -> 14 / Out_Alert_FATAL_DECRYPT_ERROR
+          In_CERTIFICATE_VERIFY              -> 14 / Out_Alert_FATAL_DECRYPT_ERROR
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 14 / Out_Alert_FATAL_DECRYPT_ERROR
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 14 / Out_Alert_FATAL_DECRYPT_ERROR
+    18    In_ECDH_CLIENT_HELLO               -> 19 / Out_SERVER_HELLO_CERTIFICATE_ECDHE_SERVER_KEY_EXCHANGE_CERTIFICATE_REQUEST_SERVER_HELLO_DONE
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 18 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 12 / Out_TIMEOUT
+          In_FINISHED                        -> 18 / Out_TIMEOUT
+          In_APPLICATION                     -> 18 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 18 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 18 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 18 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 18 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 18 / Out_TIMEOUT
+    19    In_ECDH_CLIENT_HELLO               -> 8 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 8 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CHANGE_CIPHER_SPEC              -> 21 / Out_TIMEOUT
+          In_FINISHED                        -> 8 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_APPLICATION                     -> 19 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 22 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 22 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 8 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 18 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 18 / Out_TIMEOUT
+    20    In_ECDH_CLIENT_HELLO               -> 16 / Out_HELLO_VERIFY_REQUEST
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 20 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 20 / Out_TIMEOUT
+          In_FINISHED                        -> 20 / Out_TIMEOUT
+          In_APPLICATION                     -> 20 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 20 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 20 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 20 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 20 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 20 / Out_TIMEOUT
+    21    In_ECDH_CLIENT_HELLO               -> 12 / Out_Alert_FATAL_DECRYPT_ERROR
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 12 / Out_Alert_FATAL_DECRYPT_ERROR
+          In_CHANGE_CIPHER_SPEC              -> 12 / Out_Alert_FATAL_DECRYPT_ERROR
+          In_FINISHED                        -> 12 / Out_Alert_FATAL_DECRYPT_ERROR
+          In_APPLICATION                     -> 12 / Out_Alert_FATAL_DECRYPT_ERROR
+          In_CERTIFICATE                     -> 12 / Out_Alert_FATAL_DECRYPT_ERROR
+          In_EMPTY_CERTIFICATE               -> 12 / Out_Alert_FATAL_DECRYPT_ERROR
+          In_CERTIFICATE_VERIFY              -> 12 / Out_Alert_FATAL_DECRYPT_ERROR
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 12 / Out_Alert_FATAL_DECRYPT_ERROR
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 12 / Out_Alert_FATAL_DECRYPT_ERROR
+    22    In_ECDH_CLIENT_HELLO               -> 8 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 15 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 21 / Out_TIMEOUT
+          In_FINISHED                        -> 8 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_APPLICATION                     -> 22 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 8 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_EMPTY_CERTIFICATE               -> 8 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CERTIFICATE_VERIFY              -> 8 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 18 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 18 / Out_TIMEOUT
+    23    In_ECDH_CLIENT_HELLO               -> 8 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 8 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CHANGE_CIPHER_SPEC              -> 24 / Out_TIMEOUT
+          In_FINISHED                        -> 8 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_APPLICATION                     -> 23 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 8 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_EMPTY_CERTIFICATE               -> 8 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CERTIFICATE_VERIFY              -> 8 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 18 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 18 / Out_TIMEOUT
+    24    In_ECDH_CLIENT_HELLO               -> 12 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 12 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CHANGE_CIPHER_SPEC              -> 21 / Out_TIMEOUT
+          In_FINISHED                        -> 25 / Out_CHANGE_CIPHER_SPEC_FINISHED
+          In_APPLICATION                     -> 24 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 12 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_EMPTY_CERTIFICATE               -> 12 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CERTIFICATE_VERIFY              -> 12 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 12 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 12 / Out_TIMEOUT
+    25    In_ECDH_CLIENT_HELLO               -> 26 / Out_SERVER_HELLO_CERTIFICATE_ECDHE_SERVER_KEY_EXCHANGE_CERTIFICATE_REQUEST_SERVER_HELLO_DONE
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 25 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 12 / Out_TIMEOUT
+          In_FINISHED                        -> 25 / Out_TIMEOUT
+          In_APPLICATION                     -> 25 / Out_APPLICATION
+          In_CERTIFICATE                     -> 25 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 25 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 25 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 12 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 12 / Out_TIMEOUT
+    26    In_ECDH_CLIENT_HELLO               -> 12 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 12 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CHANGE_CIPHER_SPEC              -> 21 / Out_TIMEOUT
+          In_FINISHED                        -> 12 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_APPLICATION                     -> 26 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 27 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 27 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 12 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 12 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 12 / Out_TIMEOUT
+    27    In_ECDH_CLIENT_HELLO               -> 12 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 28 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 21 / Out_TIMEOUT
+          In_FINISHED                        -> 12 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_APPLICATION                     -> 27 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 12 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_EMPTY_CERTIFICATE               -> 12 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CERTIFICATE_VERIFY              -> 12 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 12 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 12 / Out_TIMEOUT
+    28    In_ECDH_CLIENT_HELLO               -> 12 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 12 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CHANGE_CIPHER_SPEC              -> 21 / Out_TIMEOUT
+          In_FINISHED                        -> 12 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_APPLICATION                     -> 28 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 12 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_EMPTY_CERTIFICATE               -> 12 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CERTIFICATE_VERIFY              -> 29 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 12 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 12 / Out_TIMEOUT
+    29    In_ECDH_CLIENT_HELLO               -> 12 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 12 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CHANGE_CIPHER_SPEC              -> 24 / Out_TIMEOUT
+          In_FINISHED                        -> 12 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_APPLICATION                     -> 29 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 12 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_EMPTY_CERTIFICATE               -> 12 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CERTIFICATE_VERIFY              -> 12 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 12 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 12 / Out_TIMEOUT
+-}
 ctinydtlsEcdheCertReq :: MealyAutomaton Int CtinydtlsEcdheCertReqInput CtinydtlsEcdheCertReqOutput
-ctinydtlsEcdheCertReq = mkMealyAutomaton delta lambda (Set.fromList [0..29]) 0
+ctinydtlsEcdheCertReq =
+    case mkMealyAutomatonTable 30 0 deltaTable lambdaTable of
+        Right m -> m
+        Left err -> error ("haal-gen: invalid transition table: " ++ err)
   where
-    delta 0 In_ECDH_CLIENT_HELLO = 1
-    delta 0 In_ECDH_CLIENT_KEY_EXCHANGE = 2
-    delta 0 In_CHANGE_CIPHER_SPEC = 3
-    delta 0 In_FINISHED = 0
-    delta 0 In_APPLICATION = 0
-    delta 0 In_CERTIFICATE = 0
-    delta 0 In_EMPTY_CERTIFICATE = 0
-    delta 0 In_CERTIFICATE_VERIFY = 0
-    delta 0 In_Alert_WARNING_CLOSE_NOTIFY = 0
-    delta 0 In_Alert_FATAL_UNEXPECTED_MESSAGE = 0
-    delta 1 In_ECDH_CLIENT_HELLO = 4
-    delta 1 In_ECDH_CLIENT_KEY_EXCHANGE = 5
-    delta 1 In_CHANGE_CIPHER_SPEC = 6
-    delta 1 In_FINISHED = 1
-    delta 1 In_APPLICATION = 1
-    delta 1 In_CERTIFICATE = 1
-    delta 1 In_EMPTY_CERTIFICATE = 1
-    delta 1 In_CERTIFICATE_VERIFY = 1
-    delta 1 In_Alert_WARNING_CLOSE_NOTIFY = 1
-    delta 1 In_Alert_FATAL_UNEXPECTED_MESSAGE = 1
-    delta 4 In_ECDH_CLIENT_HELLO = 7
-    delta 4 In_ECDH_CLIENT_KEY_EXCHANGE = 8
-    delta 4 In_CHANGE_CIPHER_SPEC = 9
-    delta 4 In_FINISHED = 7
-    delta 4 In_APPLICATION = 4
-    delta 4 In_CERTIFICATE = 10
-    delta 4 In_EMPTY_CERTIFICATE = 10
-    delta 4 In_CERTIFICATE_VERIFY = 7
-    delta 4 In_Alert_WARNING_CLOSE_NOTIFY = 11
-    delta 4 In_Alert_FATAL_UNEXPECTED_MESSAGE = 11
-    delta 7 In_ECDH_CLIENT_HELLO = 7
-    delta 7 In_ECDH_CLIENT_KEY_EXCHANGE = 8
-    delta 7 In_CHANGE_CIPHER_SPEC = 12
-    delta 7 In_FINISHED = 7
-    delta 7 In_APPLICATION = 7
-    delta 7 In_CERTIFICATE = 7
-    delta 7 In_EMPTY_CERTIFICATE = 7
-    delta 7 In_CERTIFICATE_VERIFY = 7
-    delta 7 In_Alert_WARNING_CLOSE_NOTIFY = 11
-    delta 7 In_Alert_FATAL_UNEXPECTED_MESSAGE = 11
-    delta 9 In_ECDH_CLIENT_HELLO = 13
-    delta 9 In_ECDH_CLIENT_KEY_EXCHANGE = 14
-    delta 9 In_CHANGE_CIPHER_SPEC = 13
-    delta 9 In_FINISHED = 13
-    delta 9 In_APPLICATION = 13
-    delta 9 In_CERTIFICATE = 13
-    delta 9 In_EMPTY_CERTIFICATE = 13
-    delta 9 In_CERTIFICATE_VERIFY = 13
-    delta 9 In_Alert_WARNING_CLOSE_NOTIFY = 13
-    delta 9 In_Alert_FATAL_UNEXPECTED_MESSAGE = 13
-    delta 10 In_ECDH_CLIENT_HELLO = 7
-    delta 10 In_ECDH_CLIENT_KEY_EXCHANGE = 15
-    delta 10 In_CHANGE_CIPHER_SPEC = 9
-    delta 10 In_FINISHED = 7
-    delta 10 In_APPLICATION = 10
-    delta 10 In_CERTIFICATE = 7
-    delta 10 In_EMPTY_CERTIFICATE = 7
-    delta 10 In_CERTIFICATE_VERIFY = 7
-    delta 10 In_Alert_WARNING_CLOSE_NOTIFY = 11
-    delta 10 In_Alert_FATAL_UNEXPECTED_MESSAGE = 11
-    delta 6 In_ECDH_CLIENT_HELLO = 9
-    delta 6 In_ECDH_CLIENT_KEY_EXCHANGE = 16
-    delta 6 In_CHANGE_CIPHER_SPEC = 6
-    delta 6 In_FINISHED = 6
-    delta 6 In_APPLICATION = 6
-    delta 6 In_CERTIFICATE = 6
-    delta 6 In_EMPTY_CERTIFICATE = 6
-    delta 6 In_CERTIFICATE_VERIFY = 6
-    delta 6 In_Alert_WARNING_CLOSE_NOTIFY = 6
-    delta 6 In_Alert_FATAL_UNEXPECTED_MESSAGE = 6
-    delta 12 In_ECDH_CLIENT_HELLO = 12
-    delta 12 In_ECDH_CLIENT_KEY_EXCHANGE = 12
-    delta 12 In_CHANGE_CIPHER_SPEC = 12
-    delta 12 In_FINISHED = 12
-    delta 12 In_APPLICATION = 12
-    delta 12 In_CERTIFICATE = 12
-    delta 12 In_EMPTY_CERTIFICATE = 12
-    delta 12 In_CERTIFICATE_VERIFY = 12
-    delta 12 In_Alert_WARNING_CLOSE_NOTIFY = 12
-    delta 12 In_Alert_FATAL_UNEXPECTED_MESSAGE = 12
-    delta 13 In_ECDH_CLIENT_HELLO = 9
-    delta 13 In_ECDH_CLIENT_KEY_EXCHANGE = 14
-    delta 13 In_CHANGE_CIPHER_SPEC = 13
-    delta 13 In_FINISHED = 13
-    delta 13 In_APPLICATION = 13
-    delta 13 In_CERTIFICATE = 13
-    delta 13 In_EMPTY_CERTIFICATE = 13
-    delta 13 In_CERTIFICATE_VERIFY = 13
-    delta 13 In_Alert_WARNING_CLOSE_NOTIFY = 13
-    delta 13 In_Alert_FATAL_UNEXPECTED_MESSAGE = 13
-    delta 14 In_ECDH_CLIENT_HELLO = 17
-    delta 14 In_ECDH_CLIENT_KEY_EXCHANGE = 14
-    delta 14 In_CHANGE_CIPHER_SPEC = 12
-    delta 14 In_FINISHED = 14
-    delta 14 In_APPLICATION = 14
-    delta 14 In_CERTIFICATE = 14
-    delta 14 In_EMPTY_CERTIFICATE = 14
-    delta 14 In_CERTIFICATE_VERIFY = 14
-    delta 14 In_Alert_WARNING_CLOSE_NOTIFY = 14
-    delta 14 In_Alert_FATAL_UNEXPECTED_MESSAGE = 14
-    delta 11 In_ECDH_CLIENT_HELLO = 4
-    delta 11 In_ECDH_CLIENT_KEY_EXCHANGE = 18
-    delta 11 In_CHANGE_CIPHER_SPEC = 13
-    delta 11 In_FINISHED = 11
-    delta 11 In_APPLICATION = 11
-    delta 11 In_CERTIFICATE = 11
-    delta 11 In_EMPTY_CERTIFICATE = 11
-    delta 11 In_CERTIFICATE_VERIFY = 11
-    delta 11 In_Alert_WARNING_CLOSE_NOTIFY = 11
-    delta 11 In_Alert_FATAL_UNEXPECTED_MESSAGE = 11
-    delta 17 In_ECDH_CLIENT_HELLO = 14
-    delta 17 In_ECDH_CLIENT_KEY_EXCHANGE = 14
-    delta 17 In_CHANGE_CIPHER_SPEC = 12
-    delta 17 In_FINISHED = 14
-    delta 17 In_APPLICATION = 14
-    delta 17 In_CERTIFICATE = 14
-    delta 17 In_EMPTY_CERTIFICATE = 14
-    delta 17 In_CERTIFICATE_VERIFY = 14
-    delta 17 In_Alert_WARNING_CLOSE_NOTIFY = 14
-    delta 17 In_Alert_FATAL_UNEXPECTED_MESSAGE = 14
-    delta 18 In_ECDH_CLIENT_HELLO = 19
-    delta 18 In_ECDH_CLIENT_KEY_EXCHANGE = 18
-    delta 18 In_CHANGE_CIPHER_SPEC = 12
-    delta 18 In_FINISHED = 18
-    delta 18 In_APPLICATION = 18
-    delta 18 In_CERTIFICATE = 18
-    delta 18 In_EMPTY_CERTIFICATE = 18
-    delta 18 In_CERTIFICATE_VERIFY = 18
-    delta 18 In_Alert_WARNING_CLOSE_NOTIFY = 18
-    delta 18 In_Alert_FATAL_UNEXPECTED_MESSAGE = 18
-    delta 8 In_ECDH_CLIENT_HELLO = 8
-    delta 8 In_ECDH_CLIENT_KEY_EXCHANGE = 8
-    delta 8 In_CHANGE_CIPHER_SPEC = 12
-    delta 8 In_FINISHED = 8
-    delta 8 In_APPLICATION = 8
-    delta 8 In_CERTIFICATE = 8
-    delta 8 In_EMPTY_CERTIFICATE = 8
-    delta 8 In_CERTIFICATE_VERIFY = 8
-    delta 8 In_Alert_WARNING_CLOSE_NOTIFY = 18
-    delta 8 In_Alert_FATAL_UNEXPECTED_MESSAGE = 18
-    delta 16 In_ECDH_CLIENT_HELLO = 17
-    delta 16 In_ECDH_CLIENT_KEY_EXCHANGE = 16
-    delta 16 In_CHANGE_CIPHER_SPEC = 16
-    delta 16 In_FINISHED = 16
-    delta 16 In_APPLICATION = 16
-    delta 16 In_CERTIFICATE = 16
-    delta 16 In_EMPTY_CERTIFICATE = 16
-    delta 16 In_CERTIFICATE_VERIFY = 16
-    delta 16 In_Alert_WARNING_CLOSE_NOTIFY = 16
-    delta 16 In_Alert_FATAL_UNEXPECTED_MESSAGE = 16
-    delta 3 In_ECDH_CLIENT_HELLO = 6
-    delta 3 In_ECDH_CLIENT_KEY_EXCHANGE = 20
-    delta 3 In_CHANGE_CIPHER_SPEC = 3
-    delta 3 In_FINISHED = 3
-    delta 3 In_APPLICATION = 3
-    delta 3 In_CERTIFICATE = 3
-    delta 3 In_EMPTY_CERTIFICATE = 3
-    delta 3 In_CERTIFICATE_VERIFY = 3
-    delta 3 In_Alert_WARNING_CLOSE_NOTIFY = 3
-    delta 3 In_Alert_FATAL_UNEXPECTED_MESSAGE = 3
-    delta 19 In_ECDH_CLIENT_HELLO = 8
-    delta 19 In_ECDH_CLIENT_KEY_EXCHANGE = 8
-    delta 19 In_CHANGE_CIPHER_SPEC = 21
-    delta 19 In_FINISHED = 8
-    delta 19 In_APPLICATION = 19
-    delta 19 In_CERTIFICATE = 22
-    delta 19 In_EMPTY_CERTIFICATE = 22
-    delta 19 In_CERTIFICATE_VERIFY = 8
-    delta 19 In_Alert_WARNING_CLOSE_NOTIFY = 18
-    delta 19 In_Alert_FATAL_UNEXPECTED_MESSAGE = 18
-    delta 15 In_ECDH_CLIENT_HELLO = 8
-    delta 15 In_ECDH_CLIENT_KEY_EXCHANGE = 8
-    delta 15 In_CHANGE_CIPHER_SPEC = 21
-    delta 15 In_FINISHED = 8
-    delta 15 In_APPLICATION = 15
-    delta 15 In_CERTIFICATE = 8
-    delta 15 In_EMPTY_CERTIFICATE = 8
-    delta 15 In_CERTIFICATE_VERIFY = 23
-    delta 15 In_Alert_WARNING_CLOSE_NOTIFY = 18
-    delta 15 In_Alert_FATAL_UNEXPECTED_MESSAGE = 18
-    delta 23 In_ECDH_CLIENT_HELLO = 8
-    delta 23 In_ECDH_CLIENT_KEY_EXCHANGE = 8
-    delta 23 In_CHANGE_CIPHER_SPEC = 24
-    delta 23 In_FINISHED = 8
-    delta 23 In_APPLICATION = 23
-    delta 23 In_CERTIFICATE = 8
-    delta 23 In_EMPTY_CERTIFICATE = 8
-    delta 23 In_CERTIFICATE_VERIFY = 8
-    delta 23 In_Alert_WARNING_CLOSE_NOTIFY = 18
-    delta 23 In_Alert_FATAL_UNEXPECTED_MESSAGE = 18
-    delta 21 In_ECDH_CLIENT_HELLO = 12
-    delta 21 In_ECDH_CLIENT_KEY_EXCHANGE = 12
-    delta 21 In_CHANGE_CIPHER_SPEC = 12
-    delta 21 In_FINISHED = 12
-    delta 21 In_APPLICATION = 12
-    delta 21 In_CERTIFICATE = 12
-    delta 21 In_EMPTY_CERTIFICATE = 12
-    delta 21 In_CERTIFICATE_VERIFY = 12
-    delta 21 In_Alert_WARNING_CLOSE_NOTIFY = 12
-    delta 21 In_Alert_FATAL_UNEXPECTED_MESSAGE = 12
-    delta 22 In_ECDH_CLIENT_HELLO = 8
-    delta 22 In_ECDH_CLIENT_KEY_EXCHANGE = 15
-    delta 22 In_CHANGE_CIPHER_SPEC = 21
-    delta 22 In_FINISHED = 8
-    delta 22 In_APPLICATION = 22
-    delta 22 In_CERTIFICATE = 8
-    delta 22 In_EMPTY_CERTIFICATE = 8
-    delta 22 In_CERTIFICATE_VERIFY = 8
-    delta 22 In_Alert_WARNING_CLOSE_NOTIFY = 18
-    delta 22 In_Alert_FATAL_UNEXPECTED_MESSAGE = 18
-    delta 5 In_ECDH_CLIENT_HELLO = 19
-    delta 5 In_ECDH_CLIENT_KEY_EXCHANGE = 5
-    delta 5 In_CHANGE_CIPHER_SPEC = 16
-    delta 5 In_FINISHED = 5
-    delta 5 In_APPLICATION = 5
-    delta 5 In_CERTIFICATE = 5
-    delta 5 In_EMPTY_CERTIFICATE = 5
-    delta 5 In_CERTIFICATE_VERIFY = 5
-    delta 5 In_Alert_WARNING_CLOSE_NOTIFY = 5
-    delta 5 In_Alert_FATAL_UNEXPECTED_MESSAGE = 5
-    delta 20 In_ECDH_CLIENT_HELLO = 16
-    delta 20 In_ECDH_CLIENT_KEY_EXCHANGE = 20
-    delta 20 In_CHANGE_CIPHER_SPEC = 20
-    delta 20 In_FINISHED = 20
-    delta 20 In_APPLICATION = 20
-    delta 20 In_CERTIFICATE = 20
-    delta 20 In_EMPTY_CERTIFICATE = 20
-    delta 20 In_CERTIFICATE_VERIFY = 20
-    delta 20 In_Alert_WARNING_CLOSE_NOTIFY = 20
-    delta 20 In_Alert_FATAL_UNEXPECTED_MESSAGE = 20
-    delta 24 In_ECDH_CLIENT_HELLO = 12
-    delta 24 In_ECDH_CLIENT_KEY_EXCHANGE = 12
-    delta 24 In_CHANGE_CIPHER_SPEC = 21
-    delta 24 In_FINISHED = 25
-    delta 24 In_APPLICATION = 24
-    delta 24 In_CERTIFICATE = 12
-    delta 24 In_EMPTY_CERTIFICATE = 12
-    delta 24 In_CERTIFICATE_VERIFY = 12
-    delta 24 In_Alert_WARNING_CLOSE_NOTIFY = 12
-    delta 24 In_Alert_FATAL_UNEXPECTED_MESSAGE = 12
-    delta 2 In_ECDH_CLIENT_HELLO = 5
-    delta 2 In_ECDH_CLIENT_KEY_EXCHANGE = 2
-    delta 2 In_CHANGE_CIPHER_SPEC = 20
-    delta 2 In_FINISHED = 2
-    delta 2 In_APPLICATION = 2
-    delta 2 In_CERTIFICATE = 2
-    delta 2 In_EMPTY_CERTIFICATE = 2
-    delta 2 In_CERTIFICATE_VERIFY = 2
-    delta 2 In_Alert_WARNING_CLOSE_NOTIFY = 2
-    delta 2 In_Alert_FATAL_UNEXPECTED_MESSAGE = 2
-    delta 25 In_ECDH_CLIENT_HELLO = 26
-    delta 25 In_ECDH_CLIENT_KEY_EXCHANGE = 25
-    delta 25 In_CHANGE_CIPHER_SPEC = 12
-    delta 25 In_FINISHED = 25
-    delta 25 In_APPLICATION = 25
-    delta 25 In_CERTIFICATE = 25
-    delta 25 In_EMPTY_CERTIFICATE = 25
-    delta 25 In_CERTIFICATE_VERIFY = 25
-    delta 25 In_Alert_WARNING_CLOSE_NOTIFY = 12
-    delta 25 In_Alert_FATAL_UNEXPECTED_MESSAGE = 12
-    delta 26 In_ECDH_CLIENT_HELLO = 12
-    delta 26 In_ECDH_CLIENT_KEY_EXCHANGE = 12
-    delta 26 In_CHANGE_CIPHER_SPEC = 21
-    delta 26 In_FINISHED = 12
-    delta 26 In_APPLICATION = 26
-    delta 26 In_CERTIFICATE = 27
-    delta 26 In_EMPTY_CERTIFICATE = 27
-    delta 26 In_CERTIFICATE_VERIFY = 12
-    delta 26 In_Alert_WARNING_CLOSE_NOTIFY = 12
-    delta 26 In_Alert_FATAL_UNEXPECTED_MESSAGE = 12
-    delta 27 In_ECDH_CLIENT_HELLO = 12
-    delta 27 In_ECDH_CLIENT_KEY_EXCHANGE = 28
-    delta 27 In_CHANGE_CIPHER_SPEC = 21
-    delta 27 In_FINISHED = 12
-    delta 27 In_APPLICATION = 27
-    delta 27 In_CERTIFICATE = 12
-    delta 27 In_EMPTY_CERTIFICATE = 12
-    delta 27 In_CERTIFICATE_VERIFY = 12
-    delta 27 In_Alert_WARNING_CLOSE_NOTIFY = 12
-    delta 27 In_Alert_FATAL_UNEXPECTED_MESSAGE = 12
-    delta 28 In_ECDH_CLIENT_HELLO = 12
-    delta 28 In_ECDH_CLIENT_KEY_EXCHANGE = 12
-    delta 28 In_CHANGE_CIPHER_SPEC = 21
-    delta 28 In_FINISHED = 12
-    delta 28 In_APPLICATION = 28
-    delta 28 In_CERTIFICATE = 12
-    delta 28 In_EMPTY_CERTIFICATE = 12
-    delta 28 In_CERTIFICATE_VERIFY = 29
-    delta 28 In_Alert_WARNING_CLOSE_NOTIFY = 12
-    delta 28 In_Alert_FATAL_UNEXPECTED_MESSAGE = 12
-    delta 29 In_ECDH_CLIENT_HELLO = 12
-    delta 29 In_ECDH_CLIENT_KEY_EXCHANGE = 12
-    delta 29 In_CHANGE_CIPHER_SPEC = 24
-    delta 29 In_FINISHED = 12
-    delta 29 In_APPLICATION = 29
-    delta 29 In_CERTIFICATE = 12
-    delta 29 In_EMPTY_CERTIFICATE = 12
-    delta 29 In_CERTIFICATE_VERIFY = 12
-    delta 29 In_Alert_WARNING_CLOSE_NOTIFY = 12
-    delta 29 In_Alert_FATAL_UNEXPECTED_MESSAGE = 12
-    delta _ _ = error "haal-gen: undefined transition"
-    lambda 0 In_ECDH_CLIENT_HELLO = Out_HELLO_VERIFY_REQUEST
-    lambda 0 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 0 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 0 In_FINISHED = Out_TIMEOUT
-    lambda 0 In_APPLICATION = Out_TIMEOUT
-    lambda 0 In_CERTIFICATE = Out_TIMEOUT
-    lambda 0 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 0 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 0 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 0 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 1 In_ECDH_CLIENT_HELLO = Out_SERVER_HELLO_CERTIFICATE_ECDHE_SERVER_KEY_EXCHANGE_CERTIFICATE_REQUEST_SERVER_HELLO_DONE
-    lambda 1 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 1 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 1 In_FINISHED = Out_TIMEOUT
-    lambda 1 In_APPLICATION = Out_TIMEOUT
-    lambda 1 In_CERTIFICATE = Out_TIMEOUT
-    lambda 1 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 1 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 1 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 1 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 4 In_ECDH_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 4 In_ECDH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 4 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 4 In_FINISHED = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 4 In_APPLICATION = Out_TIMEOUT
-    lambda 4 In_CERTIFICATE = Out_TIMEOUT
-    lambda 4 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 4 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 4 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 4 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 7 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 7 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 7 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 7 In_FINISHED = Out_TIMEOUT
-    lambda 7 In_APPLICATION = Out_TIMEOUT
-    lambda 7 In_CERTIFICATE = Out_TIMEOUT
-    lambda 7 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 7 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 7 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 7 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 9 In_ECDH_CLIENT_HELLO = Out_Alert_FATAL_DECRYPT_ERROR
-    lambda 9 In_ECDH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_DECRYPT_ERROR
-    lambda 9 In_CHANGE_CIPHER_SPEC = Out_Alert_FATAL_DECRYPT_ERROR
-    lambda 9 In_FINISHED = Out_Alert_FATAL_DECRYPT_ERROR
-    lambda 9 In_APPLICATION = Out_Alert_FATAL_DECRYPT_ERROR
-    lambda 9 In_CERTIFICATE = Out_Alert_FATAL_DECRYPT_ERROR
-    lambda 9 In_EMPTY_CERTIFICATE = Out_Alert_FATAL_DECRYPT_ERROR
-    lambda 9 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_DECRYPT_ERROR
-    lambda 9 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_DECRYPT_ERROR
-    lambda 9 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_Alert_FATAL_DECRYPT_ERROR
-    lambda 10 In_ECDH_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 10 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 10 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 10 In_FINISHED = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 10 In_APPLICATION = Out_TIMEOUT
-    lambda 10 In_CERTIFICATE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 10 In_EMPTY_CERTIFICATE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 10 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 10 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 10 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 6 In_ECDH_CLIENT_HELLO = Out_SERVER_HELLO_CERTIFICATE_ECDHE_SERVER_KEY_EXCHANGE_CERTIFICATE_REQUEST_SERVER_HELLO_DONE
-    lambda 6 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 6 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 6 In_FINISHED = Out_TIMEOUT
-    lambda 6 In_APPLICATION = Out_TIMEOUT
-    lambda 6 In_CERTIFICATE = Out_TIMEOUT
-    lambda 6 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 6 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 6 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 6 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 12 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 12 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 12 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 12 In_FINISHED = Out_TIMEOUT
-    lambda 12 In_APPLICATION = Out_TIMEOUT
-    lambda 12 In_CERTIFICATE = Out_TIMEOUT
-    lambda 12 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 12 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 12 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 12 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 13 In_ECDH_CLIENT_HELLO = Out_SERVER_HELLO_CERTIFICATE_ECDHE_SERVER_KEY_EXCHANGE_CERTIFICATE_REQUEST_SERVER_HELLO_DONE
-    lambda 13 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 13 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 13 In_FINISHED = Out_TIMEOUT
-    lambda 13 In_APPLICATION = Out_TIMEOUT
-    lambda 13 In_CERTIFICATE = Out_TIMEOUT
-    lambda 13 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 13 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 13 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 13 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 14 In_ECDH_CLIENT_HELLO = Out_SERVER_HELLO_CERTIFICATE_ECDHE_SERVER_KEY_EXCHANGE_CERTIFICATE_REQUEST_SERVER_HELLO_DONE
-    lambda 14 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 14 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 14 In_FINISHED = Out_TIMEOUT
-    lambda 14 In_APPLICATION = Out_TIMEOUT
-    lambda 14 In_CERTIFICATE = Out_TIMEOUT
-    lambda 14 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 14 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 14 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 14 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 11 In_ECDH_CLIENT_HELLO = Out_SERVER_HELLO_CERTIFICATE_ECDHE_SERVER_KEY_EXCHANGE_CERTIFICATE_REQUEST_SERVER_HELLO_DONE
-    lambda 11 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 11 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 11 In_FINISHED = Out_TIMEOUT
-    lambda 11 In_APPLICATION = Out_TIMEOUT
-    lambda 11 In_CERTIFICATE = Out_TIMEOUT
-    lambda 11 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 11 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 11 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 11 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 17 In_ECDH_CLIENT_HELLO = Out_Alert_FATAL_DECRYPT_ERROR
-    lambda 17 In_ECDH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_DECRYPT_ERROR
-    lambda 17 In_CHANGE_CIPHER_SPEC = Out_Alert_FATAL_DECRYPT_ERROR
-    lambda 17 In_FINISHED = Out_Alert_FATAL_DECRYPT_ERROR
-    lambda 17 In_APPLICATION = Out_Alert_FATAL_DECRYPT_ERROR
-    lambda 17 In_CERTIFICATE = Out_Alert_FATAL_DECRYPT_ERROR
-    lambda 17 In_EMPTY_CERTIFICATE = Out_Alert_FATAL_DECRYPT_ERROR
-    lambda 17 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_DECRYPT_ERROR
-    lambda 17 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_DECRYPT_ERROR
-    lambda 17 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_Alert_FATAL_DECRYPT_ERROR
-    lambda 18 In_ECDH_CLIENT_HELLO = Out_SERVER_HELLO_CERTIFICATE_ECDHE_SERVER_KEY_EXCHANGE_CERTIFICATE_REQUEST_SERVER_HELLO_DONE
-    lambda 18 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 18 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 18 In_FINISHED = Out_TIMEOUT
-    lambda 18 In_APPLICATION = Out_TIMEOUT
-    lambda 18 In_CERTIFICATE = Out_TIMEOUT
-    lambda 18 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 18 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 18 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 18 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 8 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 8 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 8 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 8 In_FINISHED = Out_TIMEOUT
-    lambda 8 In_APPLICATION = Out_TIMEOUT
-    lambda 8 In_CERTIFICATE = Out_TIMEOUT
-    lambda 8 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 8 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 8 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 8 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 16 In_ECDH_CLIENT_HELLO = Out_SERVER_HELLO_CERTIFICATE_ECDHE_SERVER_KEY_EXCHANGE_CERTIFICATE_REQUEST_SERVER_HELLO_DONE
-    lambda 16 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 16 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 16 In_FINISHED = Out_TIMEOUT
-    lambda 16 In_APPLICATION = Out_TIMEOUT
-    lambda 16 In_CERTIFICATE = Out_TIMEOUT
-    lambda 16 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 16 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 16 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 16 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 3 In_ECDH_CLIENT_HELLO = Out_HELLO_VERIFY_REQUEST
-    lambda 3 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 3 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 3 In_FINISHED = Out_TIMEOUT
-    lambda 3 In_APPLICATION = Out_TIMEOUT
-    lambda 3 In_CERTIFICATE = Out_TIMEOUT
-    lambda 3 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 3 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 3 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 3 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 19 In_ECDH_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 19 In_ECDH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 19 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 19 In_FINISHED = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 19 In_APPLICATION = Out_TIMEOUT
-    lambda 19 In_CERTIFICATE = Out_TIMEOUT
-    lambda 19 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 19 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 19 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 19 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 15 In_ECDH_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 15 In_ECDH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 15 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 15 In_FINISHED = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 15 In_APPLICATION = Out_TIMEOUT
-    lambda 15 In_CERTIFICATE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 15 In_EMPTY_CERTIFICATE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 15 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 15 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 15 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 23 In_ECDH_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 23 In_ECDH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 23 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 23 In_FINISHED = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 23 In_APPLICATION = Out_TIMEOUT
-    lambda 23 In_CERTIFICATE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 23 In_EMPTY_CERTIFICATE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 23 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 23 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 23 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 21 In_ECDH_CLIENT_HELLO = Out_Alert_FATAL_DECRYPT_ERROR
-    lambda 21 In_ECDH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_DECRYPT_ERROR
-    lambda 21 In_CHANGE_CIPHER_SPEC = Out_Alert_FATAL_DECRYPT_ERROR
-    lambda 21 In_FINISHED = Out_Alert_FATAL_DECRYPT_ERROR
-    lambda 21 In_APPLICATION = Out_Alert_FATAL_DECRYPT_ERROR
-    lambda 21 In_CERTIFICATE = Out_Alert_FATAL_DECRYPT_ERROR
-    lambda 21 In_EMPTY_CERTIFICATE = Out_Alert_FATAL_DECRYPT_ERROR
-    lambda 21 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_DECRYPT_ERROR
-    lambda 21 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_DECRYPT_ERROR
-    lambda 21 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_Alert_FATAL_DECRYPT_ERROR
-    lambda 22 In_ECDH_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 22 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 22 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 22 In_FINISHED = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 22 In_APPLICATION = Out_TIMEOUT
-    lambda 22 In_CERTIFICATE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 22 In_EMPTY_CERTIFICATE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 22 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 22 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 22 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 5 In_ECDH_CLIENT_HELLO = Out_SERVER_HELLO_CERTIFICATE_ECDHE_SERVER_KEY_EXCHANGE_CERTIFICATE_REQUEST_SERVER_HELLO_DONE
-    lambda 5 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 5 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 5 In_FINISHED = Out_TIMEOUT
-    lambda 5 In_APPLICATION = Out_TIMEOUT
-    lambda 5 In_CERTIFICATE = Out_TIMEOUT
-    lambda 5 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 5 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 5 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 5 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 20 In_ECDH_CLIENT_HELLO = Out_HELLO_VERIFY_REQUEST
-    lambda 20 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 20 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 20 In_FINISHED = Out_TIMEOUT
-    lambda 20 In_APPLICATION = Out_TIMEOUT
-    lambda 20 In_CERTIFICATE = Out_TIMEOUT
-    lambda 20 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 20 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 20 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 20 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 24 In_ECDH_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 24 In_ECDH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 24 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 24 In_FINISHED = Out_CHANGE_CIPHER_SPEC_FINISHED
-    lambda 24 In_APPLICATION = Out_TIMEOUT
-    lambda 24 In_CERTIFICATE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 24 In_EMPTY_CERTIFICATE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 24 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 24 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 24 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 2 In_ECDH_CLIENT_HELLO = Out_HELLO_VERIFY_REQUEST
-    lambda 2 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 2 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 2 In_FINISHED = Out_TIMEOUT
-    lambda 2 In_APPLICATION = Out_TIMEOUT
-    lambda 2 In_CERTIFICATE = Out_TIMEOUT
-    lambda 2 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 2 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 2 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 2 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 25 In_ECDH_CLIENT_HELLO = Out_SERVER_HELLO_CERTIFICATE_ECDHE_SERVER_KEY_EXCHANGE_CERTIFICATE_REQUEST_SERVER_HELLO_DONE
-    lambda 25 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 25 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 25 In_FINISHED = Out_TIMEOUT
-    lambda 25 In_APPLICATION = Out_APPLICATION
-    lambda 25 In_CERTIFICATE = Out_TIMEOUT
-    lambda 25 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 25 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 25 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 25 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 26 In_ECDH_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 26 In_ECDH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 26 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 26 In_FINISHED = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 26 In_APPLICATION = Out_TIMEOUT
-    lambda 26 In_CERTIFICATE = Out_TIMEOUT
-    lambda 26 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 26 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 26 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 26 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 27 In_ECDH_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 27 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 27 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 27 In_FINISHED = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 27 In_APPLICATION = Out_TIMEOUT
-    lambda 27 In_CERTIFICATE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 27 In_EMPTY_CERTIFICATE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 27 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 27 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 27 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 28 In_ECDH_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 28 In_ECDH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 28 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 28 In_FINISHED = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 28 In_APPLICATION = Out_TIMEOUT
-    lambda 28 In_CERTIFICATE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 28 In_EMPTY_CERTIFICATE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 28 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 28 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 28 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 29 In_ECDH_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 29 In_ECDH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 29 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 29 In_FINISHED = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 29 In_APPLICATION = Out_TIMEOUT
-    lambda 29 In_CERTIFICATE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 29 In_EMPTY_CERTIFICATE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 29 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 29 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 29 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda _ _ = error "haal-gen: undefined transition"
+    deltaTable =
+        "\1\2\3\0\0\0\0\0\0\0\
+        \\4\5\6\1\1\1\1\1\1\1\
+        \\5\2\20\2\2\2\2\2\2\2\
+        \\6\20\3\3\3\3\3\3\3\3\
+        \\7\8\9\7\4\10\10\7\11\11\
+        \\19\5\16\5\5\5\5\5\5\5\
+        \\9\16\6\6\6\6\6\6\6\6\
+        \\7\8\12\7\7\7\7\7\11\11\
+        \\8\8\12\8\8\8\8\8\18\18\
+        \\13\14\13\13\13\13\13\13\13\13\
+        \\7\15\9\7\10\7\7\7\11\11\
+        \\4\18\13\11\11\11\11\11\11\11\
+        \\12\12\12\12\12\12\12\12\12\12\
+        \\9\14\13\13\13\13\13\13\13\13\
+        \\17\14\12\14\14\14\14\14\14\14\
+        \\8\8\21\8\15\8\8\23\18\18\
+        \\17\16\16\16\16\16\16\16\16\16\
+        \\14\14\12\14\14\14\14\14\14\14\
+        \\19\18\12\18\18\18\18\18\18\18\
+        \\8\8\21\8\19\22\22\8\18\18\
+        \\16\20\20\20\20\20\20\20\20\20\
+        \\12\12\12\12\12\12\12\12\12\12\
+        \\8\15\21\8\22\8\8\8\18\18\
+        \\8\8\24\8\23\8\8\8\18\18\
+        \\12\12\21\25\24\12\12\12\12\12\
+        \\26\25\12\25\25\25\25\25\12\12\
+        \\12\12\21\12\26\27\27\12\12\12\
+        \\12\28\21\12\27\12\12\12\12\12\
+        \\12\12\21\12\28\12\12\29\12\12\
+        \\12\12\24\12\29\12\12\12\12\12"
+    lambdaTable =
+        "\0\1\1\1\1\1\1\1\1\1\
+        \\2\1\1\1\1\1\1\1\1\1\
+        \\0\1\1\1\1\1\1\1\1\1\
+        \\0\1\1\1\1\1\1\1\1\1\
+        \\3\3\1\3\1\1\1\3\4\1\
+        \\2\1\1\1\1\1\1\1\1\1\
+        \\2\1\1\1\1\1\1\1\1\1\
+        \\1\1\1\1\1\1\1\1\1\1\
+        \\1\1\1\1\1\1\1\1\1\1\
+        \\5\5\5\5\5\5\5\5\5\5\
+        \\3\1\1\3\1\3\3\3\4\1\
+        \\2\1\1\1\1\1\1\1\1\1\
+        \\1\1\1\1\1\1\1\1\1\1\
+        \\2\1\1\1\1\1\1\1\1\1\
+        \\2\1\1\1\1\1\1\1\1\1\
+        \\3\3\1\3\1\3\3\1\4\1\
+        \\2\1\1\1\1\1\1\1\1\1\
+        \\5\5\5\5\5\5\5\5\5\5\
+        \\2\1\1\1\1\1\1\1\1\1\
+        \\3\3\1\3\1\1\1\3\4\1\
+        \\0\1\1\1\1\1\1\1\1\1\
+        \\5\5\5\5\5\5\5\5\5\5\
+        \\3\1\1\3\1\3\3\3\4\1\
+        \\3\3\1\3\1\3\3\3\4\1\
+        \\3\3\1\6\1\3\3\3\4\1\
+        \\2\1\1\1\7\1\1\1\4\1\
+        \\3\3\1\3\1\1\1\3\4\1\
+        \\3\1\1\3\1\3\3\3\4\1\
+        \\3\3\1\3\1\3\3\1\4\1\
+        \\3\3\1\3\1\3\3\3\4\1"
diff --git a/src/Haal/Models/DTLS/CtinydtlsPsk.hs b/src/Haal/Models/DTLS/CtinydtlsPsk.hs
--- a/src/Haal/Models/DTLS/CtinydtlsPsk.hs
+++ b/src/Haal/Models/DTLS/CtinydtlsPsk.hs
@@ -5,8 +5,7 @@
     , ctinydtlsPsk
     ) where
 
-import qualified Data.Set as Set
-import Haal.Automaton.MealyAutomaton (MealyAutomaton, mkMealyAutomaton)
+import Haal.Automaton.MealyAutomaton (MealyAutomaton, mkMealyAutomatonTable)
 
 data CtinydtlsPskInput
     = In_PSK_CLIENT_HELLO
@@ -29,358 +28,238 @@
     | Out_APPLICATION
     deriving (Show, Eq, Ord, Enum, Bounded)
 
+{- Transitions (state  input -> next state / output):
+    0     In_PSK_CLIENT_HELLO                -> 1 / Out_HELLO_VERIFY_REQUEST
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 2 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 0 / Out_TIMEOUT
+          In_APPLICATION                     -> 0 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 0 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 0 / Out_TIMEOUT
+    1     In_PSK_CLIENT_HELLO                -> 4 / Out_SERVER_HELLO_SERVER_HELLO_DONE
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 5 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 6 / Out_TIMEOUT
+          In_FINISHED                        -> 1 / Out_TIMEOUT
+          In_APPLICATION                     -> 1 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 1 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 1 / Out_TIMEOUT
+    2     In_PSK_CLIENT_HELLO                -> 5 / Out_HELLO_VERIFY_REQUEST
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 2 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 19 / Out_TIMEOUT
+          In_FINISHED                        -> 2 / Out_TIMEOUT
+          In_APPLICATION                     -> 2 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 2 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 2 / Out_TIMEOUT
+    3     In_PSK_CLIENT_HELLO                -> 6 / Out_HELLO_VERIFY_REQUEST
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 19 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 3 / Out_TIMEOUT
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 3 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 3 / Out_TIMEOUT
+    4     In_PSK_CLIENT_HELLO                -> 7 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 8 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 9 / Out_TIMEOUT
+          In_FINISHED                        -> 7 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_APPLICATION                     -> 4 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 10 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 10 / Out_TIMEOUT
+    5     In_PSK_CLIENT_HELLO                -> 18 / Out_SERVER_HELLO_SERVER_HELLO_DONE
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 5 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 15 / Out_TIMEOUT
+          In_FINISHED                        -> 5 / Out_TIMEOUT
+          In_APPLICATION                     -> 5 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 5 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 5 / Out_TIMEOUT
+    6     In_PSK_CLIENT_HELLO                -> 9 / Out_SERVER_HELLO_SERVER_HELLO_DONE
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 15 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 6 / Out_TIMEOUT
+          In_FINISHED                        -> 6 / Out_TIMEOUT
+          In_APPLICATION                     -> 6 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 6 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 6 / Out_TIMEOUT
+    7     In_PSK_CLIENT_HELLO                -> 7 / Out_TIMEOUT
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 11 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 12 / Out_TIMEOUT
+          In_FINISHED                        -> 7 / Out_TIMEOUT
+          In_APPLICATION                     -> 7 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 10 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 10 / Out_TIMEOUT
+    8     In_PSK_CLIENT_HELLO                -> 11 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 11 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CHANGE_CIPHER_SPEC              -> 20 / Out_TIMEOUT
+          In_FINISHED                        -> 11 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_APPLICATION                     -> 8 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 17 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 17 / Out_TIMEOUT
+    9     In_PSK_CLIENT_HELLO                -> 13 / Out_Alert_FATAL_DECRYPT_ERROR
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 14 / Out_Alert_FATAL_DECRYPT_ERROR
+          In_CHANGE_CIPHER_SPEC              -> 13 / Out_Alert_FATAL_DECRYPT_ERROR
+          In_FINISHED                        -> 13 / Out_Alert_FATAL_DECRYPT_ERROR
+          In_APPLICATION                     -> 13 / Out_Alert_FATAL_DECRYPT_ERROR
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 13 / Out_Alert_FATAL_DECRYPT_ERROR
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 13 / Out_Alert_FATAL_DECRYPT_ERROR
+    10    In_PSK_CLIENT_HELLO                -> 4 / Out_SERVER_HELLO_SERVER_HELLO_DONE
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 17 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 13 / Out_TIMEOUT
+          In_FINISHED                        -> 10 / Out_TIMEOUT
+          In_APPLICATION                     -> 10 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 10 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 10 / Out_TIMEOUT
+    11    In_PSK_CLIENT_HELLO                -> 11 / Out_TIMEOUT
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 11 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 12 / Out_TIMEOUT
+          In_FINISHED                        -> 11 / Out_TIMEOUT
+          In_APPLICATION                     -> 11 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 17 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 17 / Out_TIMEOUT
+    12    In_PSK_CLIENT_HELLO                -> 12 / Out_TIMEOUT
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 12 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 12 / Out_TIMEOUT
+          In_FINISHED                        -> 12 / Out_TIMEOUT
+          In_APPLICATION                     -> 12 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 12 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 12 / Out_TIMEOUT
+    13    In_PSK_CLIENT_HELLO                -> 9 / Out_SERVER_HELLO_SERVER_HELLO_DONE
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 14 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 13 / Out_TIMEOUT
+          In_FINISHED                        -> 13 / Out_TIMEOUT
+          In_APPLICATION                     -> 13 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 13 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 13 / Out_TIMEOUT
+    14    In_PSK_CLIENT_HELLO                -> 16 / Out_SERVER_HELLO_SERVER_HELLO_DONE
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 14 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 12 / Out_TIMEOUT
+          In_FINISHED                        -> 14 / Out_TIMEOUT
+          In_APPLICATION                     -> 14 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 14 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 14 / Out_TIMEOUT
+    15    In_PSK_CLIENT_HELLO                -> 16 / Out_SERVER_HELLO_SERVER_HELLO_DONE
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 15 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 15 / Out_TIMEOUT
+          In_FINISHED                        -> 15 / Out_TIMEOUT
+          In_APPLICATION                     -> 15 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 15 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 15 / Out_TIMEOUT
+    16    In_PSK_CLIENT_HELLO                -> 14 / Out_Alert_FATAL_DECRYPT_ERROR
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 14 / Out_Alert_FATAL_DECRYPT_ERROR
+          In_CHANGE_CIPHER_SPEC              -> 12 / Out_Alert_FATAL_DECRYPT_ERROR
+          In_FINISHED                        -> 14 / Out_Alert_FATAL_DECRYPT_ERROR
+          In_APPLICATION                     -> 14 / Out_Alert_FATAL_DECRYPT_ERROR
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 14 / Out_Alert_FATAL_DECRYPT_ERROR
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 14 / Out_Alert_FATAL_DECRYPT_ERROR
+    17    In_PSK_CLIENT_HELLO                -> 18 / Out_SERVER_HELLO_SERVER_HELLO_DONE
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 17 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 12 / Out_TIMEOUT
+          In_FINISHED                        -> 17 / Out_TIMEOUT
+          In_APPLICATION                     -> 17 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 17 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 17 / Out_TIMEOUT
+    18    In_PSK_CLIENT_HELLO                -> 11 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 8 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 21 / Out_TIMEOUT
+          In_FINISHED                        -> 11 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_APPLICATION                     -> 18 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 17 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 17 / Out_TIMEOUT
+    19    In_PSK_CLIENT_HELLO                -> 15 / Out_HELLO_VERIFY_REQUEST
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 19 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 19 / Out_TIMEOUT
+          In_FINISHED                        -> 19 / Out_TIMEOUT
+          In_APPLICATION                     -> 19 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 19 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 19 / Out_TIMEOUT
+    20    In_PSK_CLIENT_HELLO                -> 12 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 12 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CHANGE_CIPHER_SPEC              -> 21 / Out_TIMEOUT
+          In_FINISHED                        -> 22 / Out_CHANGE_CIPHER_SPEC_FINISHED
+          In_APPLICATION                     -> 20 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 12 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 12 / Out_TIMEOUT
+    21    In_PSK_CLIENT_HELLO                -> 12 / Out_Alert_FATAL_DECRYPT_ERROR
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 12 / Out_Alert_FATAL_DECRYPT_ERROR
+          In_CHANGE_CIPHER_SPEC              -> 12 / Out_Alert_FATAL_DECRYPT_ERROR
+          In_FINISHED                        -> 12 / Out_Alert_FATAL_DECRYPT_ERROR
+          In_APPLICATION                     -> 12 / Out_Alert_FATAL_DECRYPT_ERROR
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 12 / Out_Alert_FATAL_DECRYPT_ERROR
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 12 / Out_Alert_FATAL_DECRYPT_ERROR
+    22    In_PSK_CLIENT_HELLO                -> 23 / Out_SERVER_HELLO_SERVER_HELLO_DONE
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 22 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 12 / Out_TIMEOUT
+          In_FINISHED                        -> 22 / Out_TIMEOUT
+          In_APPLICATION                     -> 22 / Out_APPLICATION
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 12 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 12 / Out_TIMEOUT
+    23    In_PSK_CLIENT_HELLO                -> 12 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 24 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 21 / Out_TIMEOUT
+          In_FINISHED                        -> 12 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_APPLICATION                     -> 23 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 12 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 12 / Out_TIMEOUT
+    24    In_PSK_CLIENT_HELLO                -> 12 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 12 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CHANGE_CIPHER_SPEC              -> 20 / Out_TIMEOUT
+          In_FINISHED                        -> 12 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_APPLICATION                     -> 24 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 12 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 12 / Out_TIMEOUT
+-}
 ctinydtlsPsk :: MealyAutomaton Int CtinydtlsPskInput CtinydtlsPskOutput
-ctinydtlsPsk = mkMealyAutomaton delta lambda (Set.fromList [0..24]) 0
+ctinydtlsPsk =
+    case mkMealyAutomatonTable 25 0 deltaTable lambdaTable of
+        Right m -> m
+        Left err -> error ("haal-gen: invalid transition table: " ++ err)
   where
-    delta 0 In_PSK_CLIENT_HELLO = 1
-    delta 0 In_PSK_CLIENT_KEY_EXCHANGE = 2
-    delta 0 In_CHANGE_CIPHER_SPEC = 3
-    delta 0 In_FINISHED = 0
-    delta 0 In_APPLICATION = 0
-    delta 0 In_Alert_WARNING_CLOSE_NOTIFY = 0
-    delta 0 In_Alert_FATAL_UNEXPECTED_MESSAGE = 0
-    delta 1 In_PSK_CLIENT_HELLO = 4
-    delta 1 In_PSK_CLIENT_KEY_EXCHANGE = 5
-    delta 1 In_CHANGE_CIPHER_SPEC = 6
-    delta 1 In_FINISHED = 1
-    delta 1 In_APPLICATION = 1
-    delta 1 In_Alert_WARNING_CLOSE_NOTIFY = 1
-    delta 1 In_Alert_FATAL_UNEXPECTED_MESSAGE = 1
-    delta 4 In_PSK_CLIENT_HELLO = 7
-    delta 4 In_PSK_CLIENT_KEY_EXCHANGE = 8
-    delta 4 In_CHANGE_CIPHER_SPEC = 9
-    delta 4 In_FINISHED = 7
-    delta 4 In_APPLICATION = 4
-    delta 4 In_Alert_WARNING_CLOSE_NOTIFY = 10
-    delta 4 In_Alert_FATAL_UNEXPECTED_MESSAGE = 10
-    delta 7 In_PSK_CLIENT_HELLO = 7
-    delta 7 In_PSK_CLIENT_KEY_EXCHANGE = 11
-    delta 7 In_CHANGE_CIPHER_SPEC = 12
-    delta 7 In_FINISHED = 7
-    delta 7 In_APPLICATION = 7
-    delta 7 In_Alert_WARNING_CLOSE_NOTIFY = 10
-    delta 7 In_Alert_FATAL_UNEXPECTED_MESSAGE = 10
-    delta 9 In_PSK_CLIENT_HELLO = 13
-    delta 9 In_PSK_CLIENT_KEY_EXCHANGE = 14
-    delta 9 In_CHANGE_CIPHER_SPEC = 13
-    delta 9 In_FINISHED = 13
-    delta 9 In_APPLICATION = 13
-    delta 9 In_Alert_WARNING_CLOSE_NOTIFY = 13
-    delta 9 In_Alert_FATAL_UNEXPECTED_MESSAGE = 13
-    delta 6 In_PSK_CLIENT_HELLO = 9
-    delta 6 In_PSK_CLIENT_KEY_EXCHANGE = 15
-    delta 6 In_CHANGE_CIPHER_SPEC = 6
-    delta 6 In_FINISHED = 6
-    delta 6 In_APPLICATION = 6
-    delta 6 In_Alert_WARNING_CLOSE_NOTIFY = 6
-    delta 6 In_Alert_FATAL_UNEXPECTED_MESSAGE = 6
-    delta 15 In_PSK_CLIENT_HELLO = 16
-    delta 15 In_PSK_CLIENT_KEY_EXCHANGE = 15
-    delta 15 In_CHANGE_CIPHER_SPEC = 15
-    delta 15 In_FINISHED = 15
-    delta 15 In_APPLICATION = 15
-    delta 15 In_Alert_WARNING_CLOSE_NOTIFY = 15
-    delta 15 In_Alert_FATAL_UNEXPECTED_MESSAGE = 15
-    delta 16 In_PSK_CLIENT_HELLO = 14
-    delta 16 In_PSK_CLIENT_KEY_EXCHANGE = 14
-    delta 16 In_CHANGE_CIPHER_SPEC = 12
-    delta 16 In_FINISHED = 14
-    delta 16 In_APPLICATION = 14
-    delta 16 In_Alert_WARNING_CLOSE_NOTIFY = 14
-    delta 16 In_Alert_FATAL_UNEXPECTED_MESSAGE = 14
-    delta 14 In_PSK_CLIENT_HELLO = 16
-    delta 14 In_PSK_CLIENT_KEY_EXCHANGE = 14
-    delta 14 In_CHANGE_CIPHER_SPEC = 12
-    delta 14 In_FINISHED = 14
-    delta 14 In_APPLICATION = 14
-    delta 14 In_Alert_WARNING_CLOSE_NOTIFY = 14
-    delta 14 In_Alert_FATAL_UNEXPECTED_MESSAGE = 14
-    delta 12 In_PSK_CLIENT_HELLO = 12
-    delta 12 In_PSK_CLIENT_KEY_EXCHANGE = 12
-    delta 12 In_CHANGE_CIPHER_SPEC = 12
-    delta 12 In_FINISHED = 12
-    delta 12 In_APPLICATION = 12
-    delta 12 In_Alert_WARNING_CLOSE_NOTIFY = 12
-    delta 12 In_Alert_FATAL_UNEXPECTED_MESSAGE = 12
-    delta 10 In_PSK_CLIENT_HELLO = 4
-    delta 10 In_PSK_CLIENT_KEY_EXCHANGE = 17
-    delta 10 In_CHANGE_CIPHER_SPEC = 13
-    delta 10 In_FINISHED = 10
-    delta 10 In_APPLICATION = 10
-    delta 10 In_Alert_WARNING_CLOSE_NOTIFY = 10
-    delta 10 In_Alert_FATAL_UNEXPECTED_MESSAGE = 10
-    delta 17 In_PSK_CLIENT_HELLO = 18
-    delta 17 In_PSK_CLIENT_KEY_EXCHANGE = 17
-    delta 17 In_CHANGE_CIPHER_SPEC = 12
-    delta 17 In_FINISHED = 17
-    delta 17 In_APPLICATION = 17
-    delta 17 In_Alert_WARNING_CLOSE_NOTIFY = 17
-    delta 17 In_Alert_FATAL_UNEXPECTED_MESSAGE = 17
-    delta 3 In_PSK_CLIENT_HELLO = 6
-    delta 3 In_PSK_CLIENT_KEY_EXCHANGE = 19
-    delta 3 In_CHANGE_CIPHER_SPEC = 3
-    delta 3 In_FINISHED = 3
-    delta 3 In_APPLICATION = 3
-    delta 3 In_Alert_WARNING_CLOSE_NOTIFY = 3
-    delta 3 In_Alert_FATAL_UNEXPECTED_MESSAGE = 3
-    delta 8 In_PSK_CLIENT_HELLO = 11
-    delta 8 In_PSK_CLIENT_KEY_EXCHANGE = 11
-    delta 8 In_CHANGE_CIPHER_SPEC = 20
-    delta 8 In_FINISHED = 11
-    delta 8 In_APPLICATION = 8
-    delta 8 In_Alert_WARNING_CLOSE_NOTIFY = 17
-    delta 8 In_Alert_FATAL_UNEXPECTED_MESSAGE = 17
-    delta 18 In_PSK_CLIENT_HELLO = 11
-    delta 18 In_PSK_CLIENT_KEY_EXCHANGE = 8
-    delta 18 In_CHANGE_CIPHER_SPEC = 21
-    delta 18 In_FINISHED = 11
-    delta 18 In_APPLICATION = 18
-    delta 18 In_Alert_WARNING_CLOSE_NOTIFY = 17
-    delta 18 In_Alert_FATAL_UNEXPECTED_MESSAGE = 17
-    delta 11 In_PSK_CLIENT_HELLO = 11
-    delta 11 In_PSK_CLIENT_KEY_EXCHANGE = 11
-    delta 11 In_CHANGE_CIPHER_SPEC = 12
-    delta 11 In_FINISHED = 11
-    delta 11 In_APPLICATION = 11
-    delta 11 In_Alert_WARNING_CLOSE_NOTIFY = 17
-    delta 11 In_Alert_FATAL_UNEXPECTED_MESSAGE = 17
-    delta 13 In_PSK_CLIENT_HELLO = 9
-    delta 13 In_PSK_CLIENT_KEY_EXCHANGE = 14
-    delta 13 In_CHANGE_CIPHER_SPEC = 13
-    delta 13 In_FINISHED = 13
-    delta 13 In_APPLICATION = 13
-    delta 13 In_Alert_WARNING_CLOSE_NOTIFY = 13
-    delta 13 In_Alert_FATAL_UNEXPECTED_MESSAGE = 13
-    delta 19 In_PSK_CLIENT_HELLO = 15
-    delta 19 In_PSK_CLIENT_KEY_EXCHANGE = 19
-    delta 19 In_CHANGE_CIPHER_SPEC = 19
-    delta 19 In_FINISHED = 19
-    delta 19 In_APPLICATION = 19
-    delta 19 In_Alert_WARNING_CLOSE_NOTIFY = 19
-    delta 19 In_Alert_FATAL_UNEXPECTED_MESSAGE = 19
-    delta 2 In_PSK_CLIENT_HELLO = 5
-    delta 2 In_PSK_CLIENT_KEY_EXCHANGE = 2
-    delta 2 In_CHANGE_CIPHER_SPEC = 19
-    delta 2 In_FINISHED = 2
-    delta 2 In_APPLICATION = 2
-    delta 2 In_Alert_WARNING_CLOSE_NOTIFY = 2
-    delta 2 In_Alert_FATAL_UNEXPECTED_MESSAGE = 2
-    delta 5 In_PSK_CLIENT_HELLO = 18
-    delta 5 In_PSK_CLIENT_KEY_EXCHANGE = 5
-    delta 5 In_CHANGE_CIPHER_SPEC = 15
-    delta 5 In_FINISHED = 5
-    delta 5 In_APPLICATION = 5
-    delta 5 In_Alert_WARNING_CLOSE_NOTIFY = 5
-    delta 5 In_Alert_FATAL_UNEXPECTED_MESSAGE = 5
-    delta 21 In_PSK_CLIENT_HELLO = 12
-    delta 21 In_PSK_CLIENT_KEY_EXCHANGE = 12
-    delta 21 In_CHANGE_CIPHER_SPEC = 12
-    delta 21 In_FINISHED = 12
-    delta 21 In_APPLICATION = 12
-    delta 21 In_Alert_WARNING_CLOSE_NOTIFY = 12
-    delta 21 In_Alert_FATAL_UNEXPECTED_MESSAGE = 12
-    delta 20 In_PSK_CLIENT_HELLO = 12
-    delta 20 In_PSK_CLIENT_KEY_EXCHANGE = 12
-    delta 20 In_CHANGE_CIPHER_SPEC = 21
-    delta 20 In_FINISHED = 22
-    delta 20 In_APPLICATION = 20
-    delta 20 In_Alert_WARNING_CLOSE_NOTIFY = 12
-    delta 20 In_Alert_FATAL_UNEXPECTED_MESSAGE = 12
-    delta 22 In_PSK_CLIENT_HELLO = 23
-    delta 22 In_PSK_CLIENT_KEY_EXCHANGE = 22
-    delta 22 In_CHANGE_CIPHER_SPEC = 12
-    delta 22 In_FINISHED = 22
-    delta 22 In_APPLICATION = 22
-    delta 22 In_Alert_WARNING_CLOSE_NOTIFY = 12
-    delta 22 In_Alert_FATAL_UNEXPECTED_MESSAGE = 12
-    delta 23 In_PSK_CLIENT_HELLO = 12
-    delta 23 In_PSK_CLIENT_KEY_EXCHANGE = 24
-    delta 23 In_CHANGE_CIPHER_SPEC = 21
-    delta 23 In_FINISHED = 12
-    delta 23 In_APPLICATION = 23
-    delta 23 In_Alert_WARNING_CLOSE_NOTIFY = 12
-    delta 23 In_Alert_FATAL_UNEXPECTED_MESSAGE = 12
-    delta 24 In_PSK_CLIENT_HELLO = 12
-    delta 24 In_PSK_CLIENT_KEY_EXCHANGE = 12
-    delta 24 In_CHANGE_CIPHER_SPEC = 20
-    delta 24 In_FINISHED = 12
-    delta 24 In_APPLICATION = 24
-    delta 24 In_Alert_WARNING_CLOSE_NOTIFY = 12
-    delta 24 In_Alert_FATAL_UNEXPECTED_MESSAGE = 12
-    delta _ _ = error "haal-gen: undefined transition"
-    lambda 0 In_PSK_CLIENT_HELLO = Out_HELLO_VERIFY_REQUEST
-    lambda 0 In_PSK_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 0 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 0 In_FINISHED = Out_TIMEOUT
-    lambda 0 In_APPLICATION = Out_TIMEOUT
-    lambda 0 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 0 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 1 In_PSK_CLIENT_HELLO = Out_SERVER_HELLO_SERVER_HELLO_DONE
-    lambda 1 In_PSK_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 1 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 1 In_FINISHED = Out_TIMEOUT
-    lambda 1 In_APPLICATION = Out_TIMEOUT
-    lambda 1 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 1 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 4 In_PSK_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 4 In_PSK_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 4 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 4 In_FINISHED = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 4 In_APPLICATION = Out_TIMEOUT
-    lambda 4 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 4 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 7 In_PSK_CLIENT_HELLO = Out_TIMEOUT
-    lambda 7 In_PSK_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 7 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 7 In_FINISHED = Out_TIMEOUT
-    lambda 7 In_APPLICATION = Out_TIMEOUT
-    lambda 7 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 7 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 9 In_PSK_CLIENT_HELLO = Out_Alert_FATAL_DECRYPT_ERROR
-    lambda 9 In_PSK_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_DECRYPT_ERROR
-    lambda 9 In_CHANGE_CIPHER_SPEC = Out_Alert_FATAL_DECRYPT_ERROR
-    lambda 9 In_FINISHED = Out_Alert_FATAL_DECRYPT_ERROR
-    lambda 9 In_APPLICATION = Out_Alert_FATAL_DECRYPT_ERROR
-    lambda 9 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_DECRYPT_ERROR
-    lambda 9 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_Alert_FATAL_DECRYPT_ERROR
-    lambda 6 In_PSK_CLIENT_HELLO = Out_SERVER_HELLO_SERVER_HELLO_DONE
-    lambda 6 In_PSK_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 6 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 6 In_FINISHED = Out_TIMEOUT
-    lambda 6 In_APPLICATION = Out_TIMEOUT
-    lambda 6 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 6 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 15 In_PSK_CLIENT_HELLO = Out_SERVER_HELLO_SERVER_HELLO_DONE
-    lambda 15 In_PSK_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 15 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 15 In_FINISHED = Out_TIMEOUT
-    lambda 15 In_APPLICATION = Out_TIMEOUT
-    lambda 15 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 15 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 16 In_PSK_CLIENT_HELLO = Out_Alert_FATAL_DECRYPT_ERROR
-    lambda 16 In_PSK_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_DECRYPT_ERROR
-    lambda 16 In_CHANGE_CIPHER_SPEC = Out_Alert_FATAL_DECRYPT_ERROR
-    lambda 16 In_FINISHED = Out_Alert_FATAL_DECRYPT_ERROR
-    lambda 16 In_APPLICATION = Out_Alert_FATAL_DECRYPT_ERROR
-    lambda 16 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_DECRYPT_ERROR
-    lambda 16 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_Alert_FATAL_DECRYPT_ERROR
-    lambda 14 In_PSK_CLIENT_HELLO = Out_SERVER_HELLO_SERVER_HELLO_DONE
-    lambda 14 In_PSK_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 14 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 14 In_FINISHED = Out_TIMEOUT
-    lambda 14 In_APPLICATION = Out_TIMEOUT
-    lambda 14 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 14 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 12 In_PSK_CLIENT_HELLO = Out_TIMEOUT
-    lambda 12 In_PSK_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 12 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 12 In_FINISHED = Out_TIMEOUT
-    lambda 12 In_APPLICATION = Out_TIMEOUT
-    lambda 12 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 12 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 10 In_PSK_CLIENT_HELLO = Out_SERVER_HELLO_SERVER_HELLO_DONE
-    lambda 10 In_PSK_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 10 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 10 In_FINISHED = Out_TIMEOUT
-    lambda 10 In_APPLICATION = Out_TIMEOUT
-    lambda 10 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 10 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 17 In_PSK_CLIENT_HELLO = Out_SERVER_HELLO_SERVER_HELLO_DONE
-    lambda 17 In_PSK_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 17 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 17 In_FINISHED = Out_TIMEOUT
-    lambda 17 In_APPLICATION = Out_TIMEOUT
-    lambda 17 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 17 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 3 In_PSK_CLIENT_HELLO = Out_HELLO_VERIFY_REQUEST
-    lambda 3 In_PSK_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 3 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 3 In_FINISHED = Out_TIMEOUT
-    lambda 3 In_APPLICATION = Out_TIMEOUT
-    lambda 3 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 3 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 8 In_PSK_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 8 In_PSK_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 8 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 8 In_FINISHED = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 8 In_APPLICATION = Out_TIMEOUT
-    lambda 8 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 8 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 18 In_PSK_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 18 In_PSK_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 18 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 18 In_FINISHED = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 18 In_APPLICATION = Out_TIMEOUT
-    lambda 18 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 18 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 11 In_PSK_CLIENT_HELLO = Out_TIMEOUT
-    lambda 11 In_PSK_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 11 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 11 In_FINISHED = Out_TIMEOUT
-    lambda 11 In_APPLICATION = Out_TIMEOUT
-    lambda 11 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 11 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 13 In_PSK_CLIENT_HELLO = Out_SERVER_HELLO_SERVER_HELLO_DONE
-    lambda 13 In_PSK_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 13 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 13 In_FINISHED = Out_TIMEOUT
-    lambda 13 In_APPLICATION = Out_TIMEOUT
-    lambda 13 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 13 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 19 In_PSK_CLIENT_HELLO = Out_HELLO_VERIFY_REQUEST
-    lambda 19 In_PSK_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 19 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 19 In_FINISHED = Out_TIMEOUT
-    lambda 19 In_APPLICATION = Out_TIMEOUT
-    lambda 19 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 19 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 2 In_PSK_CLIENT_HELLO = Out_HELLO_VERIFY_REQUEST
-    lambda 2 In_PSK_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 2 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 2 In_FINISHED = Out_TIMEOUT
-    lambda 2 In_APPLICATION = Out_TIMEOUT
-    lambda 2 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 2 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 5 In_PSK_CLIENT_HELLO = Out_SERVER_HELLO_SERVER_HELLO_DONE
-    lambda 5 In_PSK_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 5 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 5 In_FINISHED = Out_TIMEOUT
-    lambda 5 In_APPLICATION = Out_TIMEOUT
-    lambda 5 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 5 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 21 In_PSK_CLIENT_HELLO = Out_Alert_FATAL_DECRYPT_ERROR
-    lambda 21 In_PSK_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_DECRYPT_ERROR
-    lambda 21 In_CHANGE_CIPHER_SPEC = Out_Alert_FATAL_DECRYPT_ERROR
-    lambda 21 In_FINISHED = Out_Alert_FATAL_DECRYPT_ERROR
-    lambda 21 In_APPLICATION = Out_Alert_FATAL_DECRYPT_ERROR
-    lambda 21 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_DECRYPT_ERROR
-    lambda 21 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_Alert_FATAL_DECRYPT_ERROR
-    lambda 20 In_PSK_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 20 In_PSK_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 20 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 20 In_FINISHED = Out_CHANGE_CIPHER_SPEC_FINISHED
-    lambda 20 In_APPLICATION = Out_TIMEOUT
-    lambda 20 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 20 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 22 In_PSK_CLIENT_HELLO = Out_SERVER_HELLO_SERVER_HELLO_DONE
-    lambda 22 In_PSK_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 22 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 22 In_FINISHED = Out_TIMEOUT
-    lambda 22 In_APPLICATION = Out_APPLICATION
-    lambda 22 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 22 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 23 In_PSK_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 23 In_PSK_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 23 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 23 In_FINISHED = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 23 In_APPLICATION = Out_TIMEOUT
-    lambda 23 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 23 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 24 In_PSK_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 24 In_PSK_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 24 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 24 In_FINISHED = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 24 In_APPLICATION = Out_TIMEOUT
-    lambda 24 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 24 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda _ _ = error "haal-gen: undefined transition"
+    deltaTable =
+        "\1\2\3\0\0\0\0\
+        \\4\5\6\1\1\1\1\
+        \\5\2\19\2\2\2\2\
+        \\6\19\3\3\3\3\3\
+        \\7\8\9\7\4\10\10\
+        \\18\5\15\5\5\5\5\
+        \\9\15\6\6\6\6\6\
+        \\7\11\12\7\7\10\10\
+        \\11\11\20\11\8\17\17\
+        \\13\14\13\13\13\13\13\
+        \\4\17\13\10\10\10\10\
+        \\11\11\12\11\11\17\17\
+        \\12\12\12\12\12\12\12\
+        \\9\14\13\13\13\13\13\
+        \\16\14\12\14\14\14\14\
+        \\16\15\15\15\15\15\15\
+        \\14\14\12\14\14\14\14\
+        \\18\17\12\17\17\17\17\
+        \\11\8\21\11\18\17\17\
+        \\15\19\19\19\19\19\19\
+        \\12\12\21\22\20\12\12\
+        \\12\12\12\12\12\12\12\
+        \\23\22\12\22\22\12\12\
+        \\12\24\21\12\23\12\12\
+        \\12\12\20\12\24\12\12"
+    lambdaTable =
+        "\0\1\1\1\1\1\1\
+        \\2\1\1\1\1\1\1\
+        \\0\1\1\1\1\1\1\
+        \\0\1\1\1\1\1\1\
+        \\3\1\1\3\1\4\1\
+        \\2\1\1\1\1\1\1\
+        \\2\1\1\1\1\1\1\
+        \\1\1\1\1\1\1\1\
+        \\3\3\1\3\1\4\1\
+        \\5\5\5\5\5\5\5\
+        \\2\1\1\1\1\1\1\
+        \\1\1\1\1\1\1\1\
+        \\1\1\1\1\1\1\1\
+        \\2\1\1\1\1\1\1\
+        \\2\1\1\1\1\1\1\
+        \\2\1\1\1\1\1\1\
+        \\5\5\5\5\5\5\5\
+        \\2\1\1\1\1\1\1\
+        \\3\1\1\3\1\4\1\
+        \\0\1\1\1\1\1\1\
+        \\3\3\1\6\1\4\1\
+        \\5\5\5\5\5\5\5\
+        \\2\1\1\1\7\4\1\
+        \\3\1\1\3\1\4\1\
+        \\3\3\1\3\1\4\1"
diff --git a/src/Haal/Models/DTLS/EtinydtlsEcdheCertNone.hs b/src/Haal/Models/DTLS/EtinydtlsEcdheCertNone.hs
--- a/src/Haal/Models/DTLS/EtinydtlsEcdheCertNone.hs
+++ b/src/Haal/Models/DTLS/EtinydtlsEcdheCertNone.hs
@@ -5,8 +5,7 @@
     , etinydtlsEcdheCertNone
     ) where
 
-import qualified Data.Set as Set
-import Haal.Automaton.MealyAutomaton (MealyAutomaton, mkMealyAutomaton)
+import Haal.Automaton.MealyAutomaton (MealyAutomaton, mkMealyAutomatonTable)
 
 data EtinydtlsEcdheCertNoneInput
     = In_ECDH_CLIENT_HELLO
@@ -33,448 +32,277 @@
     | Out_APPLICATION
     deriving (Show, Eq, Ord, Enum, Bounded)
 
+{- Transitions (state  input -> next state / output):
+    0     In_ECDH_CLIENT_HELLO               -> 1 / Out_HELLO_VERIFY_REQUEST
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 2 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 0 / Out_TIMEOUT
+          In_APPLICATION                     -> 0 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 0 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 0 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 0 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 0 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 0 / Out_TIMEOUT
+    1     In_ECDH_CLIENT_HELLO               -> 4 / Out_SERVER_HELLO_CERTIFICATE_ECDHE_SERVER_KEY_EXCHANGE_SERVER_HELLO_DONE
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 5 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 1 / Out_TIMEOUT
+          In_APPLICATION                     -> 1 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 1 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 1 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 1 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 1 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 1 / Out_TIMEOUT
+    2     In_ECDH_CLIENT_HELLO               -> 5 / Out_HELLO_VERIFY_REQUEST
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 2 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 2 / Out_TIMEOUT
+          In_APPLICATION                     -> 2 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 2 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 2 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 2 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 2 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 2 / Out_TIMEOUT
+    3     In_ECDH_CLIENT_HELLO               -> 3 / Out_SOCKET_CLOSED
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 3 / Out_SOCKET_CLOSED
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_SOCKET_CLOSED
+          In_FINISHED                        -> 3 / Out_SOCKET_CLOSED
+          In_APPLICATION                     -> 3 / Out_SOCKET_CLOSED
+          In_CERTIFICATE                     -> 3 / Out_SOCKET_CLOSED
+          In_EMPTY_CERTIFICATE               -> 3 / Out_SOCKET_CLOSED
+          In_CERTIFICATE_VERIFY              -> 3 / Out_SOCKET_CLOSED
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 3 / Out_SOCKET_CLOSED
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 3 / Out_SOCKET_CLOSED
+    4     In_ECDH_CLIENT_HELLO               -> 6 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 7 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 8 / Out_TIMEOUT
+          In_FINISHED                        -> 6 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_APPLICATION                     -> 4 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 6 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_EMPTY_CERTIFICATE               -> 6 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CERTIFICATE_VERIFY              -> 6 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 1 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 1 / Out_TIMEOUT
+    5     In_ECDH_CLIENT_HELLO               -> 16 / Out_SERVER_HELLO_CERTIFICATE_ECDHE_SERVER_KEY_EXCHANGE_SERVER_HELLO_DONE
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 5 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 5 / Out_TIMEOUT
+          In_APPLICATION                     -> 5 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 5 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 5 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 5 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 5 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 5 / Out_TIMEOUT
+    6     In_ECDH_CLIENT_HELLO               -> 6 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 9 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 10 / Out_TIMEOUT
+          In_FINISHED                        -> 6 / Out_TIMEOUT
+          In_APPLICATION                     -> 6 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 6 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 6 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 6 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 1 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 1 / Out_TIMEOUT
+    7     In_ECDH_CLIENT_HELLO               -> 9 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 9 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CHANGE_CIPHER_SPEC              -> 13 / Out_TIMEOUT
+          In_FINISHED                        -> 9 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_APPLICATION                     -> 7 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 9 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_EMPTY_CERTIFICATE               -> 9 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CERTIFICATE_VERIFY              -> 9 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 5 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 5 / Out_TIMEOUT
+    8     In_ECDH_CLIENT_HELLO               -> 11 / Out_Alert_FATAL_DECRYPT_ERROR
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 12 / Out_Alert_FATAL_DECRYPT_ERROR
+          In_CHANGE_CIPHER_SPEC              -> 11 / Out_Alert_FATAL_DECRYPT_ERROR
+          In_FINISHED                        -> 11 / Out_Alert_FATAL_DECRYPT_ERROR
+          In_APPLICATION                     -> 11 / Out_Alert_FATAL_DECRYPT_ERROR
+          In_CERTIFICATE                     -> 11 / Out_Alert_FATAL_DECRYPT_ERROR
+          In_EMPTY_CERTIFICATE               -> 11 / Out_Alert_FATAL_DECRYPT_ERROR
+          In_CERTIFICATE_VERIFY              -> 11 / Out_Alert_FATAL_DECRYPT_ERROR
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 11 / Out_Alert_FATAL_DECRYPT_ERROR
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 11 / Out_Alert_FATAL_DECRYPT_ERROR
+    9     In_ECDH_CLIENT_HELLO               -> 9 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 9 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 10 / Out_TIMEOUT
+          In_FINISHED                        -> 9 / Out_TIMEOUT
+          In_APPLICATION                     -> 9 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 9 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 9 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 9 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 5 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 5 / Out_TIMEOUT
+    10    In_ECDH_CLIENT_HELLO               -> 10 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 10 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 10 / Out_TIMEOUT
+          In_FINISHED                        -> 10 / Out_TIMEOUT
+          In_APPLICATION                     -> 10 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 10 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 10 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 10 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 10 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 10 / Out_TIMEOUT
+    11    In_ECDH_CLIENT_HELLO               -> 8 / Out_SERVER_HELLO_CERTIFICATE_ECDHE_SERVER_KEY_EXCHANGE_SERVER_HELLO_DONE
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 12 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 11 / Out_TIMEOUT
+          In_APPLICATION                     -> 11 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 11 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 11 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 11 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 11 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 11 / Out_TIMEOUT
+    12    In_ECDH_CLIENT_HELLO               -> 14 / Out_SERVER_HELLO_CERTIFICATE_ECDHE_SERVER_KEY_EXCHANGE_SERVER_HELLO_DONE
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 12 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 12 / Out_TIMEOUT
+          In_APPLICATION                     -> 12 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 12 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 12 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 12 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 12 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 12 / Out_TIMEOUT
+    13    In_ECDH_CLIENT_HELLO               -> 18 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 18 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CHANGE_CIPHER_SPEC              -> 17 / Out_TIMEOUT
+          In_FINISHED                        -> 19 / Out_CHANGE_CIPHER_SPEC_FINISHED
+          In_APPLICATION                     -> 13 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 18 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_EMPTY_CERTIFICATE               -> 18 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CERTIFICATE_VERIFY              -> 18 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 15 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 15 / Out_TIMEOUT
+    14    In_ECDH_CLIENT_HELLO               -> 12 / Out_Alert_FATAL_DECRYPT_ERROR
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 12 / Out_Alert_FATAL_DECRYPT_ERROR
+          In_CHANGE_CIPHER_SPEC              -> 15 / Out_Alert_FATAL_DECRYPT_ERROR
+          In_FINISHED                        -> 12 / Out_Alert_FATAL_DECRYPT_ERROR
+          In_APPLICATION                     -> 12 / Out_Alert_FATAL_DECRYPT_ERROR
+          In_CERTIFICATE                     -> 12 / Out_Alert_FATAL_DECRYPT_ERROR
+          In_EMPTY_CERTIFICATE               -> 12 / Out_Alert_FATAL_DECRYPT_ERROR
+          In_CERTIFICATE_VERIFY              -> 12 / Out_Alert_FATAL_DECRYPT_ERROR
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 12 / Out_Alert_FATAL_DECRYPT_ERROR
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 12 / Out_Alert_FATAL_DECRYPT_ERROR
+    15    In_ECDH_CLIENT_HELLO               -> 15 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 15 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 15 / Out_TIMEOUT
+          In_APPLICATION                     -> 15 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 15 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 15 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 15 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 15 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 15 / Out_TIMEOUT
+    16    In_ECDH_CLIENT_HELLO               -> 9 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 7 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 17 / Out_TIMEOUT
+          In_FINISHED                        -> 9 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_APPLICATION                     -> 16 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 9 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_EMPTY_CERTIFICATE               -> 9 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CERTIFICATE_VERIFY              -> 9 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 5 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 5 / Out_TIMEOUT
+    17    In_ECDH_CLIENT_HELLO               -> 15 / Out_Alert_FATAL_DECRYPT_ERROR
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 15 / Out_Alert_FATAL_DECRYPT_ERROR
+          In_CHANGE_CIPHER_SPEC              -> 15 / Out_Alert_FATAL_DECRYPT_ERROR
+          In_FINISHED                        -> 15 / Out_Alert_FATAL_DECRYPT_ERROR
+          In_APPLICATION                     -> 15 / Out_Alert_FATAL_DECRYPT_ERROR
+          In_CERTIFICATE                     -> 15 / Out_Alert_FATAL_DECRYPT_ERROR
+          In_EMPTY_CERTIFICATE               -> 15 / Out_Alert_FATAL_DECRYPT_ERROR
+          In_CERTIFICATE_VERIFY              -> 15 / Out_Alert_FATAL_DECRYPT_ERROR
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 15 / Out_Alert_FATAL_DECRYPT_ERROR
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 15 / Out_Alert_FATAL_DECRYPT_ERROR
+    18    In_ECDH_CLIENT_HELLO               -> 18 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 18 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 10 / Out_TIMEOUT
+          In_FINISHED                        -> 18 / Out_TIMEOUT
+          In_APPLICATION                     -> 18 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 18 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 18 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 18 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 15 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 15 / Out_TIMEOUT
+    19    In_ECDH_CLIENT_HELLO               -> 20 / Out_SERVER_HELLO_CERTIFICATE_ECDHE_SERVER_KEY_EXCHANGE_SERVER_HELLO_DONE
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 19 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 10 / Out_TIMEOUT
+          In_FINISHED                        -> 19 / Out_TIMEOUT
+          In_APPLICATION                     -> 19 / Out_APPLICATION
+          In_CERTIFICATE                     -> 19 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 19 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 19 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 15 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 15 / Out_TIMEOUT
+    20    In_ECDH_CLIENT_HELLO               -> 18 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 21 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 17 / Out_TIMEOUT
+          In_FINISHED                        -> 18 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_APPLICATION                     -> 20 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 18 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_EMPTY_CERTIFICATE               -> 18 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CERTIFICATE_VERIFY              -> 18 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 15 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 15 / Out_TIMEOUT
+    21    In_ECDH_CLIENT_HELLO               -> 18 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 18 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CHANGE_CIPHER_SPEC              -> 13 / Out_TIMEOUT
+          In_FINISHED                        -> 18 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_APPLICATION                     -> 21 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 18 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_EMPTY_CERTIFICATE               -> 18 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CERTIFICATE_VERIFY              -> 18 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 15 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 15 / Out_TIMEOUT
+-}
 etinydtlsEcdheCertNone :: MealyAutomaton Int EtinydtlsEcdheCertNoneInput EtinydtlsEcdheCertNoneOutput
-etinydtlsEcdheCertNone = mkMealyAutomaton delta lambda (Set.fromList [0..21]) 0
+etinydtlsEcdheCertNone =
+    case mkMealyAutomatonTable 22 0 deltaTable lambdaTable of
+        Right m -> m
+        Left err -> error ("haal-gen: invalid transition table: " ++ err)
   where
-    delta 0 In_ECDH_CLIENT_HELLO = 1
-    delta 0 In_ECDH_CLIENT_KEY_EXCHANGE = 2
-    delta 0 In_CHANGE_CIPHER_SPEC = 3
-    delta 0 In_FINISHED = 0
-    delta 0 In_APPLICATION = 0
-    delta 0 In_CERTIFICATE = 0
-    delta 0 In_EMPTY_CERTIFICATE = 0
-    delta 0 In_CERTIFICATE_VERIFY = 0
-    delta 0 In_Alert_WARNING_CLOSE_NOTIFY = 0
-    delta 0 In_Alert_FATAL_UNEXPECTED_MESSAGE = 0
-    delta 3 In_ECDH_CLIENT_HELLO = 3
-    delta 3 In_ECDH_CLIENT_KEY_EXCHANGE = 3
-    delta 3 In_CHANGE_CIPHER_SPEC = 3
-    delta 3 In_FINISHED = 3
-    delta 3 In_APPLICATION = 3
-    delta 3 In_CERTIFICATE = 3
-    delta 3 In_EMPTY_CERTIFICATE = 3
-    delta 3 In_CERTIFICATE_VERIFY = 3
-    delta 3 In_Alert_WARNING_CLOSE_NOTIFY = 3
-    delta 3 In_Alert_FATAL_UNEXPECTED_MESSAGE = 3
-    delta 1 In_ECDH_CLIENT_HELLO = 4
-    delta 1 In_ECDH_CLIENT_KEY_EXCHANGE = 5
-    delta 1 In_CHANGE_CIPHER_SPEC = 3
-    delta 1 In_FINISHED = 1
-    delta 1 In_APPLICATION = 1
-    delta 1 In_CERTIFICATE = 1
-    delta 1 In_EMPTY_CERTIFICATE = 1
-    delta 1 In_CERTIFICATE_VERIFY = 1
-    delta 1 In_Alert_WARNING_CLOSE_NOTIFY = 1
-    delta 1 In_Alert_FATAL_UNEXPECTED_MESSAGE = 1
-    delta 4 In_ECDH_CLIENT_HELLO = 6
-    delta 4 In_ECDH_CLIENT_KEY_EXCHANGE = 7
-    delta 4 In_CHANGE_CIPHER_SPEC = 8
-    delta 4 In_FINISHED = 6
-    delta 4 In_APPLICATION = 4
-    delta 4 In_CERTIFICATE = 6
-    delta 4 In_EMPTY_CERTIFICATE = 6
-    delta 4 In_CERTIFICATE_VERIFY = 6
-    delta 4 In_Alert_WARNING_CLOSE_NOTIFY = 1
-    delta 4 In_Alert_FATAL_UNEXPECTED_MESSAGE = 1
-    delta 6 In_ECDH_CLIENT_HELLO = 6
-    delta 6 In_ECDH_CLIENT_KEY_EXCHANGE = 9
-    delta 6 In_CHANGE_CIPHER_SPEC = 10
-    delta 6 In_FINISHED = 6
-    delta 6 In_APPLICATION = 6
-    delta 6 In_CERTIFICATE = 6
-    delta 6 In_EMPTY_CERTIFICATE = 6
-    delta 6 In_CERTIFICATE_VERIFY = 6
-    delta 6 In_Alert_WARNING_CLOSE_NOTIFY = 1
-    delta 6 In_Alert_FATAL_UNEXPECTED_MESSAGE = 1
-    delta 8 In_ECDH_CLIENT_HELLO = 11
-    delta 8 In_ECDH_CLIENT_KEY_EXCHANGE = 12
-    delta 8 In_CHANGE_CIPHER_SPEC = 11
-    delta 8 In_FINISHED = 11
-    delta 8 In_APPLICATION = 11
-    delta 8 In_CERTIFICATE = 11
-    delta 8 In_EMPTY_CERTIFICATE = 11
-    delta 8 In_CERTIFICATE_VERIFY = 11
-    delta 8 In_Alert_WARNING_CLOSE_NOTIFY = 11
-    delta 8 In_Alert_FATAL_UNEXPECTED_MESSAGE = 11
-    delta 11 In_ECDH_CLIENT_HELLO = 8
-    delta 11 In_ECDH_CLIENT_KEY_EXCHANGE = 12
-    delta 11 In_CHANGE_CIPHER_SPEC = 3
-    delta 11 In_FINISHED = 11
-    delta 11 In_APPLICATION = 11
-    delta 11 In_CERTIFICATE = 11
-    delta 11 In_EMPTY_CERTIFICATE = 11
-    delta 11 In_CERTIFICATE_VERIFY = 11
-    delta 11 In_Alert_WARNING_CLOSE_NOTIFY = 11
-    delta 11 In_Alert_FATAL_UNEXPECTED_MESSAGE = 11
-    delta 10 In_ECDH_CLIENT_HELLO = 10
-    delta 10 In_ECDH_CLIENT_KEY_EXCHANGE = 10
-    delta 10 In_CHANGE_CIPHER_SPEC = 10
-    delta 10 In_FINISHED = 10
-    delta 10 In_APPLICATION = 10
-    delta 10 In_CERTIFICATE = 10
-    delta 10 In_EMPTY_CERTIFICATE = 10
-    delta 10 In_CERTIFICATE_VERIFY = 10
-    delta 10 In_Alert_WARNING_CLOSE_NOTIFY = 10
-    delta 10 In_Alert_FATAL_UNEXPECTED_MESSAGE = 10
-    delta 7 In_ECDH_CLIENT_HELLO = 9
-    delta 7 In_ECDH_CLIENT_KEY_EXCHANGE = 9
-    delta 7 In_CHANGE_CIPHER_SPEC = 13
-    delta 7 In_FINISHED = 9
-    delta 7 In_APPLICATION = 7
-    delta 7 In_CERTIFICATE = 9
-    delta 7 In_EMPTY_CERTIFICATE = 9
-    delta 7 In_CERTIFICATE_VERIFY = 9
-    delta 7 In_Alert_WARNING_CLOSE_NOTIFY = 5
-    delta 7 In_Alert_FATAL_UNEXPECTED_MESSAGE = 5
-    delta 12 In_ECDH_CLIENT_HELLO = 14
-    delta 12 In_ECDH_CLIENT_KEY_EXCHANGE = 12
-    delta 12 In_CHANGE_CIPHER_SPEC = 3
-    delta 12 In_FINISHED = 12
-    delta 12 In_APPLICATION = 12
-    delta 12 In_CERTIFICATE = 12
-    delta 12 In_EMPTY_CERTIFICATE = 12
-    delta 12 In_CERTIFICATE_VERIFY = 12
-    delta 12 In_Alert_WARNING_CLOSE_NOTIFY = 12
-    delta 12 In_Alert_FATAL_UNEXPECTED_MESSAGE = 12
-    delta 14 In_ECDH_CLIENT_HELLO = 12
-    delta 14 In_ECDH_CLIENT_KEY_EXCHANGE = 12
-    delta 14 In_CHANGE_CIPHER_SPEC = 15
-    delta 14 In_FINISHED = 12
-    delta 14 In_APPLICATION = 12
-    delta 14 In_CERTIFICATE = 12
-    delta 14 In_EMPTY_CERTIFICATE = 12
-    delta 14 In_CERTIFICATE_VERIFY = 12
-    delta 14 In_Alert_WARNING_CLOSE_NOTIFY = 12
-    delta 14 In_Alert_FATAL_UNEXPECTED_MESSAGE = 12
-    delta 15 In_ECDH_CLIENT_HELLO = 15
-    delta 15 In_ECDH_CLIENT_KEY_EXCHANGE = 15
-    delta 15 In_CHANGE_CIPHER_SPEC = 3
-    delta 15 In_FINISHED = 15
-    delta 15 In_APPLICATION = 15
-    delta 15 In_CERTIFICATE = 15
-    delta 15 In_EMPTY_CERTIFICATE = 15
-    delta 15 In_CERTIFICATE_VERIFY = 15
-    delta 15 In_Alert_WARNING_CLOSE_NOTIFY = 15
-    delta 15 In_Alert_FATAL_UNEXPECTED_MESSAGE = 15
-    delta 5 In_ECDH_CLIENT_HELLO = 16
-    delta 5 In_ECDH_CLIENT_KEY_EXCHANGE = 5
-    delta 5 In_CHANGE_CIPHER_SPEC = 3
-    delta 5 In_FINISHED = 5
-    delta 5 In_APPLICATION = 5
-    delta 5 In_CERTIFICATE = 5
-    delta 5 In_EMPTY_CERTIFICATE = 5
-    delta 5 In_CERTIFICATE_VERIFY = 5
-    delta 5 In_Alert_WARNING_CLOSE_NOTIFY = 5
-    delta 5 In_Alert_FATAL_UNEXPECTED_MESSAGE = 5
-    delta 16 In_ECDH_CLIENT_HELLO = 9
-    delta 16 In_ECDH_CLIENT_KEY_EXCHANGE = 7
-    delta 16 In_CHANGE_CIPHER_SPEC = 17
-    delta 16 In_FINISHED = 9
-    delta 16 In_APPLICATION = 16
-    delta 16 In_CERTIFICATE = 9
-    delta 16 In_EMPTY_CERTIFICATE = 9
-    delta 16 In_CERTIFICATE_VERIFY = 9
-    delta 16 In_Alert_WARNING_CLOSE_NOTIFY = 5
-    delta 16 In_Alert_FATAL_UNEXPECTED_MESSAGE = 5
-    delta 17 In_ECDH_CLIENT_HELLO = 15
-    delta 17 In_ECDH_CLIENT_KEY_EXCHANGE = 15
-    delta 17 In_CHANGE_CIPHER_SPEC = 15
-    delta 17 In_FINISHED = 15
-    delta 17 In_APPLICATION = 15
-    delta 17 In_CERTIFICATE = 15
-    delta 17 In_EMPTY_CERTIFICATE = 15
-    delta 17 In_CERTIFICATE_VERIFY = 15
-    delta 17 In_Alert_WARNING_CLOSE_NOTIFY = 15
-    delta 17 In_Alert_FATAL_UNEXPECTED_MESSAGE = 15
-    delta 9 In_ECDH_CLIENT_HELLO = 9
-    delta 9 In_ECDH_CLIENT_KEY_EXCHANGE = 9
-    delta 9 In_CHANGE_CIPHER_SPEC = 10
-    delta 9 In_FINISHED = 9
-    delta 9 In_APPLICATION = 9
-    delta 9 In_CERTIFICATE = 9
-    delta 9 In_EMPTY_CERTIFICATE = 9
-    delta 9 In_CERTIFICATE_VERIFY = 9
-    delta 9 In_Alert_WARNING_CLOSE_NOTIFY = 5
-    delta 9 In_Alert_FATAL_UNEXPECTED_MESSAGE = 5
-    delta 13 In_ECDH_CLIENT_HELLO = 18
-    delta 13 In_ECDH_CLIENT_KEY_EXCHANGE = 18
-    delta 13 In_CHANGE_CIPHER_SPEC = 17
-    delta 13 In_FINISHED = 19
-    delta 13 In_APPLICATION = 13
-    delta 13 In_CERTIFICATE = 18
-    delta 13 In_EMPTY_CERTIFICATE = 18
-    delta 13 In_CERTIFICATE_VERIFY = 18
-    delta 13 In_Alert_WARNING_CLOSE_NOTIFY = 15
-    delta 13 In_Alert_FATAL_UNEXPECTED_MESSAGE = 15
-    delta 18 In_ECDH_CLIENT_HELLO = 18
-    delta 18 In_ECDH_CLIENT_KEY_EXCHANGE = 18
-    delta 18 In_CHANGE_CIPHER_SPEC = 10
-    delta 18 In_FINISHED = 18
-    delta 18 In_APPLICATION = 18
-    delta 18 In_CERTIFICATE = 18
-    delta 18 In_EMPTY_CERTIFICATE = 18
-    delta 18 In_CERTIFICATE_VERIFY = 18
-    delta 18 In_Alert_WARNING_CLOSE_NOTIFY = 15
-    delta 18 In_Alert_FATAL_UNEXPECTED_MESSAGE = 15
-    delta 19 In_ECDH_CLIENT_HELLO = 20
-    delta 19 In_ECDH_CLIENT_KEY_EXCHANGE = 19
-    delta 19 In_CHANGE_CIPHER_SPEC = 10
-    delta 19 In_FINISHED = 19
-    delta 19 In_APPLICATION = 19
-    delta 19 In_CERTIFICATE = 19
-    delta 19 In_EMPTY_CERTIFICATE = 19
-    delta 19 In_CERTIFICATE_VERIFY = 19
-    delta 19 In_Alert_WARNING_CLOSE_NOTIFY = 15
-    delta 19 In_Alert_FATAL_UNEXPECTED_MESSAGE = 15
-    delta 20 In_ECDH_CLIENT_HELLO = 18
-    delta 20 In_ECDH_CLIENT_KEY_EXCHANGE = 21
-    delta 20 In_CHANGE_CIPHER_SPEC = 17
-    delta 20 In_FINISHED = 18
-    delta 20 In_APPLICATION = 20
-    delta 20 In_CERTIFICATE = 18
-    delta 20 In_EMPTY_CERTIFICATE = 18
-    delta 20 In_CERTIFICATE_VERIFY = 18
-    delta 20 In_Alert_WARNING_CLOSE_NOTIFY = 15
-    delta 20 In_Alert_FATAL_UNEXPECTED_MESSAGE = 15
-    delta 21 In_ECDH_CLIENT_HELLO = 18
-    delta 21 In_ECDH_CLIENT_KEY_EXCHANGE = 18
-    delta 21 In_CHANGE_CIPHER_SPEC = 13
-    delta 21 In_FINISHED = 18
-    delta 21 In_APPLICATION = 21
-    delta 21 In_CERTIFICATE = 18
-    delta 21 In_EMPTY_CERTIFICATE = 18
-    delta 21 In_CERTIFICATE_VERIFY = 18
-    delta 21 In_Alert_WARNING_CLOSE_NOTIFY = 15
-    delta 21 In_Alert_FATAL_UNEXPECTED_MESSAGE = 15
-    delta 2 In_ECDH_CLIENT_HELLO = 5
-    delta 2 In_ECDH_CLIENT_KEY_EXCHANGE = 2
-    delta 2 In_CHANGE_CIPHER_SPEC = 3
-    delta 2 In_FINISHED = 2
-    delta 2 In_APPLICATION = 2
-    delta 2 In_CERTIFICATE = 2
-    delta 2 In_EMPTY_CERTIFICATE = 2
-    delta 2 In_CERTIFICATE_VERIFY = 2
-    delta 2 In_Alert_WARNING_CLOSE_NOTIFY = 2
-    delta 2 In_Alert_FATAL_UNEXPECTED_MESSAGE = 2
-    delta _ _ = error "haal-gen: undefined transition"
-    lambda 0 In_ECDH_CLIENT_HELLO = Out_HELLO_VERIFY_REQUEST
-    lambda 0 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 0 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 0 In_FINISHED = Out_TIMEOUT
-    lambda 0 In_APPLICATION = Out_TIMEOUT
-    lambda 0 In_CERTIFICATE = Out_TIMEOUT
-    lambda 0 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 0 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 0 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 0 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 3 In_ECDH_CLIENT_HELLO = Out_SOCKET_CLOSED
-    lambda 3 In_ECDH_CLIENT_KEY_EXCHANGE = Out_SOCKET_CLOSED
-    lambda 3 In_CHANGE_CIPHER_SPEC = Out_SOCKET_CLOSED
-    lambda 3 In_FINISHED = Out_SOCKET_CLOSED
-    lambda 3 In_APPLICATION = Out_SOCKET_CLOSED
-    lambda 3 In_CERTIFICATE = Out_SOCKET_CLOSED
-    lambda 3 In_EMPTY_CERTIFICATE = Out_SOCKET_CLOSED
-    lambda 3 In_CERTIFICATE_VERIFY = Out_SOCKET_CLOSED
-    lambda 3 In_Alert_WARNING_CLOSE_NOTIFY = Out_SOCKET_CLOSED
-    lambda 3 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_SOCKET_CLOSED
-    lambda 1 In_ECDH_CLIENT_HELLO = Out_SERVER_HELLO_CERTIFICATE_ECDHE_SERVER_KEY_EXCHANGE_SERVER_HELLO_DONE
-    lambda 1 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 1 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 1 In_FINISHED = Out_TIMEOUT
-    lambda 1 In_APPLICATION = Out_TIMEOUT
-    lambda 1 In_CERTIFICATE = Out_TIMEOUT
-    lambda 1 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 1 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 1 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 1 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 4 In_ECDH_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 4 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 4 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 4 In_FINISHED = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 4 In_APPLICATION = Out_TIMEOUT
-    lambda 4 In_CERTIFICATE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 4 In_EMPTY_CERTIFICATE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 4 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 4 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 4 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 6 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 6 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 6 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 6 In_FINISHED = Out_TIMEOUT
-    lambda 6 In_APPLICATION = Out_TIMEOUT
-    lambda 6 In_CERTIFICATE = Out_TIMEOUT
-    lambda 6 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 6 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 6 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 6 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 8 In_ECDH_CLIENT_HELLO = Out_Alert_FATAL_DECRYPT_ERROR
-    lambda 8 In_ECDH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_DECRYPT_ERROR
-    lambda 8 In_CHANGE_CIPHER_SPEC = Out_Alert_FATAL_DECRYPT_ERROR
-    lambda 8 In_FINISHED = Out_Alert_FATAL_DECRYPT_ERROR
-    lambda 8 In_APPLICATION = Out_Alert_FATAL_DECRYPT_ERROR
-    lambda 8 In_CERTIFICATE = Out_Alert_FATAL_DECRYPT_ERROR
-    lambda 8 In_EMPTY_CERTIFICATE = Out_Alert_FATAL_DECRYPT_ERROR
-    lambda 8 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_DECRYPT_ERROR
-    lambda 8 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_DECRYPT_ERROR
-    lambda 8 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_Alert_FATAL_DECRYPT_ERROR
-    lambda 11 In_ECDH_CLIENT_HELLO = Out_SERVER_HELLO_CERTIFICATE_ECDHE_SERVER_KEY_EXCHANGE_SERVER_HELLO_DONE
-    lambda 11 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 11 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 11 In_FINISHED = Out_TIMEOUT
-    lambda 11 In_APPLICATION = Out_TIMEOUT
-    lambda 11 In_CERTIFICATE = Out_TIMEOUT
-    lambda 11 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 11 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 11 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 11 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 10 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 10 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 10 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 10 In_FINISHED = Out_TIMEOUT
-    lambda 10 In_APPLICATION = Out_TIMEOUT
-    lambda 10 In_CERTIFICATE = Out_TIMEOUT
-    lambda 10 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 10 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 10 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 10 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 7 In_ECDH_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 7 In_ECDH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 7 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 7 In_FINISHED = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 7 In_APPLICATION = Out_TIMEOUT
-    lambda 7 In_CERTIFICATE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 7 In_EMPTY_CERTIFICATE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 7 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 7 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 7 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 12 In_ECDH_CLIENT_HELLO = Out_SERVER_HELLO_CERTIFICATE_ECDHE_SERVER_KEY_EXCHANGE_SERVER_HELLO_DONE
-    lambda 12 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 12 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 12 In_FINISHED = Out_TIMEOUT
-    lambda 12 In_APPLICATION = Out_TIMEOUT
-    lambda 12 In_CERTIFICATE = Out_TIMEOUT
-    lambda 12 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 12 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 12 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 12 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 14 In_ECDH_CLIENT_HELLO = Out_Alert_FATAL_DECRYPT_ERROR
-    lambda 14 In_ECDH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_DECRYPT_ERROR
-    lambda 14 In_CHANGE_CIPHER_SPEC = Out_Alert_FATAL_DECRYPT_ERROR
-    lambda 14 In_FINISHED = Out_Alert_FATAL_DECRYPT_ERROR
-    lambda 14 In_APPLICATION = Out_Alert_FATAL_DECRYPT_ERROR
-    lambda 14 In_CERTIFICATE = Out_Alert_FATAL_DECRYPT_ERROR
-    lambda 14 In_EMPTY_CERTIFICATE = Out_Alert_FATAL_DECRYPT_ERROR
-    lambda 14 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_DECRYPT_ERROR
-    lambda 14 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_DECRYPT_ERROR
-    lambda 14 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_Alert_FATAL_DECRYPT_ERROR
-    lambda 15 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 15 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 15 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 15 In_FINISHED = Out_TIMEOUT
-    lambda 15 In_APPLICATION = Out_TIMEOUT
-    lambda 15 In_CERTIFICATE = Out_TIMEOUT
-    lambda 15 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 15 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 15 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 15 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 5 In_ECDH_CLIENT_HELLO = Out_SERVER_HELLO_CERTIFICATE_ECDHE_SERVER_KEY_EXCHANGE_SERVER_HELLO_DONE
-    lambda 5 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 5 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 5 In_FINISHED = Out_TIMEOUT
-    lambda 5 In_APPLICATION = Out_TIMEOUT
-    lambda 5 In_CERTIFICATE = Out_TIMEOUT
-    lambda 5 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 5 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 5 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 5 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 16 In_ECDH_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 16 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 16 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 16 In_FINISHED = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 16 In_APPLICATION = Out_TIMEOUT
-    lambda 16 In_CERTIFICATE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 16 In_EMPTY_CERTIFICATE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 16 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 16 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 16 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 17 In_ECDH_CLIENT_HELLO = Out_Alert_FATAL_DECRYPT_ERROR
-    lambda 17 In_ECDH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_DECRYPT_ERROR
-    lambda 17 In_CHANGE_CIPHER_SPEC = Out_Alert_FATAL_DECRYPT_ERROR
-    lambda 17 In_FINISHED = Out_Alert_FATAL_DECRYPT_ERROR
-    lambda 17 In_APPLICATION = Out_Alert_FATAL_DECRYPT_ERROR
-    lambda 17 In_CERTIFICATE = Out_Alert_FATAL_DECRYPT_ERROR
-    lambda 17 In_EMPTY_CERTIFICATE = Out_Alert_FATAL_DECRYPT_ERROR
-    lambda 17 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_DECRYPT_ERROR
-    lambda 17 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_DECRYPT_ERROR
-    lambda 17 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_Alert_FATAL_DECRYPT_ERROR
-    lambda 9 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 9 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 9 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 9 In_FINISHED = Out_TIMEOUT
-    lambda 9 In_APPLICATION = Out_TIMEOUT
-    lambda 9 In_CERTIFICATE = Out_TIMEOUT
-    lambda 9 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 9 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 9 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 9 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 13 In_ECDH_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 13 In_ECDH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 13 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 13 In_FINISHED = Out_CHANGE_CIPHER_SPEC_FINISHED
-    lambda 13 In_APPLICATION = Out_TIMEOUT
-    lambda 13 In_CERTIFICATE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 13 In_EMPTY_CERTIFICATE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 13 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 13 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 13 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 18 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 18 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 18 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 18 In_FINISHED = Out_TIMEOUT
-    lambda 18 In_APPLICATION = Out_TIMEOUT
-    lambda 18 In_CERTIFICATE = Out_TIMEOUT
-    lambda 18 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 18 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 18 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 18 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 19 In_ECDH_CLIENT_HELLO = Out_SERVER_HELLO_CERTIFICATE_ECDHE_SERVER_KEY_EXCHANGE_SERVER_HELLO_DONE
-    lambda 19 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 19 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 19 In_FINISHED = Out_TIMEOUT
-    lambda 19 In_APPLICATION = Out_APPLICATION
-    lambda 19 In_CERTIFICATE = Out_TIMEOUT
-    lambda 19 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 19 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 19 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 19 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 20 In_ECDH_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 20 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 20 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 20 In_FINISHED = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 20 In_APPLICATION = Out_TIMEOUT
-    lambda 20 In_CERTIFICATE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 20 In_EMPTY_CERTIFICATE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 20 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 20 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 20 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 21 In_ECDH_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 21 In_ECDH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 21 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 21 In_FINISHED = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 21 In_APPLICATION = Out_TIMEOUT
-    lambda 21 In_CERTIFICATE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 21 In_EMPTY_CERTIFICATE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 21 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 21 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 21 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 2 In_ECDH_CLIENT_HELLO = Out_HELLO_VERIFY_REQUEST
-    lambda 2 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 2 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 2 In_FINISHED = Out_TIMEOUT
-    lambda 2 In_APPLICATION = Out_TIMEOUT
-    lambda 2 In_CERTIFICATE = Out_TIMEOUT
-    lambda 2 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 2 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 2 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 2 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda _ _ = error "haal-gen: undefined transition"
+    deltaTable =
+        "\1\2\3\0\0\0\0\0\0\0\
+        \\4\5\3\1\1\1\1\1\1\1\
+        \\5\2\3\2\2\2\2\2\2\2\
+        \\3\3\3\3\3\3\3\3\3\3\
+        \\6\7\8\6\4\6\6\6\1\1\
+        \\16\5\3\5\5\5\5\5\5\5\
+        \\6\9\10\6\6\6\6\6\1\1\
+        \\9\9\13\9\7\9\9\9\5\5\
+        \\11\12\11\11\11\11\11\11\11\11\
+        \\9\9\10\9\9\9\9\9\5\5\
+        \\10\10\10\10\10\10\10\10\10\10\
+        \\8\12\3\11\11\11\11\11\11\11\
+        \\14\12\3\12\12\12\12\12\12\12\
+        \\18\18\17\19\13\18\18\18\15\15\
+        \\12\12\15\12\12\12\12\12\12\12\
+        \\15\15\3\15\15\15\15\15\15\15\
+        \\9\7\17\9\16\9\9\9\5\5\
+        \\15\15\15\15\15\15\15\15\15\15\
+        \\18\18\10\18\18\18\18\18\15\15\
+        \\20\19\10\19\19\19\19\19\15\15\
+        \\18\21\17\18\20\18\18\18\15\15\
+        \\18\18\13\18\21\18\18\18\15\15"
+    lambdaTable =
+        "\0\1\1\1\1\1\1\1\1\1\
+        \\3\1\1\1\1\1\1\1\1\1\
+        \\0\1\1\1\1\1\1\1\1\1\
+        \\2\2\2\2\2\2\2\2\2\2\
+        \\4\1\1\4\1\4\4\4\5\1\
+        \\3\1\1\1\1\1\1\1\1\1\
+        \\1\1\1\1\1\1\1\1\1\1\
+        \\4\4\1\4\1\4\4\4\5\1\
+        \\6\6\6\6\6\6\6\6\6\6\
+        \\1\1\1\1\1\1\1\1\1\1\
+        \\1\1\1\1\1\1\1\1\1\1\
+        \\3\1\1\1\1\1\1\1\1\1\
+        \\3\1\1\1\1\1\1\1\1\1\
+        \\4\4\1\7\1\4\4\4\5\1\
+        \\6\6\6\6\6\6\6\6\6\6\
+        \\1\1\1\1\1\1\1\1\1\1\
+        \\4\1\1\4\1\4\4\4\5\1\
+        \\6\6\6\6\6\6\6\6\6\6\
+        \\1\1\1\1\1\1\1\1\1\1\
+        \\3\1\1\1\8\1\1\1\5\1\
+        \\4\1\1\4\1\4\4\4\5\1\
+        \\4\4\1\4\1\4\4\4\5\1"
diff --git a/src/Haal/Models/DTLS/EtinydtlsEcdheCertReq.hs b/src/Haal/Models/DTLS/EtinydtlsEcdheCertReq.hs
--- a/src/Haal/Models/DTLS/EtinydtlsEcdheCertReq.hs
+++ b/src/Haal/Models/DTLS/EtinydtlsEcdheCertReq.hs
@@ -5,8 +5,7 @@
     , etinydtlsEcdheCertReq
     ) where
 
-import qualified Data.Set as Set
-import Haal.Automaton.MealyAutomaton (MealyAutomaton, mkMealyAutomaton)
+import Haal.Automaton.MealyAutomaton (MealyAutomaton, mkMealyAutomatonTable)
 
 data EtinydtlsEcdheCertReqInput
     = In_ECDH_CLIENT_HELLO
@@ -33,548 +32,337 @@
     | Out_APPLICATION
     deriving (Show, Eq, Ord, Enum, Bounded)
 
+{- Transitions (state  input -> next state / output):
+    0     In_ECDH_CLIENT_HELLO               -> 1 / Out_HELLO_VERIFY_REQUEST
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 2 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 0 / Out_TIMEOUT
+          In_APPLICATION                     -> 0 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 0 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 0 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 0 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 0 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 0 / Out_TIMEOUT
+    1     In_ECDH_CLIENT_HELLO               -> 4 / Out_SERVER_HELLO_CERTIFICATE_ECDHE_SERVER_KEY_EXCHANGE_CERTIFICATE_REQUEST_SERVER_HELLO_DONE
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 5 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 1 / Out_TIMEOUT
+          In_APPLICATION                     -> 1 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 1 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 1 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 1 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 1 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 1 / Out_TIMEOUT
+    2     In_ECDH_CLIENT_HELLO               -> 5 / Out_HELLO_VERIFY_REQUEST
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 2 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 2 / Out_TIMEOUT
+          In_APPLICATION                     -> 2 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 2 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 2 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 2 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 2 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 2 / Out_TIMEOUT
+    3     In_ECDH_CLIENT_HELLO               -> 3 / Out_SOCKET_CLOSED
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 3 / Out_SOCKET_CLOSED
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_SOCKET_CLOSED
+          In_FINISHED                        -> 3 / Out_SOCKET_CLOSED
+          In_APPLICATION                     -> 3 / Out_SOCKET_CLOSED
+          In_CERTIFICATE                     -> 3 / Out_SOCKET_CLOSED
+          In_EMPTY_CERTIFICATE               -> 3 / Out_SOCKET_CLOSED
+          In_CERTIFICATE_VERIFY              -> 3 / Out_SOCKET_CLOSED
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 3 / Out_SOCKET_CLOSED
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 3 / Out_SOCKET_CLOSED
+    4     In_ECDH_CLIENT_HELLO               -> 6 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 7 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CHANGE_CIPHER_SPEC              -> 8 / Out_TIMEOUT
+          In_FINISHED                        -> 6 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_APPLICATION                     -> 4 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 9 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 9 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 6 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 1 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 1 / Out_TIMEOUT
+    5     In_ECDH_CLIENT_HELLO               -> 13 / Out_SERVER_HELLO_CERTIFICATE_ECDHE_SERVER_KEY_EXCHANGE_CERTIFICATE_REQUEST_SERVER_HELLO_DONE
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 5 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 5 / Out_TIMEOUT
+          In_APPLICATION                     -> 5 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 5 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 5 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 5 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 5 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 5 / Out_TIMEOUT
+    6     In_ECDH_CLIENT_HELLO               -> 6 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 7 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 10 / Out_TIMEOUT
+          In_FINISHED                        -> 6 / Out_TIMEOUT
+          In_APPLICATION                     -> 6 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 6 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 6 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 6 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 1 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 1 / Out_TIMEOUT
+    7     In_ECDH_CLIENT_HELLO               -> 7 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 7 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 10 / Out_TIMEOUT
+          In_FINISHED                        -> 7 / Out_TIMEOUT
+          In_APPLICATION                     -> 7 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 7 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 7 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 7 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 5 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 5 / Out_TIMEOUT
+    8     In_ECDH_CLIENT_HELLO               -> 11 / Out_Alert_FATAL_DECRYPT_ERROR
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 12 / Out_Alert_FATAL_DECRYPT_ERROR
+          In_CHANGE_CIPHER_SPEC              -> 11 / Out_Alert_FATAL_DECRYPT_ERROR
+          In_FINISHED                        -> 11 / Out_Alert_FATAL_DECRYPT_ERROR
+          In_APPLICATION                     -> 11 / Out_Alert_FATAL_DECRYPT_ERROR
+          In_CERTIFICATE                     -> 11 / Out_Alert_FATAL_DECRYPT_ERROR
+          In_EMPTY_CERTIFICATE               -> 11 / Out_Alert_FATAL_DECRYPT_ERROR
+          In_CERTIFICATE_VERIFY              -> 11 / Out_Alert_FATAL_DECRYPT_ERROR
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 11 / Out_Alert_FATAL_DECRYPT_ERROR
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 11 / Out_Alert_FATAL_DECRYPT_ERROR
+    9     In_ECDH_CLIENT_HELLO               -> 6 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 16 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 8 / Out_TIMEOUT
+          In_FINISHED                        -> 6 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_APPLICATION                     -> 9 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 6 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_EMPTY_CERTIFICATE               -> 6 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CERTIFICATE_VERIFY              -> 6 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 1 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 1 / Out_TIMEOUT
+    10    In_ECDH_CLIENT_HELLO               -> 10 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 10 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 10 / Out_TIMEOUT
+          In_FINISHED                        -> 10 / Out_TIMEOUT
+          In_APPLICATION                     -> 10 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 10 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 10 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 10 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 10 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 10 / Out_TIMEOUT
+    11    In_ECDH_CLIENT_HELLO               -> 8 / Out_SERVER_HELLO_CERTIFICATE_ECDHE_SERVER_KEY_EXCHANGE_CERTIFICATE_REQUEST_SERVER_HELLO_DONE
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 12 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 11 / Out_TIMEOUT
+          In_APPLICATION                     -> 11 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 11 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 11 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 11 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 11 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 11 / Out_TIMEOUT
+    12    In_ECDH_CLIENT_HELLO               -> 18 / Out_SERVER_HELLO_CERTIFICATE_ECDHE_SERVER_KEY_EXCHANGE_CERTIFICATE_REQUEST_SERVER_HELLO_DONE
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 12 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 12 / Out_TIMEOUT
+          In_APPLICATION                     -> 12 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 12 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 12 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 12 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 12 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 12 / Out_TIMEOUT
+    13    In_ECDH_CLIENT_HELLO               -> 7 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 7 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CHANGE_CIPHER_SPEC              -> 14 / Out_TIMEOUT
+          In_FINISHED                        -> 7 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_APPLICATION                     -> 13 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 15 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 15 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 7 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 5 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 5 / Out_TIMEOUT
+    14    In_ECDH_CLIENT_HELLO               -> 17 / Out_Alert_FATAL_DECRYPT_ERROR
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 17 / Out_Alert_FATAL_DECRYPT_ERROR
+          In_CHANGE_CIPHER_SPEC              -> 17 / Out_Alert_FATAL_DECRYPT_ERROR
+          In_FINISHED                        -> 17 / Out_Alert_FATAL_DECRYPT_ERROR
+          In_APPLICATION                     -> 17 / Out_Alert_FATAL_DECRYPT_ERROR
+          In_CERTIFICATE                     -> 17 / Out_Alert_FATAL_DECRYPT_ERROR
+          In_EMPTY_CERTIFICATE               -> 17 / Out_Alert_FATAL_DECRYPT_ERROR
+          In_CERTIFICATE_VERIFY              -> 17 / Out_Alert_FATAL_DECRYPT_ERROR
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 17 / Out_Alert_FATAL_DECRYPT_ERROR
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 17 / Out_Alert_FATAL_DECRYPT_ERROR
+    15    In_ECDH_CLIENT_HELLO               -> 7 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 16 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 14 / Out_TIMEOUT
+          In_FINISHED                        -> 7 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_APPLICATION                     -> 15 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 7 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_EMPTY_CERTIFICATE               -> 7 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CERTIFICATE_VERIFY              -> 7 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 5 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 5 / Out_TIMEOUT
+    16    In_ECDH_CLIENT_HELLO               -> 7 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 7 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CHANGE_CIPHER_SPEC              -> 14 / Out_TIMEOUT
+          In_FINISHED                        -> 7 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_APPLICATION                     -> 16 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 7 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_EMPTY_CERTIFICATE               -> 7 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CERTIFICATE_VERIFY              -> 19 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 5 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 5 / Out_TIMEOUT
+    17    In_ECDH_CLIENT_HELLO               -> 17 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 17 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 17 / Out_TIMEOUT
+          In_APPLICATION                     -> 17 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 17 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 17 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 17 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 17 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 17 / Out_TIMEOUT
+    18    In_ECDH_CLIENT_HELLO               -> 12 / Out_Alert_FATAL_DECRYPT_ERROR
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 12 / Out_Alert_FATAL_DECRYPT_ERROR
+          In_CHANGE_CIPHER_SPEC              -> 17 / Out_Alert_FATAL_DECRYPT_ERROR
+          In_FINISHED                        -> 12 / Out_Alert_FATAL_DECRYPT_ERROR
+          In_APPLICATION                     -> 12 / Out_Alert_FATAL_DECRYPT_ERROR
+          In_CERTIFICATE                     -> 12 / Out_Alert_FATAL_DECRYPT_ERROR
+          In_EMPTY_CERTIFICATE               -> 12 / Out_Alert_FATAL_DECRYPT_ERROR
+          In_CERTIFICATE_VERIFY              -> 12 / Out_Alert_FATAL_DECRYPT_ERROR
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 12 / Out_Alert_FATAL_DECRYPT_ERROR
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 12 / Out_Alert_FATAL_DECRYPT_ERROR
+    19    In_ECDH_CLIENT_HELLO               -> 7 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 7 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CHANGE_CIPHER_SPEC              -> 20 / Out_TIMEOUT
+          In_FINISHED                        -> 7 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_APPLICATION                     -> 19 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 7 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_EMPTY_CERTIFICATE               -> 7 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CERTIFICATE_VERIFY              -> 7 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 5 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 5 / Out_TIMEOUT
+    20    In_ECDH_CLIENT_HELLO               -> 21 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 21 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CHANGE_CIPHER_SPEC              -> 14 / Out_TIMEOUT
+          In_FINISHED                        -> 22 / Out_CHANGE_CIPHER_SPEC_FINISHED
+          In_APPLICATION                     -> 20 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 21 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_EMPTY_CERTIFICATE               -> 21 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CERTIFICATE_VERIFY              -> 21 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 17 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 17 / Out_TIMEOUT
+    21    In_ECDH_CLIENT_HELLO               -> 21 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 21 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 10 / Out_TIMEOUT
+          In_FINISHED                        -> 21 / Out_TIMEOUT
+          In_APPLICATION                     -> 21 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 21 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 21 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 21 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 17 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 17 / Out_TIMEOUT
+    22    In_ECDH_CLIENT_HELLO               -> 23 / Out_SERVER_HELLO_CERTIFICATE_ECDHE_SERVER_KEY_EXCHANGE_CERTIFICATE_REQUEST_SERVER_HELLO_DONE
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 22 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 10 / Out_TIMEOUT
+          In_FINISHED                        -> 22 / Out_TIMEOUT
+          In_APPLICATION                     -> 22 / Out_APPLICATION
+          In_CERTIFICATE                     -> 22 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 22 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 22 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 17 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 17 / Out_TIMEOUT
+    23    In_ECDH_CLIENT_HELLO               -> 21 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 21 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CHANGE_CIPHER_SPEC              -> 14 / Out_TIMEOUT
+          In_FINISHED                        -> 21 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_APPLICATION                     -> 23 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 24 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 24 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 21 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 17 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 17 / Out_TIMEOUT
+    24    In_ECDH_CLIENT_HELLO               -> 21 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 25 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 14 / Out_TIMEOUT
+          In_FINISHED                        -> 21 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_APPLICATION                     -> 24 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 21 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_EMPTY_CERTIFICATE               -> 21 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CERTIFICATE_VERIFY              -> 21 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 17 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 17 / Out_TIMEOUT
+    25    In_ECDH_CLIENT_HELLO               -> 21 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 21 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CHANGE_CIPHER_SPEC              -> 14 / Out_TIMEOUT
+          In_FINISHED                        -> 21 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_APPLICATION                     -> 25 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 21 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_EMPTY_CERTIFICATE               -> 21 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CERTIFICATE_VERIFY              -> 26 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 17 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 17 / Out_TIMEOUT
+    26    In_ECDH_CLIENT_HELLO               -> 21 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 21 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CHANGE_CIPHER_SPEC              -> 20 / Out_TIMEOUT
+          In_FINISHED                        -> 21 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_APPLICATION                     -> 26 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 21 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_EMPTY_CERTIFICATE               -> 21 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CERTIFICATE_VERIFY              -> 21 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 17 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 17 / Out_TIMEOUT
+-}
 etinydtlsEcdheCertReq :: MealyAutomaton Int EtinydtlsEcdheCertReqInput EtinydtlsEcdheCertReqOutput
-etinydtlsEcdheCertReq = mkMealyAutomaton delta lambda (Set.fromList [0..26]) 0
+etinydtlsEcdheCertReq =
+    case mkMealyAutomatonTable 27 0 deltaTable lambdaTable of
+        Right m -> m
+        Left err -> error ("haal-gen: invalid transition table: " ++ err)
   where
-    delta 0 In_ECDH_CLIENT_HELLO = 1
-    delta 0 In_ECDH_CLIENT_KEY_EXCHANGE = 2
-    delta 0 In_CHANGE_CIPHER_SPEC = 3
-    delta 0 In_FINISHED = 0
-    delta 0 In_APPLICATION = 0
-    delta 0 In_CERTIFICATE = 0
-    delta 0 In_EMPTY_CERTIFICATE = 0
-    delta 0 In_CERTIFICATE_VERIFY = 0
-    delta 0 In_Alert_WARNING_CLOSE_NOTIFY = 0
-    delta 0 In_Alert_FATAL_UNEXPECTED_MESSAGE = 0
-    delta 3 In_ECDH_CLIENT_HELLO = 3
-    delta 3 In_ECDH_CLIENT_KEY_EXCHANGE = 3
-    delta 3 In_CHANGE_CIPHER_SPEC = 3
-    delta 3 In_FINISHED = 3
-    delta 3 In_APPLICATION = 3
-    delta 3 In_CERTIFICATE = 3
-    delta 3 In_EMPTY_CERTIFICATE = 3
-    delta 3 In_CERTIFICATE_VERIFY = 3
-    delta 3 In_Alert_WARNING_CLOSE_NOTIFY = 3
-    delta 3 In_Alert_FATAL_UNEXPECTED_MESSAGE = 3
-    delta 1 In_ECDH_CLIENT_HELLO = 4
-    delta 1 In_ECDH_CLIENT_KEY_EXCHANGE = 5
-    delta 1 In_CHANGE_CIPHER_SPEC = 3
-    delta 1 In_FINISHED = 1
-    delta 1 In_APPLICATION = 1
-    delta 1 In_CERTIFICATE = 1
-    delta 1 In_EMPTY_CERTIFICATE = 1
-    delta 1 In_CERTIFICATE_VERIFY = 1
-    delta 1 In_Alert_WARNING_CLOSE_NOTIFY = 1
-    delta 1 In_Alert_FATAL_UNEXPECTED_MESSAGE = 1
-    delta 4 In_ECDH_CLIENT_HELLO = 6
-    delta 4 In_ECDH_CLIENT_KEY_EXCHANGE = 7
-    delta 4 In_CHANGE_CIPHER_SPEC = 8
-    delta 4 In_FINISHED = 6
-    delta 4 In_APPLICATION = 4
-    delta 4 In_CERTIFICATE = 9
-    delta 4 In_EMPTY_CERTIFICATE = 9
-    delta 4 In_CERTIFICATE_VERIFY = 6
-    delta 4 In_Alert_WARNING_CLOSE_NOTIFY = 1
-    delta 4 In_Alert_FATAL_UNEXPECTED_MESSAGE = 1
-    delta 6 In_ECDH_CLIENT_HELLO = 6
-    delta 6 In_ECDH_CLIENT_KEY_EXCHANGE = 7
-    delta 6 In_CHANGE_CIPHER_SPEC = 10
-    delta 6 In_FINISHED = 6
-    delta 6 In_APPLICATION = 6
-    delta 6 In_CERTIFICATE = 6
-    delta 6 In_EMPTY_CERTIFICATE = 6
-    delta 6 In_CERTIFICATE_VERIFY = 6
-    delta 6 In_Alert_WARNING_CLOSE_NOTIFY = 1
-    delta 6 In_Alert_FATAL_UNEXPECTED_MESSAGE = 1
-    delta 8 In_ECDH_CLIENT_HELLO = 11
-    delta 8 In_ECDH_CLIENT_KEY_EXCHANGE = 12
-    delta 8 In_CHANGE_CIPHER_SPEC = 11
-    delta 8 In_FINISHED = 11
-    delta 8 In_APPLICATION = 11
-    delta 8 In_CERTIFICATE = 11
-    delta 8 In_EMPTY_CERTIFICATE = 11
-    delta 8 In_CERTIFICATE_VERIFY = 11
-    delta 8 In_Alert_WARNING_CLOSE_NOTIFY = 11
-    delta 8 In_Alert_FATAL_UNEXPECTED_MESSAGE = 11
-    delta 11 In_ECDH_CLIENT_HELLO = 8
-    delta 11 In_ECDH_CLIENT_KEY_EXCHANGE = 12
-    delta 11 In_CHANGE_CIPHER_SPEC = 3
-    delta 11 In_FINISHED = 11
-    delta 11 In_APPLICATION = 11
-    delta 11 In_CERTIFICATE = 11
-    delta 11 In_EMPTY_CERTIFICATE = 11
-    delta 11 In_CERTIFICATE_VERIFY = 11
-    delta 11 In_Alert_WARNING_CLOSE_NOTIFY = 11
-    delta 11 In_Alert_FATAL_UNEXPECTED_MESSAGE = 11
-    delta 10 In_ECDH_CLIENT_HELLO = 10
-    delta 10 In_ECDH_CLIENT_KEY_EXCHANGE = 10
-    delta 10 In_CHANGE_CIPHER_SPEC = 10
-    delta 10 In_FINISHED = 10
-    delta 10 In_APPLICATION = 10
-    delta 10 In_CERTIFICATE = 10
-    delta 10 In_EMPTY_CERTIFICATE = 10
-    delta 10 In_CERTIFICATE_VERIFY = 10
-    delta 10 In_Alert_WARNING_CLOSE_NOTIFY = 10
-    delta 10 In_Alert_FATAL_UNEXPECTED_MESSAGE = 10
-    delta 5 In_ECDH_CLIENT_HELLO = 13
-    delta 5 In_ECDH_CLIENT_KEY_EXCHANGE = 5
-    delta 5 In_CHANGE_CIPHER_SPEC = 3
-    delta 5 In_FINISHED = 5
-    delta 5 In_APPLICATION = 5
-    delta 5 In_CERTIFICATE = 5
-    delta 5 In_EMPTY_CERTIFICATE = 5
-    delta 5 In_CERTIFICATE_VERIFY = 5
-    delta 5 In_Alert_WARNING_CLOSE_NOTIFY = 5
-    delta 5 In_Alert_FATAL_UNEXPECTED_MESSAGE = 5
-    delta 13 In_ECDH_CLIENT_HELLO = 7
-    delta 13 In_ECDH_CLIENT_KEY_EXCHANGE = 7
-    delta 13 In_CHANGE_CIPHER_SPEC = 14
-    delta 13 In_FINISHED = 7
-    delta 13 In_APPLICATION = 13
-    delta 13 In_CERTIFICATE = 15
-    delta 13 In_EMPTY_CERTIFICATE = 15
-    delta 13 In_CERTIFICATE_VERIFY = 7
-    delta 13 In_Alert_WARNING_CLOSE_NOTIFY = 5
-    delta 13 In_Alert_FATAL_UNEXPECTED_MESSAGE = 5
-    delta 15 In_ECDH_CLIENT_HELLO = 7
-    delta 15 In_ECDH_CLIENT_KEY_EXCHANGE = 16
-    delta 15 In_CHANGE_CIPHER_SPEC = 14
-    delta 15 In_FINISHED = 7
-    delta 15 In_APPLICATION = 15
-    delta 15 In_CERTIFICATE = 7
-    delta 15 In_EMPTY_CERTIFICATE = 7
-    delta 15 In_CERTIFICATE_VERIFY = 7
-    delta 15 In_Alert_WARNING_CLOSE_NOTIFY = 5
-    delta 15 In_Alert_FATAL_UNEXPECTED_MESSAGE = 5
-    delta 14 In_ECDH_CLIENT_HELLO = 17
-    delta 14 In_ECDH_CLIENT_KEY_EXCHANGE = 17
-    delta 14 In_CHANGE_CIPHER_SPEC = 17
-    delta 14 In_FINISHED = 17
-    delta 14 In_APPLICATION = 17
-    delta 14 In_CERTIFICATE = 17
-    delta 14 In_EMPTY_CERTIFICATE = 17
-    delta 14 In_CERTIFICATE_VERIFY = 17
-    delta 14 In_Alert_WARNING_CLOSE_NOTIFY = 17
-    delta 14 In_Alert_FATAL_UNEXPECTED_MESSAGE = 17
-    delta 17 In_ECDH_CLIENT_HELLO = 17
-    delta 17 In_ECDH_CLIENT_KEY_EXCHANGE = 17
-    delta 17 In_CHANGE_CIPHER_SPEC = 3
-    delta 17 In_FINISHED = 17
-    delta 17 In_APPLICATION = 17
-    delta 17 In_CERTIFICATE = 17
-    delta 17 In_EMPTY_CERTIFICATE = 17
-    delta 17 In_CERTIFICATE_VERIFY = 17
-    delta 17 In_Alert_WARNING_CLOSE_NOTIFY = 17
-    delta 17 In_Alert_FATAL_UNEXPECTED_MESSAGE = 17
-    delta 9 In_ECDH_CLIENT_HELLO = 6
-    delta 9 In_ECDH_CLIENT_KEY_EXCHANGE = 16
-    delta 9 In_CHANGE_CIPHER_SPEC = 8
-    delta 9 In_FINISHED = 6
-    delta 9 In_APPLICATION = 9
-    delta 9 In_CERTIFICATE = 6
-    delta 9 In_EMPTY_CERTIFICATE = 6
-    delta 9 In_CERTIFICATE_VERIFY = 6
-    delta 9 In_Alert_WARNING_CLOSE_NOTIFY = 1
-    delta 9 In_Alert_FATAL_UNEXPECTED_MESSAGE = 1
-    delta 7 In_ECDH_CLIENT_HELLO = 7
-    delta 7 In_ECDH_CLIENT_KEY_EXCHANGE = 7
-    delta 7 In_CHANGE_CIPHER_SPEC = 10
-    delta 7 In_FINISHED = 7
-    delta 7 In_APPLICATION = 7
-    delta 7 In_CERTIFICATE = 7
-    delta 7 In_EMPTY_CERTIFICATE = 7
-    delta 7 In_CERTIFICATE_VERIFY = 7
-    delta 7 In_Alert_WARNING_CLOSE_NOTIFY = 5
-    delta 7 In_Alert_FATAL_UNEXPECTED_MESSAGE = 5
-    delta 2 In_ECDH_CLIENT_HELLO = 5
-    delta 2 In_ECDH_CLIENT_KEY_EXCHANGE = 2
-    delta 2 In_CHANGE_CIPHER_SPEC = 3
-    delta 2 In_FINISHED = 2
-    delta 2 In_APPLICATION = 2
-    delta 2 In_CERTIFICATE = 2
-    delta 2 In_EMPTY_CERTIFICATE = 2
-    delta 2 In_CERTIFICATE_VERIFY = 2
-    delta 2 In_Alert_WARNING_CLOSE_NOTIFY = 2
-    delta 2 In_Alert_FATAL_UNEXPECTED_MESSAGE = 2
-    delta 12 In_ECDH_CLIENT_HELLO = 18
-    delta 12 In_ECDH_CLIENT_KEY_EXCHANGE = 12
-    delta 12 In_CHANGE_CIPHER_SPEC = 3
-    delta 12 In_FINISHED = 12
-    delta 12 In_APPLICATION = 12
-    delta 12 In_CERTIFICATE = 12
-    delta 12 In_EMPTY_CERTIFICATE = 12
-    delta 12 In_CERTIFICATE_VERIFY = 12
-    delta 12 In_Alert_WARNING_CLOSE_NOTIFY = 12
-    delta 12 In_Alert_FATAL_UNEXPECTED_MESSAGE = 12
-    delta 18 In_ECDH_CLIENT_HELLO = 12
-    delta 18 In_ECDH_CLIENT_KEY_EXCHANGE = 12
-    delta 18 In_CHANGE_CIPHER_SPEC = 17
-    delta 18 In_FINISHED = 12
-    delta 18 In_APPLICATION = 12
-    delta 18 In_CERTIFICATE = 12
-    delta 18 In_EMPTY_CERTIFICATE = 12
-    delta 18 In_CERTIFICATE_VERIFY = 12
-    delta 18 In_Alert_WARNING_CLOSE_NOTIFY = 12
-    delta 18 In_Alert_FATAL_UNEXPECTED_MESSAGE = 12
-    delta 16 In_ECDH_CLIENT_HELLO = 7
-    delta 16 In_ECDH_CLIENT_KEY_EXCHANGE = 7
-    delta 16 In_CHANGE_CIPHER_SPEC = 14
-    delta 16 In_FINISHED = 7
-    delta 16 In_APPLICATION = 16
-    delta 16 In_CERTIFICATE = 7
-    delta 16 In_EMPTY_CERTIFICATE = 7
-    delta 16 In_CERTIFICATE_VERIFY = 19
-    delta 16 In_Alert_WARNING_CLOSE_NOTIFY = 5
-    delta 16 In_Alert_FATAL_UNEXPECTED_MESSAGE = 5
-    delta 19 In_ECDH_CLIENT_HELLO = 7
-    delta 19 In_ECDH_CLIENT_KEY_EXCHANGE = 7
-    delta 19 In_CHANGE_CIPHER_SPEC = 20
-    delta 19 In_FINISHED = 7
-    delta 19 In_APPLICATION = 19
-    delta 19 In_CERTIFICATE = 7
-    delta 19 In_EMPTY_CERTIFICATE = 7
-    delta 19 In_CERTIFICATE_VERIFY = 7
-    delta 19 In_Alert_WARNING_CLOSE_NOTIFY = 5
-    delta 19 In_Alert_FATAL_UNEXPECTED_MESSAGE = 5
-    delta 20 In_ECDH_CLIENT_HELLO = 21
-    delta 20 In_ECDH_CLIENT_KEY_EXCHANGE = 21
-    delta 20 In_CHANGE_CIPHER_SPEC = 14
-    delta 20 In_FINISHED = 22
-    delta 20 In_APPLICATION = 20
-    delta 20 In_CERTIFICATE = 21
-    delta 20 In_EMPTY_CERTIFICATE = 21
-    delta 20 In_CERTIFICATE_VERIFY = 21
-    delta 20 In_Alert_WARNING_CLOSE_NOTIFY = 17
-    delta 20 In_Alert_FATAL_UNEXPECTED_MESSAGE = 17
-    delta 22 In_ECDH_CLIENT_HELLO = 23
-    delta 22 In_ECDH_CLIENT_KEY_EXCHANGE = 22
-    delta 22 In_CHANGE_CIPHER_SPEC = 10
-    delta 22 In_FINISHED = 22
-    delta 22 In_APPLICATION = 22
-    delta 22 In_CERTIFICATE = 22
-    delta 22 In_EMPTY_CERTIFICATE = 22
-    delta 22 In_CERTIFICATE_VERIFY = 22
-    delta 22 In_Alert_WARNING_CLOSE_NOTIFY = 17
-    delta 22 In_Alert_FATAL_UNEXPECTED_MESSAGE = 17
-    delta 21 In_ECDH_CLIENT_HELLO = 21
-    delta 21 In_ECDH_CLIENT_KEY_EXCHANGE = 21
-    delta 21 In_CHANGE_CIPHER_SPEC = 10
-    delta 21 In_FINISHED = 21
-    delta 21 In_APPLICATION = 21
-    delta 21 In_CERTIFICATE = 21
-    delta 21 In_EMPTY_CERTIFICATE = 21
-    delta 21 In_CERTIFICATE_VERIFY = 21
-    delta 21 In_Alert_WARNING_CLOSE_NOTIFY = 17
-    delta 21 In_Alert_FATAL_UNEXPECTED_MESSAGE = 17
-    delta 23 In_ECDH_CLIENT_HELLO = 21
-    delta 23 In_ECDH_CLIENT_KEY_EXCHANGE = 21
-    delta 23 In_CHANGE_CIPHER_SPEC = 14
-    delta 23 In_FINISHED = 21
-    delta 23 In_APPLICATION = 23
-    delta 23 In_CERTIFICATE = 24
-    delta 23 In_EMPTY_CERTIFICATE = 24
-    delta 23 In_CERTIFICATE_VERIFY = 21
-    delta 23 In_Alert_WARNING_CLOSE_NOTIFY = 17
-    delta 23 In_Alert_FATAL_UNEXPECTED_MESSAGE = 17
-    delta 24 In_ECDH_CLIENT_HELLO = 21
-    delta 24 In_ECDH_CLIENT_KEY_EXCHANGE = 25
-    delta 24 In_CHANGE_CIPHER_SPEC = 14
-    delta 24 In_FINISHED = 21
-    delta 24 In_APPLICATION = 24
-    delta 24 In_CERTIFICATE = 21
-    delta 24 In_EMPTY_CERTIFICATE = 21
-    delta 24 In_CERTIFICATE_VERIFY = 21
-    delta 24 In_Alert_WARNING_CLOSE_NOTIFY = 17
-    delta 24 In_Alert_FATAL_UNEXPECTED_MESSAGE = 17
-    delta 25 In_ECDH_CLIENT_HELLO = 21
-    delta 25 In_ECDH_CLIENT_KEY_EXCHANGE = 21
-    delta 25 In_CHANGE_CIPHER_SPEC = 14
-    delta 25 In_FINISHED = 21
-    delta 25 In_APPLICATION = 25
-    delta 25 In_CERTIFICATE = 21
-    delta 25 In_EMPTY_CERTIFICATE = 21
-    delta 25 In_CERTIFICATE_VERIFY = 26
-    delta 25 In_Alert_WARNING_CLOSE_NOTIFY = 17
-    delta 25 In_Alert_FATAL_UNEXPECTED_MESSAGE = 17
-    delta 26 In_ECDH_CLIENT_HELLO = 21
-    delta 26 In_ECDH_CLIENT_KEY_EXCHANGE = 21
-    delta 26 In_CHANGE_CIPHER_SPEC = 20
-    delta 26 In_FINISHED = 21
-    delta 26 In_APPLICATION = 26
-    delta 26 In_CERTIFICATE = 21
-    delta 26 In_EMPTY_CERTIFICATE = 21
-    delta 26 In_CERTIFICATE_VERIFY = 21
-    delta 26 In_Alert_WARNING_CLOSE_NOTIFY = 17
-    delta 26 In_Alert_FATAL_UNEXPECTED_MESSAGE = 17
-    delta _ _ = error "haal-gen: undefined transition"
-    lambda 0 In_ECDH_CLIENT_HELLO = Out_HELLO_VERIFY_REQUEST
-    lambda 0 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 0 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 0 In_FINISHED = Out_TIMEOUT
-    lambda 0 In_APPLICATION = Out_TIMEOUT
-    lambda 0 In_CERTIFICATE = Out_TIMEOUT
-    lambda 0 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 0 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 0 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 0 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 3 In_ECDH_CLIENT_HELLO = Out_SOCKET_CLOSED
-    lambda 3 In_ECDH_CLIENT_KEY_EXCHANGE = Out_SOCKET_CLOSED
-    lambda 3 In_CHANGE_CIPHER_SPEC = Out_SOCKET_CLOSED
-    lambda 3 In_FINISHED = Out_SOCKET_CLOSED
-    lambda 3 In_APPLICATION = Out_SOCKET_CLOSED
-    lambda 3 In_CERTIFICATE = Out_SOCKET_CLOSED
-    lambda 3 In_EMPTY_CERTIFICATE = Out_SOCKET_CLOSED
-    lambda 3 In_CERTIFICATE_VERIFY = Out_SOCKET_CLOSED
-    lambda 3 In_Alert_WARNING_CLOSE_NOTIFY = Out_SOCKET_CLOSED
-    lambda 3 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_SOCKET_CLOSED
-    lambda 1 In_ECDH_CLIENT_HELLO = Out_SERVER_HELLO_CERTIFICATE_ECDHE_SERVER_KEY_EXCHANGE_CERTIFICATE_REQUEST_SERVER_HELLO_DONE
-    lambda 1 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 1 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 1 In_FINISHED = Out_TIMEOUT
-    lambda 1 In_APPLICATION = Out_TIMEOUT
-    lambda 1 In_CERTIFICATE = Out_TIMEOUT
-    lambda 1 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 1 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 1 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 1 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 4 In_ECDH_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 4 In_ECDH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 4 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 4 In_FINISHED = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 4 In_APPLICATION = Out_TIMEOUT
-    lambda 4 In_CERTIFICATE = Out_TIMEOUT
-    lambda 4 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 4 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 4 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 4 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 6 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 6 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 6 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 6 In_FINISHED = Out_TIMEOUT
-    lambda 6 In_APPLICATION = Out_TIMEOUT
-    lambda 6 In_CERTIFICATE = Out_TIMEOUT
-    lambda 6 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 6 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 6 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 6 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 8 In_ECDH_CLIENT_HELLO = Out_Alert_FATAL_DECRYPT_ERROR
-    lambda 8 In_ECDH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_DECRYPT_ERROR
-    lambda 8 In_CHANGE_CIPHER_SPEC = Out_Alert_FATAL_DECRYPT_ERROR
-    lambda 8 In_FINISHED = Out_Alert_FATAL_DECRYPT_ERROR
-    lambda 8 In_APPLICATION = Out_Alert_FATAL_DECRYPT_ERROR
-    lambda 8 In_CERTIFICATE = Out_Alert_FATAL_DECRYPT_ERROR
-    lambda 8 In_EMPTY_CERTIFICATE = Out_Alert_FATAL_DECRYPT_ERROR
-    lambda 8 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_DECRYPT_ERROR
-    lambda 8 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_DECRYPT_ERROR
-    lambda 8 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_Alert_FATAL_DECRYPT_ERROR
-    lambda 11 In_ECDH_CLIENT_HELLO = Out_SERVER_HELLO_CERTIFICATE_ECDHE_SERVER_KEY_EXCHANGE_CERTIFICATE_REQUEST_SERVER_HELLO_DONE
-    lambda 11 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 11 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 11 In_FINISHED = Out_TIMEOUT
-    lambda 11 In_APPLICATION = Out_TIMEOUT
-    lambda 11 In_CERTIFICATE = Out_TIMEOUT
-    lambda 11 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 11 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 11 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 11 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 10 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 10 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 10 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 10 In_FINISHED = Out_TIMEOUT
-    lambda 10 In_APPLICATION = Out_TIMEOUT
-    lambda 10 In_CERTIFICATE = Out_TIMEOUT
-    lambda 10 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 10 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 10 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 10 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 5 In_ECDH_CLIENT_HELLO = Out_SERVER_HELLO_CERTIFICATE_ECDHE_SERVER_KEY_EXCHANGE_CERTIFICATE_REQUEST_SERVER_HELLO_DONE
-    lambda 5 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 5 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 5 In_FINISHED = Out_TIMEOUT
-    lambda 5 In_APPLICATION = Out_TIMEOUT
-    lambda 5 In_CERTIFICATE = Out_TIMEOUT
-    lambda 5 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 5 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 5 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 5 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 13 In_ECDH_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 13 In_ECDH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 13 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 13 In_FINISHED = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 13 In_APPLICATION = Out_TIMEOUT
-    lambda 13 In_CERTIFICATE = Out_TIMEOUT
-    lambda 13 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 13 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 13 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 13 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 15 In_ECDH_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 15 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 15 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 15 In_FINISHED = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 15 In_APPLICATION = Out_TIMEOUT
-    lambda 15 In_CERTIFICATE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 15 In_EMPTY_CERTIFICATE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 15 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 15 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 15 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 14 In_ECDH_CLIENT_HELLO = Out_Alert_FATAL_DECRYPT_ERROR
-    lambda 14 In_ECDH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_DECRYPT_ERROR
-    lambda 14 In_CHANGE_CIPHER_SPEC = Out_Alert_FATAL_DECRYPT_ERROR
-    lambda 14 In_FINISHED = Out_Alert_FATAL_DECRYPT_ERROR
-    lambda 14 In_APPLICATION = Out_Alert_FATAL_DECRYPT_ERROR
-    lambda 14 In_CERTIFICATE = Out_Alert_FATAL_DECRYPT_ERROR
-    lambda 14 In_EMPTY_CERTIFICATE = Out_Alert_FATAL_DECRYPT_ERROR
-    lambda 14 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_DECRYPT_ERROR
-    lambda 14 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_DECRYPT_ERROR
-    lambda 14 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_Alert_FATAL_DECRYPT_ERROR
-    lambda 17 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 17 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 17 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 17 In_FINISHED = Out_TIMEOUT
-    lambda 17 In_APPLICATION = Out_TIMEOUT
-    lambda 17 In_CERTIFICATE = Out_TIMEOUT
-    lambda 17 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 17 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 17 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 17 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 9 In_ECDH_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 9 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 9 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 9 In_FINISHED = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 9 In_APPLICATION = Out_TIMEOUT
-    lambda 9 In_CERTIFICATE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 9 In_EMPTY_CERTIFICATE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 9 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 9 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 9 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 7 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 7 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 7 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 7 In_FINISHED = Out_TIMEOUT
-    lambda 7 In_APPLICATION = Out_TIMEOUT
-    lambda 7 In_CERTIFICATE = Out_TIMEOUT
-    lambda 7 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 7 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 7 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 7 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 2 In_ECDH_CLIENT_HELLO = Out_HELLO_VERIFY_REQUEST
-    lambda 2 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 2 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 2 In_FINISHED = Out_TIMEOUT
-    lambda 2 In_APPLICATION = Out_TIMEOUT
-    lambda 2 In_CERTIFICATE = Out_TIMEOUT
-    lambda 2 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 2 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 2 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 2 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 12 In_ECDH_CLIENT_HELLO = Out_SERVER_HELLO_CERTIFICATE_ECDHE_SERVER_KEY_EXCHANGE_CERTIFICATE_REQUEST_SERVER_HELLO_DONE
-    lambda 12 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 12 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 12 In_FINISHED = Out_TIMEOUT
-    lambda 12 In_APPLICATION = Out_TIMEOUT
-    lambda 12 In_CERTIFICATE = Out_TIMEOUT
-    lambda 12 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 12 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 12 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 12 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 18 In_ECDH_CLIENT_HELLO = Out_Alert_FATAL_DECRYPT_ERROR
-    lambda 18 In_ECDH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_DECRYPT_ERROR
-    lambda 18 In_CHANGE_CIPHER_SPEC = Out_Alert_FATAL_DECRYPT_ERROR
-    lambda 18 In_FINISHED = Out_Alert_FATAL_DECRYPT_ERROR
-    lambda 18 In_APPLICATION = Out_Alert_FATAL_DECRYPT_ERROR
-    lambda 18 In_CERTIFICATE = Out_Alert_FATAL_DECRYPT_ERROR
-    lambda 18 In_EMPTY_CERTIFICATE = Out_Alert_FATAL_DECRYPT_ERROR
-    lambda 18 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_DECRYPT_ERROR
-    lambda 18 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_DECRYPT_ERROR
-    lambda 18 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_Alert_FATAL_DECRYPT_ERROR
-    lambda 16 In_ECDH_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 16 In_ECDH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 16 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 16 In_FINISHED = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 16 In_APPLICATION = Out_TIMEOUT
-    lambda 16 In_CERTIFICATE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 16 In_EMPTY_CERTIFICATE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 16 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 16 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 16 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 19 In_ECDH_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 19 In_ECDH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 19 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 19 In_FINISHED = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 19 In_APPLICATION = Out_TIMEOUT
-    lambda 19 In_CERTIFICATE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 19 In_EMPTY_CERTIFICATE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 19 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 19 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 19 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 20 In_ECDH_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 20 In_ECDH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 20 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 20 In_FINISHED = Out_CHANGE_CIPHER_SPEC_FINISHED
-    lambda 20 In_APPLICATION = Out_TIMEOUT
-    lambda 20 In_CERTIFICATE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 20 In_EMPTY_CERTIFICATE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 20 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 20 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 20 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 22 In_ECDH_CLIENT_HELLO = Out_SERVER_HELLO_CERTIFICATE_ECDHE_SERVER_KEY_EXCHANGE_CERTIFICATE_REQUEST_SERVER_HELLO_DONE
-    lambda 22 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 22 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 22 In_FINISHED = Out_TIMEOUT
-    lambda 22 In_APPLICATION = Out_APPLICATION
-    lambda 22 In_CERTIFICATE = Out_TIMEOUT
-    lambda 22 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 22 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 22 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 22 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 21 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 21 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 21 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 21 In_FINISHED = Out_TIMEOUT
-    lambda 21 In_APPLICATION = Out_TIMEOUT
-    lambda 21 In_CERTIFICATE = Out_TIMEOUT
-    lambda 21 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 21 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 21 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 21 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 23 In_ECDH_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 23 In_ECDH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 23 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 23 In_FINISHED = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 23 In_APPLICATION = Out_TIMEOUT
-    lambda 23 In_CERTIFICATE = Out_TIMEOUT
-    lambda 23 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 23 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 23 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 23 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 24 In_ECDH_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 24 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 24 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 24 In_FINISHED = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 24 In_APPLICATION = Out_TIMEOUT
-    lambda 24 In_CERTIFICATE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 24 In_EMPTY_CERTIFICATE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 24 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 24 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 24 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 25 In_ECDH_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 25 In_ECDH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 25 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 25 In_FINISHED = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 25 In_APPLICATION = Out_TIMEOUT
-    lambda 25 In_CERTIFICATE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 25 In_EMPTY_CERTIFICATE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 25 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 25 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 25 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 26 In_ECDH_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 26 In_ECDH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 26 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 26 In_FINISHED = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 26 In_APPLICATION = Out_TIMEOUT
-    lambda 26 In_CERTIFICATE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 26 In_EMPTY_CERTIFICATE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 26 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 26 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 26 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda _ _ = error "haal-gen: undefined transition"
+    deltaTable =
+        "\1\2\3\0\0\0\0\0\0\0\
+        \\4\5\3\1\1\1\1\1\1\1\
+        \\5\2\3\2\2\2\2\2\2\2\
+        \\3\3\3\3\3\3\3\3\3\3\
+        \\6\7\8\6\4\9\9\6\1\1\
+        \\13\5\3\5\5\5\5\5\5\5\
+        \\6\7\10\6\6\6\6\6\1\1\
+        \\7\7\10\7\7\7\7\7\5\5\
+        \\11\12\11\11\11\11\11\11\11\11\
+        \\6\16\8\6\9\6\6\6\1\1\
+        \\10\10\10\10\10\10\10\10\10\10\
+        \\8\12\3\11\11\11\11\11\11\11\
+        \\18\12\3\12\12\12\12\12\12\12\
+        \\7\7\14\7\13\15\15\7\5\5\
+        \\17\17\17\17\17\17\17\17\17\17\
+        \\7\16\14\7\15\7\7\7\5\5\
+        \\7\7\14\7\16\7\7\19\5\5\
+        \\17\17\3\17\17\17\17\17\17\17\
+        \\12\12\17\12\12\12\12\12\12\12\
+        \\7\7\20\7\19\7\7\7\5\5\
+        \\21\21\14\22\20\21\21\21\17\17\
+        \\21\21\10\21\21\21\21\21\17\17\
+        \\23\22\10\22\22\22\22\22\17\17\
+        \\21\21\14\21\23\24\24\21\17\17\
+        \\21\25\14\21\24\21\21\21\17\17\
+        \\21\21\14\21\25\21\21\26\17\17\
+        \\21\21\20\21\26\21\21\21\17\17"
+    lambdaTable =
+        "\0\1\1\1\1\1\1\1\1\1\
+        \\3\1\1\1\1\1\1\1\1\1\
+        \\0\1\1\1\1\1\1\1\1\1\
+        \\2\2\2\2\2\2\2\2\2\2\
+        \\4\4\1\4\1\1\1\4\5\1\
+        \\3\1\1\1\1\1\1\1\1\1\
+        \\1\1\1\1\1\1\1\1\1\1\
+        \\1\1\1\1\1\1\1\1\1\1\
+        \\6\6\6\6\6\6\6\6\6\6\
+        \\4\1\1\4\1\4\4\4\5\1\
+        \\1\1\1\1\1\1\1\1\1\1\
+        \\3\1\1\1\1\1\1\1\1\1\
+        \\3\1\1\1\1\1\1\1\1\1\
+        \\4\4\1\4\1\1\1\4\5\1\
+        \\6\6\6\6\6\6\6\6\6\6\
+        \\4\1\1\4\1\4\4\4\5\1\
+        \\4\4\1\4\1\4\4\1\5\1\
+        \\1\1\1\1\1\1\1\1\1\1\
+        \\6\6\6\6\6\6\6\6\6\6\
+        \\4\4\1\4\1\4\4\4\5\1\
+        \\4\4\1\7\1\4\4\4\5\1\
+        \\1\1\1\1\1\1\1\1\1\1\
+        \\3\1\1\1\8\1\1\1\5\1\
+        \\4\4\1\4\1\1\1\4\5\1\
+        \\4\1\1\4\1\4\4\4\5\1\
+        \\4\4\1\4\1\4\4\1\5\1\
+        \\4\4\1\4\1\4\4\4\5\1"
diff --git a/src/Haal/Models/DTLS/EtinydtlsPsk.hs b/src/Haal/Models/DTLS/EtinydtlsPsk.hs
--- a/src/Haal/Models/DTLS/EtinydtlsPsk.hs
+++ b/src/Haal/Models/DTLS/EtinydtlsPsk.hs
@@ -5,8 +5,7 @@
     , etinydtlsPsk
     ) where
 
-import qualified Data.Set as Set
-import Haal.Automaton.MealyAutomaton (MealyAutomaton, mkMealyAutomaton)
+import Haal.Automaton.MealyAutomaton (MealyAutomaton, mkMealyAutomatonTable)
 
 data EtinydtlsPskInput
     = In_PSK_CLIENT_HELLO
@@ -30,316 +29,211 @@
     | Out_APPLICATION
     deriving (Show, Eq, Ord, Enum, Bounded)
 
+{- Transitions (state  input -> next state / output):
+    0     In_PSK_CLIENT_HELLO                -> 1 / Out_HELLO_VERIFY_REQUEST
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 2 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 0 / Out_TIMEOUT
+          In_APPLICATION                     -> 0 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 0 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 0 / Out_TIMEOUT
+    1     In_PSK_CLIENT_HELLO                -> 4 / Out_SERVER_HELLO_SERVER_HELLO_DONE
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 5 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 1 / Out_TIMEOUT
+          In_APPLICATION                     -> 1 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 1 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 1 / Out_TIMEOUT
+    2     In_PSK_CLIENT_HELLO                -> 5 / Out_HELLO_VERIFY_REQUEST
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 2 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 2 / Out_TIMEOUT
+          In_APPLICATION                     -> 2 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 2 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 2 / Out_TIMEOUT
+    3     In_PSK_CLIENT_HELLO                -> 3 / Out_SOCKET_CLOSED
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 3 / Out_SOCKET_CLOSED
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_SOCKET_CLOSED
+          In_FINISHED                        -> 3 / Out_SOCKET_CLOSED
+          In_APPLICATION                     -> 3 / Out_SOCKET_CLOSED
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 3 / Out_SOCKET_CLOSED
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 3 / Out_SOCKET_CLOSED
+    4     In_PSK_CLIENT_HELLO                -> 6 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 7 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 8 / Out_TIMEOUT
+          In_FINISHED                        -> 6 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_APPLICATION                     -> 4 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 1 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 1 / Out_TIMEOUT
+    5     In_PSK_CLIENT_HELLO                -> 20 / Out_SERVER_HELLO_SERVER_HELLO_DONE
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 5 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 5 / Out_TIMEOUT
+          In_APPLICATION                     -> 5 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 5 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 5 / Out_TIMEOUT
+    6     In_PSK_CLIENT_HELLO                -> 6 / Out_TIMEOUT
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 9 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 10 / Out_TIMEOUT
+          In_FINISHED                        -> 6 / Out_TIMEOUT
+          In_APPLICATION                     -> 6 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 1 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 1 / Out_TIMEOUT
+    7     In_PSK_CLIENT_HELLO                -> 9 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 9 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CHANGE_CIPHER_SPEC              -> 15 / Out_TIMEOUT
+          In_FINISHED                        -> 9 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_APPLICATION                     -> 7 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 5 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 5 / Out_TIMEOUT
+    8     In_PSK_CLIENT_HELLO                -> 11 / Out_Alert_FATAL_DECRYPT_ERROR
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 12 / Out_Alert_FATAL_DECRYPT_ERROR
+          In_CHANGE_CIPHER_SPEC              -> 11 / Out_Alert_FATAL_DECRYPT_ERROR
+          In_FINISHED                        -> 11 / Out_Alert_FATAL_DECRYPT_ERROR
+          In_APPLICATION                     -> 11 / Out_Alert_FATAL_DECRYPT_ERROR
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 11 / Out_Alert_FATAL_DECRYPT_ERROR
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 11 / Out_Alert_FATAL_DECRYPT_ERROR
+    9     In_PSK_CLIENT_HELLO                -> 9 / Out_TIMEOUT
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 9 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 10 / Out_TIMEOUT
+          In_FINISHED                        -> 9 / Out_TIMEOUT
+          In_APPLICATION                     -> 9 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 5 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 5 / Out_TIMEOUT
+    10    In_PSK_CLIENT_HELLO                -> 10 / Out_TIMEOUT
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 10 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 10 / Out_TIMEOUT
+          In_FINISHED                        -> 10 / Out_TIMEOUT
+          In_APPLICATION                     -> 10 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 10 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 10 / Out_TIMEOUT
+    11    In_PSK_CLIENT_HELLO                -> 8 / Out_SERVER_HELLO_SERVER_HELLO_DONE
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 12 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 11 / Out_TIMEOUT
+          In_APPLICATION                     -> 11 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 11 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 11 / Out_TIMEOUT
+    12    In_PSK_CLIENT_HELLO                -> 13 / Out_SERVER_HELLO_SERVER_HELLO_DONE
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 12 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 12 / Out_TIMEOUT
+          In_APPLICATION                     -> 12 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 12 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 12 / Out_TIMEOUT
+    13    In_PSK_CLIENT_HELLO                -> 12 / Out_Alert_FATAL_DECRYPT_ERROR
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 12 / Out_Alert_FATAL_DECRYPT_ERROR
+          In_CHANGE_CIPHER_SPEC              -> 14 / Out_Alert_FATAL_DECRYPT_ERROR
+          In_FINISHED                        -> 12 / Out_Alert_FATAL_DECRYPT_ERROR
+          In_APPLICATION                     -> 12 / Out_Alert_FATAL_DECRYPT_ERROR
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 12 / Out_Alert_FATAL_DECRYPT_ERROR
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 12 / Out_Alert_FATAL_DECRYPT_ERROR
+    14    In_PSK_CLIENT_HELLO                -> 14 / Out_TIMEOUT
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 14 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 14 / Out_TIMEOUT
+          In_APPLICATION                     -> 14 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 14 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 14 / Out_TIMEOUT
+    15    In_PSK_CLIENT_HELLO                -> 16 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 16 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CHANGE_CIPHER_SPEC              -> 17 / Out_TIMEOUT
+          In_FINISHED                        -> 18 / Out_CHANGE_CIPHER_SPEC_FINISHED
+          In_APPLICATION                     -> 15 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 14 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 14 / Out_TIMEOUT
+    16    In_PSK_CLIENT_HELLO                -> 16 / Out_TIMEOUT
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 16 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 10 / Out_TIMEOUT
+          In_FINISHED                        -> 16 / Out_TIMEOUT
+          In_APPLICATION                     -> 16 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 14 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 14 / Out_TIMEOUT
+    17    In_PSK_CLIENT_HELLO                -> 14 / Out_Alert_FATAL_DECRYPT_ERROR
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 14 / Out_Alert_FATAL_DECRYPT_ERROR
+          In_CHANGE_CIPHER_SPEC              -> 14 / Out_Alert_FATAL_DECRYPT_ERROR
+          In_FINISHED                        -> 14 / Out_Alert_FATAL_DECRYPT_ERROR
+          In_APPLICATION                     -> 14 / Out_Alert_FATAL_DECRYPT_ERROR
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 14 / Out_Alert_FATAL_DECRYPT_ERROR
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 14 / Out_Alert_FATAL_DECRYPT_ERROR
+    18    In_PSK_CLIENT_HELLO                -> 19 / Out_SERVER_HELLO_SERVER_HELLO_DONE
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 18 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 10 / Out_TIMEOUT
+          In_FINISHED                        -> 18 / Out_TIMEOUT
+          In_APPLICATION                     -> 18 / Out_APPLICATION
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 14 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 14 / Out_TIMEOUT
+    19    In_PSK_CLIENT_HELLO                -> 16 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 21 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 17 / Out_TIMEOUT
+          In_FINISHED                        -> 16 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_APPLICATION                     -> 19 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 14 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 14 / Out_TIMEOUT
+    20    In_PSK_CLIENT_HELLO                -> 9 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 7 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 17 / Out_TIMEOUT
+          In_FINISHED                        -> 9 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_APPLICATION                     -> 20 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 5 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 5 / Out_TIMEOUT
+    21    In_PSK_CLIENT_HELLO                -> 16 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 16 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CHANGE_CIPHER_SPEC              -> 15 / Out_TIMEOUT
+          In_FINISHED                        -> 16 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_APPLICATION                     -> 21 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 14 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 14 / Out_TIMEOUT
+-}
 etinydtlsPsk :: MealyAutomaton Int EtinydtlsPskInput EtinydtlsPskOutput
-etinydtlsPsk = mkMealyAutomaton delta lambda (Set.fromList [0..21]) 0
+etinydtlsPsk =
+    case mkMealyAutomatonTable 22 0 deltaTable lambdaTable of
+        Right m -> m
+        Left err -> error ("haal-gen: invalid transition table: " ++ err)
   where
-    delta 0 In_PSK_CLIENT_HELLO = 1
-    delta 0 In_PSK_CLIENT_KEY_EXCHANGE = 2
-    delta 0 In_CHANGE_CIPHER_SPEC = 3
-    delta 0 In_FINISHED = 0
-    delta 0 In_APPLICATION = 0
-    delta 0 In_Alert_WARNING_CLOSE_NOTIFY = 0
-    delta 0 In_Alert_FATAL_UNEXPECTED_MESSAGE = 0
-    delta 3 In_PSK_CLIENT_HELLO = 3
-    delta 3 In_PSK_CLIENT_KEY_EXCHANGE = 3
-    delta 3 In_CHANGE_CIPHER_SPEC = 3
-    delta 3 In_FINISHED = 3
-    delta 3 In_APPLICATION = 3
-    delta 3 In_Alert_WARNING_CLOSE_NOTIFY = 3
-    delta 3 In_Alert_FATAL_UNEXPECTED_MESSAGE = 3
-    delta 1 In_PSK_CLIENT_HELLO = 4
-    delta 1 In_PSK_CLIENT_KEY_EXCHANGE = 5
-    delta 1 In_CHANGE_CIPHER_SPEC = 3
-    delta 1 In_FINISHED = 1
-    delta 1 In_APPLICATION = 1
-    delta 1 In_Alert_WARNING_CLOSE_NOTIFY = 1
-    delta 1 In_Alert_FATAL_UNEXPECTED_MESSAGE = 1
-    delta 4 In_PSK_CLIENT_HELLO = 6
-    delta 4 In_PSK_CLIENT_KEY_EXCHANGE = 7
-    delta 4 In_CHANGE_CIPHER_SPEC = 8
-    delta 4 In_FINISHED = 6
-    delta 4 In_APPLICATION = 4
-    delta 4 In_Alert_WARNING_CLOSE_NOTIFY = 1
-    delta 4 In_Alert_FATAL_UNEXPECTED_MESSAGE = 1
-    delta 6 In_PSK_CLIENT_HELLO = 6
-    delta 6 In_PSK_CLIENT_KEY_EXCHANGE = 9
-    delta 6 In_CHANGE_CIPHER_SPEC = 10
-    delta 6 In_FINISHED = 6
-    delta 6 In_APPLICATION = 6
-    delta 6 In_Alert_WARNING_CLOSE_NOTIFY = 1
-    delta 6 In_Alert_FATAL_UNEXPECTED_MESSAGE = 1
-    delta 8 In_PSK_CLIENT_HELLO = 11
-    delta 8 In_PSK_CLIENT_KEY_EXCHANGE = 12
-    delta 8 In_CHANGE_CIPHER_SPEC = 11
-    delta 8 In_FINISHED = 11
-    delta 8 In_APPLICATION = 11
-    delta 8 In_Alert_WARNING_CLOSE_NOTIFY = 11
-    delta 8 In_Alert_FATAL_UNEXPECTED_MESSAGE = 11
-    delta 12 In_PSK_CLIENT_HELLO = 13
-    delta 12 In_PSK_CLIENT_KEY_EXCHANGE = 12
-    delta 12 In_CHANGE_CIPHER_SPEC = 3
-    delta 12 In_FINISHED = 12
-    delta 12 In_APPLICATION = 12
-    delta 12 In_Alert_WARNING_CLOSE_NOTIFY = 12
-    delta 12 In_Alert_FATAL_UNEXPECTED_MESSAGE = 12
-    delta 10 In_PSK_CLIENT_HELLO = 10
-    delta 10 In_PSK_CLIENT_KEY_EXCHANGE = 10
-    delta 10 In_CHANGE_CIPHER_SPEC = 10
-    delta 10 In_FINISHED = 10
-    delta 10 In_APPLICATION = 10
-    delta 10 In_Alert_WARNING_CLOSE_NOTIFY = 10
-    delta 10 In_Alert_FATAL_UNEXPECTED_MESSAGE = 10
-    delta 13 In_PSK_CLIENT_HELLO = 12
-    delta 13 In_PSK_CLIENT_KEY_EXCHANGE = 12
-    delta 13 In_CHANGE_CIPHER_SPEC = 14
-    delta 13 In_FINISHED = 12
-    delta 13 In_APPLICATION = 12
-    delta 13 In_Alert_WARNING_CLOSE_NOTIFY = 12
-    delta 13 In_Alert_FATAL_UNEXPECTED_MESSAGE = 12
-    delta 14 In_PSK_CLIENT_HELLO = 14
-    delta 14 In_PSK_CLIENT_KEY_EXCHANGE = 14
-    delta 14 In_CHANGE_CIPHER_SPEC = 3
-    delta 14 In_FINISHED = 14
-    delta 14 In_APPLICATION = 14
-    delta 14 In_Alert_WARNING_CLOSE_NOTIFY = 14
-    delta 14 In_Alert_FATAL_UNEXPECTED_MESSAGE = 14
-    delta 11 In_PSK_CLIENT_HELLO = 8
-    delta 11 In_PSK_CLIENT_KEY_EXCHANGE = 12
-    delta 11 In_CHANGE_CIPHER_SPEC = 3
-    delta 11 In_FINISHED = 11
-    delta 11 In_APPLICATION = 11
-    delta 11 In_Alert_WARNING_CLOSE_NOTIFY = 11
-    delta 11 In_Alert_FATAL_UNEXPECTED_MESSAGE = 11
-    delta 7 In_PSK_CLIENT_HELLO = 9
-    delta 7 In_PSK_CLIENT_KEY_EXCHANGE = 9
-    delta 7 In_CHANGE_CIPHER_SPEC = 15
-    delta 7 In_FINISHED = 9
-    delta 7 In_APPLICATION = 7
-    delta 7 In_Alert_WARNING_CLOSE_NOTIFY = 5
-    delta 7 In_Alert_FATAL_UNEXPECTED_MESSAGE = 5
-    delta 15 In_PSK_CLIENT_HELLO = 16
-    delta 15 In_PSK_CLIENT_KEY_EXCHANGE = 16
-    delta 15 In_CHANGE_CIPHER_SPEC = 17
-    delta 15 In_FINISHED = 18
-    delta 15 In_APPLICATION = 15
-    delta 15 In_Alert_WARNING_CLOSE_NOTIFY = 14
-    delta 15 In_Alert_FATAL_UNEXPECTED_MESSAGE = 14
-    delta 17 In_PSK_CLIENT_HELLO = 14
-    delta 17 In_PSK_CLIENT_KEY_EXCHANGE = 14
-    delta 17 In_CHANGE_CIPHER_SPEC = 14
-    delta 17 In_FINISHED = 14
-    delta 17 In_APPLICATION = 14
-    delta 17 In_Alert_WARNING_CLOSE_NOTIFY = 14
-    delta 17 In_Alert_FATAL_UNEXPECTED_MESSAGE = 14
-    delta 18 In_PSK_CLIENT_HELLO = 19
-    delta 18 In_PSK_CLIENT_KEY_EXCHANGE = 18
-    delta 18 In_CHANGE_CIPHER_SPEC = 10
-    delta 18 In_FINISHED = 18
-    delta 18 In_APPLICATION = 18
-    delta 18 In_Alert_WARNING_CLOSE_NOTIFY = 14
-    delta 18 In_Alert_FATAL_UNEXPECTED_MESSAGE = 14
-    delta 5 In_PSK_CLIENT_HELLO = 20
-    delta 5 In_PSK_CLIENT_KEY_EXCHANGE = 5
-    delta 5 In_CHANGE_CIPHER_SPEC = 3
-    delta 5 In_FINISHED = 5
-    delta 5 In_APPLICATION = 5
-    delta 5 In_Alert_WARNING_CLOSE_NOTIFY = 5
-    delta 5 In_Alert_FATAL_UNEXPECTED_MESSAGE = 5
-    delta 20 In_PSK_CLIENT_HELLO = 9
-    delta 20 In_PSK_CLIENT_KEY_EXCHANGE = 7
-    delta 20 In_CHANGE_CIPHER_SPEC = 17
-    delta 20 In_FINISHED = 9
-    delta 20 In_APPLICATION = 20
-    delta 20 In_Alert_WARNING_CLOSE_NOTIFY = 5
-    delta 20 In_Alert_FATAL_UNEXPECTED_MESSAGE = 5
-    delta 16 In_PSK_CLIENT_HELLO = 16
-    delta 16 In_PSK_CLIENT_KEY_EXCHANGE = 16
-    delta 16 In_CHANGE_CIPHER_SPEC = 10
-    delta 16 In_FINISHED = 16
-    delta 16 In_APPLICATION = 16
-    delta 16 In_Alert_WARNING_CLOSE_NOTIFY = 14
-    delta 16 In_Alert_FATAL_UNEXPECTED_MESSAGE = 14
-    delta 19 In_PSK_CLIENT_HELLO = 16
-    delta 19 In_PSK_CLIENT_KEY_EXCHANGE = 21
-    delta 19 In_CHANGE_CIPHER_SPEC = 17
-    delta 19 In_FINISHED = 16
-    delta 19 In_APPLICATION = 19
-    delta 19 In_Alert_WARNING_CLOSE_NOTIFY = 14
-    delta 19 In_Alert_FATAL_UNEXPECTED_MESSAGE = 14
-    delta 21 In_PSK_CLIENT_HELLO = 16
-    delta 21 In_PSK_CLIENT_KEY_EXCHANGE = 16
-    delta 21 In_CHANGE_CIPHER_SPEC = 15
-    delta 21 In_FINISHED = 16
-    delta 21 In_APPLICATION = 21
-    delta 21 In_Alert_WARNING_CLOSE_NOTIFY = 14
-    delta 21 In_Alert_FATAL_UNEXPECTED_MESSAGE = 14
-    delta 9 In_PSK_CLIENT_HELLO = 9
-    delta 9 In_PSK_CLIENT_KEY_EXCHANGE = 9
-    delta 9 In_CHANGE_CIPHER_SPEC = 10
-    delta 9 In_FINISHED = 9
-    delta 9 In_APPLICATION = 9
-    delta 9 In_Alert_WARNING_CLOSE_NOTIFY = 5
-    delta 9 In_Alert_FATAL_UNEXPECTED_MESSAGE = 5
-    delta 2 In_PSK_CLIENT_HELLO = 5
-    delta 2 In_PSK_CLIENT_KEY_EXCHANGE = 2
-    delta 2 In_CHANGE_CIPHER_SPEC = 3
-    delta 2 In_FINISHED = 2
-    delta 2 In_APPLICATION = 2
-    delta 2 In_Alert_WARNING_CLOSE_NOTIFY = 2
-    delta 2 In_Alert_FATAL_UNEXPECTED_MESSAGE = 2
-    delta _ _ = error "haal-gen: undefined transition"
-    lambda 0 In_PSK_CLIENT_HELLO = Out_HELLO_VERIFY_REQUEST
-    lambda 0 In_PSK_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 0 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 0 In_FINISHED = Out_TIMEOUT
-    lambda 0 In_APPLICATION = Out_TIMEOUT
-    lambda 0 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 0 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 3 In_PSK_CLIENT_HELLO = Out_SOCKET_CLOSED
-    lambda 3 In_PSK_CLIENT_KEY_EXCHANGE = Out_SOCKET_CLOSED
-    lambda 3 In_CHANGE_CIPHER_SPEC = Out_SOCKET_CLOSED
-    lambda 3 In_FINISHED = Out_SOCKET_CLOSED
-    lambda 3 In_APPLICATION = Out_SOCKET_CLOSED
-    lambda 3 In_Alert_WARNING_CLOSE_NOTIFY = Out_SOCKET_CLOSED
-    lambda 3 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_SOCKET_CLOSED
-    lambda 1 In_PSK_CLIENT_HELLO = Out_SERVER_HELLO_SERVER_HELLO_DONE
-    lambda 1 In_PSK_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 1 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 1 In_FINISHED = Out_TIMEOUT
-    lambda 1 In_APPLICATION = Out_TIMEOUT
-    lambda 1 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 1 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 4 In_PSK_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 4 In_PSK_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 4 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 4 In_FINISHED = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 4 In_APPLICATION = Out_TIMEOUT
-    lambda 4 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 4 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 6 In_PSK_CLIENT_HELLO = Out_TIMEOUT
-    lambda 6 In_PSK_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 6 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 6 In_FINISHED = Out_TIMEOUT
-    lambda 6 In_APPLICATION = Out_TIMEOUT
-    lambda 6 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 6 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 8 In_PSK_CLIENT_HELLO = Out_Alert_FATAL_DECRYPT_ERROR
-    lambda 8 In_PSK_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_DECRYPT_ERROR
-    lambda 8 In_CHANGE_CIPHER_SPEC = Out_Alert_FATAL_DECRYPT_ERROR
-    lambda 8 In_FINISHED = Out_Alert_FATAL_DECRYPT_ERROR
-    lambda 8 In_APPLICATION = Out_Alert_FATAL_DECRYPT_ERROR
-    lambda 8 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_DECRYPT_ERROR
-    lambda 8 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_Alert_FATAL_DECRYPT_ERROR
-    lambda 12 In_PSK_CLIENT_HELLO = Out_SERVER_HELLO_SERVER_HELLO_DONE
-    lambda 12 In_PSK_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 12 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 12 In_FINISHED = Out_TIMEOUT
-    lambda 12 In_APPLICATION = Out_TIMEOUT
-    lambda 12 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 12 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 10 In_PSK_CLIENT_HELLO = Out_TIMEOUT
-    lambda 10 In_PSK_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 10 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 10 In_FINISHED = Out_TIMEOUT
-    lambda 10 In_APPLICATION = Out_TIMEOUT
-    lambda 10 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 10 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 13 In_PSK_CLIENT_HELLO = Out_Alert_FATAL_DECRYPT_ERROR
-    lambda 13 In_PSK_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_DECRYPT_ERROR
-    lambda 13 In_CHANGE_CIPHER_SPEC = Out_Alert_FATAL_DECRYPT_ERROR
-    lambda 13 In_FINISHED = Out_Alert_FATAL_DECRYPT_ERROR
-    lambda 13 In_APPLICATION = Out_Alert_FATAL_DECRYPT_ERROR
-    lambda 13 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_DECRYPT_ERROR
-    lambda 13 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_Alert_FATAL_DECRYPT_ERROR
-    lambda 14 In_PSK_CLIENT_HELLO = Out_TIMEOUT
-    lambda 14 In_PSK_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 14 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 14 In_FINISHED = Out_TIMEOUT
-    lambda 14 In_APPLICATION = Out_TIMEOUT
-    lambda 14 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 14 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 11 In_PSK_CLIENT_HELLO = Out_SERVER_HELLO_SERVER_HELLO_DONE
-    lambda 11 In_PSK_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 11 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 11 In_FINISHED = Out_TIMEOUT
-    lambda 11 In_APPLICATION = Out_TIMEOUT
-    lambda 11 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 11 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 7 In_PSK_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 7 In_PSK_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 7 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 7 In_FINISHED = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 7 In_APPLICATION = Out_TIMEOUT
-    lambda 7 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 7 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 15 In_PSK_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 15 In_PSK_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 15 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 15 In_FINISHED = Out_CHANGE_CIPHER_SPEC_FINISHED
-    lambda 15 In_APPLICATION = Out_TIMEOUT
-    lambda 15 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 15 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 17 In_PSK_CLIENT_HELLO = Out_Alert_FATAL_DECRYPT_ERROR
-    lambda 17 In_PSK_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_DECRYPT_ERROR
-    lambda 17 In_CHANGE_CIPHER_SPEC = Out_Alert_FATAL_DECRYPT_ERROR
-    lambda 17 In_FINISHED = Out_Alert_FATAL_DECRYPT_ERROR
-    lambda 17 In_APPLICATION = Out_Alert_FATAL_DECRYPT_ERROR
-    lambda 17 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_DECRYPT_ERROR
-    lambda 17 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_Alert_FATAL_DECRYPT_ERROR
-    lambda 18 In_PSK_CLIENT_HELLO = Out_SERVER_HELLO_SERVER_HELLO_DONE
-    lambda 18 In_PSK_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 18 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 18 In_FINISHED = Out_TIMEOUT
-    lambda 18 In_APPLICATION = Out_APPLICATION
-    lambda 18 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 18 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 5 In_PSK_CLIENT_HELLO = Out_SERVER_HELLO_SERVER_HELLO_DONE
-    lambda 5 In_PSK_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 5 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 5 In_FINISHED = Out_TIMEOUT
-    lambda 5 In_APPLICATION = Out_TIMEOUT
-    lambda 5 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 5 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 20 In_PSK_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 20 In_PSK_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 20 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 20 In_FINISHED = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 20 In_APPLICATION = Out_TIMEOUT
-    lambda 20 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 20 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 16 In_PSK_CLIENT_HELLO = Out_TIMEOUT
-    lambda 16 In_PSK_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 16 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 16 In_FINISHED = Out_TIMEOUT
-    lambda 16 In_APPLICATION = Out_TIMEOUT
-    lambda 16 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 16 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 19 In_PSK_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 19 In_PSK_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 19 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 19 In_FINISHED = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 19 In_APPLICATION = Out_TIMEOUT
-    lambda 19 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 19 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 21 In_PSK_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 21 In_PSK_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 21 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 21 In_FINISHED = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 21 In_APPLICATION = Out_TIMEOUT
-    lambda 21 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 21 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 9 In_PSK_CLIENT_HELLO = Out_TIMEOUT
-    lambda 9 In_PSK_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 9 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 9 In_FINISHED = Out_TIMEOUT
-    lambda 9 In_APPLICATION = Out_TIMEOUT
-    lambda 9 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 9 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 2 In_PSK_CLIENT_HELLO = Out_HELLO_VERIFY_REQUEST
-    lambda 2 In_PSK_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 2 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 2 In_FINISHED = Out_TIMEOUT
-    lambda 2 In_APPLICATION = Out_TIMEOUT
-    lambda 2 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 2 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda _ _ = error "haal-gen: undefined transition"
+    deltaTable =
+        "\1\2\3\0\0\0\0\
+        \\4\5\3\1\1\1\1\
+        \\5\2\3\2\2\2\2\
+        \\3\3\3\3\3\3\3\
+        \\6\7\8\6\4\1\1\
+        \\20\5\3\5\5\5\5\
+        \\6\9\10\6\6\1\1\
+        \\9\9\15\9\7\5\5\
+        \\11\12\11\11\11\11\11\
+        \\9\9\10\9\9\5\5\
+        \\10\10\10\10\10\10\10\
+        \\8\12\3\11\11\11\11\
+        \\13\12\3\12\12\12\12\
+        \\12\12\14\12\12\12\12\
+        \\14\14\3\14\14\14\14\
+        \\16\16\17\18\15\14\14\
+        \\16\16\10\16\16\14\14\
+        \\14\14\14\14\14\14\14\
+        \\19\18\10\18\18\14\14\
+        \\16\21\17\16\19\14\14\
+        \\9\7\17\9\20\5\5\
+        \\16\16\15\16\21\14\14"
+    lambdaTable =
+        "\0\1\1\1\1\1\1\
+        \\3\1\1\1\1\1\1\
+        \\0\1\1\1\1\1\1\
+        \\2\2\2\2\2\2\2\
+        \\4\1\1\4\1\5\1\
+        \\3\1\1\1\1\1\1\
+        \\1\1\1\1\1\1\1\
+        \\4\4\1\4\1\5\1\
+        \\6\6\6\6\6\6\6\
+        \\1\1\1\1\1\1\1\
+        \\1\1\1\1\1\1\1\
+        \\3\1\1\1\1\1\1\
+        \\3\1\1\1\1\1\1\
+        \\6\6\6\6\6\6\6\
+        \\1\1\1\1\1\1\1\
+        \\4\4\1\7\1\5\1\
+        \\1\1\1\1\1\1\1\
+        \\6\6\6\6\6\6\6\
+        \\3\1\1\1\8\5\1\
+        \\4\1\1\4\1\5\1\
+        \\4\1\1\4\1\5\1\
+        \\4\4\1\4\1\5\1"
diff --git a/src/Haal/Models/DTLS/GnutlsV3V5V19PskRsaCertNreq.hs b/src/Haal/Models/DTLS/GnutlsV3V5V19PskRsaCertNreq.hs
--- a/src/Haal/Models/DTLS/GnutlsV3V5V19PskRsaCertNreq.hs
+++ b/src/Haal/Models/DTLS/GnutlsV3V5V19PskRsaCertNreq.hs
@@ -5,731 +5,445 @@
     , gnutlsV3V5V19PskRsaCertNreq
     ) where
 
-import qualified Data.Set as Set
-import Haal.Automaton.MealyAutomaton (MealyAutomaton, mkMealyAutomaton)
-
-data GnutlsV3V5V19PskRsaCertNreqInput
-    = In_RSA_CLIENT_HELLO
-    | In_RSA_CLIENT_KEY_EXCHANGE
-    | In_PSK_CLIENT_HELLO
-    | In_PSK_CLIENT_KEY_EXCHANGE
-    | In_CHANGE_CIPHER_SPEC
-    | In_FINISHED
-    | In_APPLICATION
-    | In_CERTIFICATE
-    | In_EMPTY_CERTIFICATE
-    | In_CERTIFICATE_VERIFY
-    | In_Alert_WARNING_CLOSE_NOTIFY
-    | In_Alert_FATAL_UNEXPECTED_MESSAGE
-    deriving (Show, Eq, Ord, Enum, Bounded)
-
-data GnutlsV3V5V19PskRsaCertNreqOutput
-    = Out_HELLO_VERIFY_REQUEST
-    | Out_SERVER_HELLO_CERTIFICATE_CERTIFICATE_REQUEST_SERVER_HELLO_DONE
-    | Out_SERVER_HELLO_SERVER_HELLO_DONE
-    | Out_TIMEOUT
-    | Out_CHANGE_CIPHER_SPEC_FINISHED
-    | Out_APPLICATION
-    deriving (Show, Eq, Ord, Enum, Bounded)
-
-gnutlsV3V5V19PskRsaCertNreq :: MealyAutomaton Int GnutlsV3V5V19PskRsaCertNreqInput GnutlsV3V5V19PskRsaCertNreqOutput
-gnutlsV3V5V19PskRsaCertNreq = mkMealyAutomaton delta lambda (Set.fromList [0..28]) 0
-  where
-    delta 0 In_RSA_CLIENT_HELLO = 1
-    delta 0 In_RSA_CLIENT_KEY_EXCHANGE = 1
-    delta 0 In_PSK_CLIENT_HELLO = 1
-    delta 0 In_PSK_CLIENT_KEY_EXCHANGE = 1
-    delta 0 In_CHANGE_CIPHER_SPEC = 2
-    delta 0 In_FINISHED = 1
-    delta 0 In_APPLICATION = 1
-    delta 0 In_CERTIFICATE = 1
-    delta 0 In_EMPTY_CERTIFICATE = 1
-    delta 0 In_CERTIFICATE_VERIFY = 1
-    delta 0 In_Alert_WARNING_CLOSE_NOTIFY = 1
-    delta 0 In_Alert_FATAL_UNEXPECTED_MESSAGE = 1
-    delta 1 In_RSA_CLIENT_HELLO = 3
-    delta 1 In_RSA_CLIENT_KEY_EXCHANGE = 1
-    delta 1 In_PSK_CLIENT_HELLO = 4
-    delta 1 In_PSK_CLIENT_KEY_EXCHANGE = 1
-    delta 1 In_CHANGE_CIPHER_SPEC = 2
-    delta 1 In_FINISHED = 1
-    delta 1 In_APPLICATION = 1
-    delta 1 In_CERTIFICATE = 1
-    delta 1 In_EMPTY_CERTIFICATE = 1
-    delta 1 In_CERTIFICATE_VERIFY = 1
-    delta 1 In_Alert_WARNING_CLOSE_NOTIFY = 1
-    delta 1 In_Alert_FATAL_UNEXPECTED_MESSAGE = 1
-    delta 2 In_RSA_CLIENT_HELLO = 5
-    delta 2 In_RSA_CLIENT_KEY_EXCHANGE = 2
-    delta 2 In_PSK_CLIENT_HELLO = 5
-    delta 2 In_PSK_CLIENT_KEY_EXCHANGE = 2
-    delta 2 In_CHANGE_CIPHER_SPEC = 2
-    delta 2 In_FINISHED = 2
-    delta 2 In_APPLICATION = 2
-    delta 2 In_CERTIFICATE = 2
-    delta 2 In_EMPTY_CERTIFICATE = 2
-    delta 2 In_CERTIFICATE_VERIFY = 2
-    delta 2 In_Alert_WARNING_CLOSE_NOTIFY = 2
-    delta 2 In_Alert_FATAL_UNEXPECTED_MESSAGE = 2
-    delta 5 In_RSA_CLIENT_HELLO = 5
-    delta 5 In_RSA_CLIENT_KEY_EXCHANGE = 5
-    delta 5 In_PSK_CLIENT_HELLO = 5
-    delta 5 In_PSK_CLIENT_KEY_EXCHANGE = 5
-    delta 5 In_CHANGE_CIPHER_SPEC = 5
-    delta 5 In_FINISHED = 5
-    delta 5 In_APPLICATION = 5
-    delta 5 In_CERTIFICATE = 5
-    delta 5 In_EMPTY_CERTIFICATE = 5
-    delta 5 In_CERTIFICATE_VERIFY = 5
-    delta 5 In_Alert_WARNING_CLOSE_NOTIFY = 5
-    delta 5 In_Alert_FATAL_UNEXPECTED_MESSAGE = 5
-    delta 3 In_RSA_CLIENT_HELLO = 6
-    delta 3 In_RSA_CLIENT_KEY_EXCHANGE = 7
-    delta 3 In_PSK_CLIENT_HELLO = 6
-    delta 3 In_PSK_CLIENT_KEY_EXCHANGE = 8
-    delta 3 In_CHANGE_CIPHER_SPEC = 5
-    delta 3 In_FINISHED = 6
-    delta 3 In_APPLICATION = 3
-    delta 3 In_CERTIFICATE = 9
-    delta 3 In_EMPTY_CERTIFICATE = 10
-    delta 3 In_CERTIFICATE_VERIFY = 6
-    delta 3 In_Alert_WARNING_CLOSE_NOTIFY = 6
-    delta 3 In_Alert_FATAL_UNEXPECTED_MESSAGE = 6
-    delta 6 In_RSA_CLIENT_HELLO = 3
-    delta 6 In_RSA_CLIENT_KEY_EXCHANGE = 11
-    delta 6 In_PSK_CLIENT_HELLO = 4
-    delta 6 In_PSK_CLIENT_KEY_EXCHANGE = 11
-    delta 6 In_CHANGE_CIPHER_SPEC = 12
-    delta 6 In_FINISHED = 6
-    delta 6 In_APPLICATION = 6
-    delta 6 In_CERTIFICATE = 6
-    delta 6 In_EMPTY_CERTIFICATE = 6
-    delta 6 In_CERTIFICATE_VERIFY = 6
-    delta 6 In_Alert_WARNING_CLOSE_NOTIFY = 6
-    delta 6 In_Alert_FATAL_UNEXPECTED_MESSAGE = 6
-    delta 12 In_RSA_CLIENT_HELLO = 5
-    delta 12 In_RSA_CLIENT_KEY_EXCHANGE = 13
-    delta 12 In_PSK_CLIENT_HELLO = 5
-    delta 12 In_PSK_CLIENT_KEY_EXCHANGE = 13
-    delta 12 In_CHANGE_CIPHER_SPEC = 12
-    delta 12 In_FINISHED = 12
-    delta 12 In_APPLICATION = 12
-    delta 12 In_CERTIFICATE = 12
-    delta 12 In_EMPTY_CERTIFICATE = 12
-    delta 12 In_CERTIFICATE_VERIFY = 12
-    delta 12 In_Alert_WARNING_CLOSE_NOTIFY = 12
-    delta 12 In_Alert_FATAL_UNEXPECTED_MESSAGE = 12
-    delta 13 In_RSA_CLIENT_HELLO = 5
-    delta 13 In_RSA_CLIENT_KEY_EXCHANGE = 13
-    delta 13 In_PSK_CLIENT_HELLO = 5
-    delta 13 In_PSK_CLIENT_KEY_EXCHANGE = 13
-    delta 13 In_CHANGE_CIPHER_SPEC = 14
-    delta 13 In_FINISHED = 13
-    delta 13 In_APPLICATION = 13
-    delta 13 In_CERTIFICATE = 13
-    delta 13 In_EMPTY_CERTIFICATE = 13
-    delta 13 In_CERTIFICATE_VERIFY = 13
-    delta 13 In_Alert_WARNING_CLOSE_NOTIFY = 13
-    delta 13 In_Alert_FATAL_UNEXPECTED_MESSAGE = 13
-    delta 4 In_RSA_CLIENT_HELLO = 6
-    delta 4 In_RSA_CLIENT_KEY_EXCHANGE = 11
-    delta 4 In_PSK_CLIENT_HELLO = 6
-    delta 4 In_PSK_CLIENT_KEY_EXCHANGE = 15
-    delta 4 In_CHANGE_CIPHER_SPEC = 5
-    delta 4 In_FINISHED = 6
-    delta 4 In_APPLICATION = 4
-    delta 4 In_CERTIFICATE = 6
-    delta 4 In_EMPTY_CERTIFICATE = 6
-    delta 4 In_CERTIFICATE_VERIFY = 6
-    delta 4 In_Alert_WARNING_CLOSE_NOTIFY = 6
-    delta 4 In_Alert_FATAL_UNEXPECTED_MESSAGE = 6
-    delta 14 In_RSA_CLIENT_HELLO = 14
-    delta 14 In_RSA_CLIENT_KEY_EXCHANGE = 14
-    delta 14 In_PSK_CLIENT_HELLO = 14
-    delta 14 In_PSK_CLIENT_KEY_EXCHANGE = 14
-    delta 14 In_CHANGE_CIPHER_SPEC = 14
-    delta 14 In_FINISHED = 14
-    delta 14 In_APPLICATION = 14
-    delta 14 In_CERTIFICATE = 14
-    delta 14 In_EMPTY_CERTIFICATE = 14
-    delta 14 In_CERTIFICATE_VERIFY = 14
-    delta 14 In_Alert_WARNING_CLOSE_NOTIFY = 14
-    delta 14 In_Alert_FATAL_UNEXPECTED_MESSAGE = 14
-    delta 11 In_RSA_CLIENT_HELLO = 16
-    delta 11 In_RSA_CLIENT_KEY_EXCHANGE = 11
-    delta 11 In_PSK_CLIENT_HELLO = 17
-    delta 11 In_PSK_CLIENT_KEY_EXCHANGE = 11
-    delta 11 In_CHANGE_CIPHER_SPEC = 14
-    delta 11 In_FINISHED = 11
-    delta 11 In_APPLICATION = 11
-    delta 11 In_CERTIFICATE = 11
-    delta 11 In_EMPTY_CERTIFICATE = 11
-    delta 11 In_CERTIFICATE_VERIFY = 11
-    delta 11 In_Alert_WARNING_CLOSE_NOTIFY = 11
-    delta 11 In_Alert_FATAL_UNEXPECTED_MESSAGE = 11
-    delta 15 In_RSA_CLIENT_HELLO = 18
-    delta 15 In_RSA_CLIENT_KEY_EXCHANGE = 19
-    delta 15 In_PSK_CLIENT_HELLO = 18
-    delta 15 In_PSK_CLIENT_KEY_EXCHANGE = 18
-    delta 15 In_CHANGE_CIPHER_SPEC = 20
-    delta 15 In_FINISHED = 18
-    delta 15 In_APPLICATION = 15
-    delta 15 In_CERTIFICATE = 18
-    delta 15 In_EMPTY_CERTIFICATE = 18
-    delta 15 In_CERTIFICATE_VERIFY = 18
-    delta 15 In_Alert_WARNING_CLOSE_NOTIFY = 11
-    delta 15 In_Alert_FATAL_UNEXPECTED_MESSAGE = 11
-    delta 20 In_RSA_CLIENT_HELLO = 14
-    delta 20 In_RSA_CLIENT_KEY_EXCHANGE = 14
-    delta 20 In_PSK_CLIENT_HELLO = 14
-    delta 20 In_PSK_CLIENT_KEY_EXCHANGE = 14
-    delta 20 In_CHANGE_CIPHER_SPEC = 5
-    delta 20 In_FINISHED = 21
-    delta 20 In_APPLICATION = 20
-    delta 20 In_CERTIFICATE = 14
-    delta 20 In_EMPTY_CERTIFICATE = 14
-    delta 20 In_CERTIFICATE_VERIFY = 14
-    delta 20 In_Alert_WARNING_CLOSE_NOTIFY = 14
-    delta 20 In_Alert_FATAL_UNEXPECTED_MESSAGE = 14
-    delta 21 In_RSA_CLIENT_HELLO = 22
-    delta 21 In_RSA_CLIENT_KEY_EXCHANGE = 21
-    delta 21 In_PSK_CLIENT_HELLO = 22
-    delta 21 In_PSK_CLIENT_KEY_EXCHANGE = 21
-    delta 21 In_CHANGE_CIPHER_SPEC = 5
-    delta 21 In_FINISHED = 21
-    delta 21 In_APPLICATION = 21
-    delta 21 In_CERTIFICATE = 21
-    delta 21 In_EMPTY_CERTIFICATE = 21
-    delta 21 In_CERTIFICATE_VERIFY = 21
-    delta 21 In_Alert_WARNING_CLOSE_NOTIFY = 14
-    delta 21 In_Alert_FATAL_UNEXPECTED_MESSAGE = 14
-    delta 16 In_RSA_CLIENT_HELLO = 11
-    delta 16 In_RSA_CLIENT_KEY_EXCHANGE = 7
-    delta 16 In_PSK_CLIENT_HELLO = 11
-    delta 16 In_PSK_CLIENT_KEY_EXCHANGE = 8
-    delta 16 In_CHANGE_CIPHER_SPEC = 5
-    delta 16 In_FINISHED = 11
-    delta 16 In_APPLICATION = 16
-    delta 16 In_CERTIFICATE = 23
-    delta 16 In_EMPTY_CERTIFICATE = 24
-    delta 16 In_CERTIFICATE_VERIFY = 11
-    delta 16 In_Alert_WARNING_CLOSE_NOTIFY = 11
-    delta 16 In_Alert_FATAL_UNEXPECTED_MESSAGE = 11
-    delta 24 In_RSA_CLIENT_HELLO = 11
-    delta 24 In_RSA_CLIENT_KEY_EXCHANGE = 7
-    delta 24 In_PSK_CLIENT_HELLO = 11
-    delta 24 In_PSK_CLIENT_KEY_EXCHANGE = 8
-    delta 24 In_CHANGE_CIPHER_SPEC = 5
-    delta 24 In_FINISHED = 11
-    delta 24 In_APPLICATION = 24
-    delta 24 In_CERTIFICATE = 11
-    delta 24 In_EMPTY_CERTIFICATE = 11
-    delta 24 In_CERTIFICATE_VERIFY = 11
-    delta 24 In_Alert_WARNING_CLOSE_NOTIFY = 11
-    delta 24 In_Alert_FATAL_UNEXPECTED_MESSAGE = 11
-    delta 18 In_RSA_CLIENT_HELLO = 18
-    delta 18 In_RSA_CLIENT_KEY_EXCHANGE = 19
-    delta 18 In_PSK_CLIENT_HELLO = 18
-    delta 18 In_PSK_CLIENT_KEY_EXCHANGE = 18
-    delta 18 In_CHANGE_CIPHER_SPEC = 25
-    delta 18 In_FINISHED = 18
-    delta 18 In_APPLICATION = 18
-    delta 18 In_CERTIFICATE = 18
-    delta 18 In_EMPTY_CERTIFICATE = 18
-    delta 18 In_CERTIFICATE_VERIFY = 18
-    delta 18 In_Alert_WARNING_CLOSE_NOTIFY = 11
-    delta 18 In_Alert_FATAL_UNEXPECTED_MESSAGE = 11
-    delta 22 In_RSA_CLIENT_HELLO = 22
-    delta 22 In_RSA_CLIENT_KEY_EXCHANGE = 22
-    delta 22 In_PSK_CLIENT_HELLO = 22
-    delta 22 In_PSK_CLIENT_KEY_EXCHANGE = 22
-    delta 22 In_CHANGE_CIPHER_SPEC = 5
-    delta 22 In_FINISHED = 22
-    delta 22 In_APPLICATION = 14
-    delta 22 In_CERTIFICATE = 22
-    delta 22 In_EMPTY_CERTIFICATE = 22
-    delta 22 In_CERTIFICATE_VERIFY = 22
-    delta 22 In_Alert_WARNING_CLOSE_NOTIFY = 14
-    delta 22 In_Alert_FATAL_UNEXPECTED_MESSAGE = 14
-    delta 25 In_RSA_CLIENT_HELLO = 25
-    delta 25 In_RSA_CLIENT_KEY_EXCHANGE = 25
-    delta 25 In_PSK_CLIENT_HELLO = 25
-    delta 25 In_PSK_CLIENT_KEY_EXCHANGE = 25
-    delta 25 In_CHANGE_CIPHER_SPEC = 5
-    delta 25 In_FINISHED = 25
-    delta 25 In_APPLICATION = 25
-    delta 25 In_CERTIFICATE = 25
-    delta 25 In_EMPTY_CERTIFICATE = 25
-    delta 25 In_CERTIFICATE_VERIFY = 25
-    delta 25 In_Alert_WARNING_CLOSE_NOTIFY = 14
-    delta 25 In_Alert_FATAL_UNEXPECTED_MESSAGE = 14
-    delta 23 In_RSA_CLIENT_HELLO = 11
-    delta 23 In_RSA_CLIENT_KEY_EXCHANGE = 26
-    delta 23 In_PSK_CLIENT_HELLO = 11
-    delta 23 In_PSK_CLIENT_KEY_EXCHANGE = 27
-    delta 23 In_CHANGE_CIPHER_SPEC = 5
-    delta 23 In_FINISHED = 11
-    delta 23 In_APPLICATION = 23
-    delta 23 In_CERTIFICATE = 11
-    delta 23 In_EMPTY_CERTIFICATE = 11
-    delta 23 In_CERTIFICATE_VERIFY = 11
-    delta 23 In_Alert_WARNING_CLOSE_NOTIFY = 11
-    delta 23 In_Alert_FATAL_UNEXPECTED_MESSAGE = 11
-    delta 7 In_RSA_CLIENT_HELLO = 28
-    delta 7 In_RSA_CLIENT_KEY_EXCHANGE = 8
-    delta 7 In_PSK_CLIENT_HELLO = 28
-    delta 7 In_PSK_CLIENT_KEY_EXCHANGE = 8
-    delta 7 In_CHANGE_CIPHER_SPEC = 20
-    delta 7 In_FINISHED = 28
-    delta 7 In_APPLICATION = 7
-    delta 7 In_CERTIFICATE = 28
-    delta 7 In_EMPTY_CERTIFICATE = 28
-    delta 7 In_CERTIFICATE_VERIFY = 28
-    delta 7 In_Alert_WARNING_CLOSE_NOTIFY = 11
-    delta 7 In_Alert_FATAL_UNEXPECTED_MESSAGE = 11
-    delta 28 In_RSA_CLIENT_HELLO = 28
-    delta 28 In_RSA_CLIENT_KEY_EXCHANGE = 8
-    delta 28 In_PSK_CLIENT_HELLO = 28
-    delta 28 In_PSK_CLIENT_KEY_EXCHANGE = 8
-    delta 28 In_CHANGE_CIPHER_SPEC = 25
-    delta 28 In_FINISHED = 28
-    delta 28 In_APPLICATION = 28
-    delta 28 In_CERTIFICATE = 28
-    delta 28 In_EMPTY_CERTIFICATE = 28
-    delta 28 In_CERTIFICATE_VERIFY = 28
-    delta 28 In_Alert_WARNING_CLOSE_NOTIFY = 11
-    delta 28 In_Alert_FATAL_UNEXPECTED_MESSAGE = 11
-    delta 8 In_RSA_CLIENT_HELLO = 8
-    delta 8 In_RSA_CLIENT_KEY_EXCHANGE = 8
-    delta 8 In_PSK_CLIENT_HELLO = 8
-    delta 8 In_PSK_CLIENT_KEY_EXCHANGE = 8
-    delta 8 In_CHANGE_CIPHER_SPEC = 5
-    delta 8 In_FINISHED = 8
-    delta 8 In_APPLICATION = 8
-    delta 8 In_CERTIFICATE = 8
-    delta 8 In_EMPTY_CERTIFICATE = 8
-    delta 8 In_CERTIFICATE_VERIFY = 8
-    delta 8 In_Alert_WARNING_CLOSE_NOTIFY = 11
-    delta 8 In_Alert_FATAL_UNEXPECTED_MESSAGE = 11
-    delta 17 In_RSA_CLIENT_HELLO = 11
-    delta 17 In_RSA_CLIENT_KEY_EXCHANGE = 11
-    delta 17 In_PSK_CLIENT_HELLO = 11
-    delta 17 In_PSK_CLIENT_KEY_EXCHANGE = 15
-    delta 17 In_CHANGE_CIPHER_SPEC = 5
-    delta 17 In_FINISHED = 11
-    delta 17 In_APPLICATION = 17
-    delta 17 In_CERTIFICATE = 11
-    delta 17 In_EMPTY_CERTIFICATE = 11
-    delta 17 In_CERTIFICATE_VERIFY = 11
-    delta 17 In_Alert_WARNING_CLOSE_NOTIFY = 11
-    delta 17 In_Alert_FATAL_UNEXPECTED_MESSAGE = 11
-    delta 26 In_RSA_CLIENT_HELLO = 11
-    delta 26 In_RSA_CLIENT_KEY_EXCHANGE = 11
-    delta 26 In_PSK_CLIENT_HELLO = 11
-    delta 26 In_PSK_CLIENT_KEY_EXCHANGE = 11
-    delta 26 In_CHANGE_CIPHER_SPEC = 5
-    delta 26 In_FINISHED = 11
-    delta 26 In_APPLICATION = 26
-    delta 26 In_CERTIFICATE = 11
-    delta 26 In_EMPTY_CERTIFICATE = 11
-    delta 26 In_CERTIFICATE_VERIFY = 7
-    delta 26 In_Alert_WARNING_CLOSE_NOTIFY = 11
-    delta 26 In_Alert_FATAL_UNEXPECTED_MESSAGE = 11
-    delta 10 In_RSA_CLIENT_HELLO = 6
-    delta 10 In_RSA_CLIENT_KEY_EXCHANGE = 7
-    delta 10 In_PSK_CLIENT_HELLO = 6
-    delta 10 In_PSK_CLIENT_KEY_EXCHANGE = 8
-    delta 10 In_CHANGE_CIPHER_SPEC = 5
-    delta 10 In_FINISHED = 6
-    delta 10 In_APPLICATION = 10
-    delta 10 In_CERTIFICATE = 6
-    delta 10 In_EMPTY_CERTIFICATE = 6
-    delta 10 In_CERTIFICATE_VERIFY = 6
-    delta 10 In_Alert_WARNING_CLOSE_NOTIFY = 6
-    delta 10 In_Alert_FATAL_UNEXPECTED_MESSAGE = 6
-    delta 9 In_RSA_CLIENT_HELLO = 6
-    delta 9 In_RSA_CLIENT_KEY_EXCHANGE = 26
-    delta 9 In_PSK_CLIENT_HELLO = 6
-    delta 9 In_PSK_CLIENT_KEY_EXCHANGE = 27
-    delta 9 In_CHANGE_CIPHER_SPEC = 5
-    delta 9 In_FINISHED = 6
-    delta 9 In_APPLICATION = 9
-    delta 9 In_CERTIFICATE = 6
-    delta 9 In_EMPTY_CERTIFICATE = 6
-    delta 9 In_CERTIFICATE_VERIFY = 6
-    delta 9 In_Alert_WARNING_CLOSE_NOTIFY = 6
-    delta 9 In_Alert_FATAL_UNEXPECTED_MESSAGE = 6
-    delta 27 In_RSA_CLIENT_HELLO = 11
-    delta 27 In_RSA_CLIENT_KEY_EXCHANGE = 11
-    delta 27 In_PSK_CLIENT_HELLO = 11
-    delta 27 In_PSK_CLIENT_KEY_EXCHANGE = 11
-    delta 27 In_CHANGE_CIPHER_SPEC = 5
-    delta 27 In_FINISHED = 11
-    delta 27 In_APPLICATION = 27
-    delta 27 In_CERTIFICATE = 11
-    delta 27 In_EMPTY_CERTIFICATE = 11
-    delta 27 In_CERTIFICATE_VERIFY = 8
-    delta 27 In_Alert_WARNING_CLOSE_NOTIFY = 11
-    delta 27 In_Alert_FATAL_UNEXPECTED_MESSAGE = 11
-    delta 19 In_RSA_CLIENT_HELLO = 19
-    delta 19 In_RSA_CLIENT_KEY_EXCHANGE = 19
-    delta 19 In_PSK_CLIENT_HELLO = 19
-    delta 19 In_PSK_CLIENT_KEY_EXCHANGE = 18
-    delta 19 In_CHANGE_CIPHER_SPEC = 5
-    delta 19 In_FINISHED = 19
-    delta 19 In_APPLICATION = 19
-    delta 19 In_CERTIFICATE = 19
-    delta 19 In_EMPTY_CERTIFICATE = 19
-    delta 19 In_CERTIFICATE_VERIFY = 19
-    delta 19 In_Alert_WARNING_CLOSE_NOTIFY = 11
-    delta 19 In_Alert_FATAL_UNEXPECTED_MESSAGE = 11
-    delta _ _ = error "haal-gen: undefined transition"
-    lambda 0 In_RSA_CLIENT_HELLO = Out_HELLO_VERIFY_REQUEST
-    lambda 0 In_RSA_CLIENT_KEY_EXCHANGE = Out_HELLO_VERIFY_REQUEST
-    lambda 0 In_PSK_CLIENT_HELLO = Out_HELLO_VERIFY_REQUEST
-    lambda 0 In_PSK_CLIENT_KEY_EXCHANGE = Out_HELLO_VERIFY_REQUEST
-    lambda 0 In_CHANGE_CIPHER_SPEC = Out_HELLO_VERIFY_REQUEST
-    lambda 0 In_FINISHED = Out_HELLO_VERIFY_REQUEST
-    lambda 0 In_APPLICATION = Out_HELLO_VERIFY_REQUEST
-    lambda 0 In_CERTIFICATE = Out_HELLO_VERIFY_REQUEST
-    lambda 0 In_EMPTY_CERTIFICATE = Out_HELLO_VERIFY_REQUEST
-    lambda 0 In_CERTIFICATE_VERIFY = Out_HELLO_VERIFY_REQUEST
-    lambda 0 In_Alert_WARNING_CLOSE_NOTIFY = Out_HELLO_VERIFY_REQUEST
-    lambda 0 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_HELLO_VERIFY_REQUEST
-    lambda 1 In_RSA_CLIENT_HELLO = Out_SERVER_HELLO_CERTIFICATE_CERTIFICATE_REQUEST_SERVER_HELLO_DONE
-    lambda 1 In_RSA_CLIENT_KEY_EXCHANGE = Out_HELLO_VERIFY_REQUEST
-    lambda 1 In_PSK_CLIENT_HELLO = Out_SERVER_HELLO_SERVER_HELLO_DONE
-    lambda 1 In_PSK_CLIENT_KEY_EXCHANGE = Out_HELLO_VERIFY_REQUEST
-    lambda 1 In_CHANGE_CIPHER_SPEC = Out_HELLO_VERIFY_REQUEST
-    lambda 1 In_FINISHED = Out_HELLO_VERIFY_REQUEST
-    lambda 1 In_APPLICATION = Out_HELLO_VERIFY_REQUEST
-    lambda 1 In_CERTIFICATE = Out_HELLO_VERIFY_REQUEST
-    lambda 1 In_EMPTY_CERTIFICATE = Out_HELLO_VERIFY_REQUEST
-    lambda 1 In_CERTIFICATE_VERIFY = Out_HELLO_VERIFY_REQUEST
-    lambda 1 In_Alert_WARNING_CLOSE_NOTIFY = Out_HELLO_VERIFY_REQUEST
-    lambda 1 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_HELLO_VERIFY_REQUEST
-    lambda 2 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 2 In_RSA_CLIENT_KEY_EXCHANGE = Out_HELLO_VERIFY_REQUEST
-    lambda 2 In_PSK_CLIENT_HELLO = Out_TIMEOUT
-    lambda 2 In_PSK_CLIENT_KEY_EXCHANGE = Out_HELLO_VERIFY_REQUEST
-    lambda 2 In_CHANGE_CIPHER_SPEC = Out_HELLO_VERIFY_REQUEST
-    lambda 2 In_FINISHED = Out_HELLO_VERIFY_REQUEST
-    lambda 2 In_APPLICATION = Out_HELLO_VERIFY_REQUEST
-    lambda 2 In_CERTIFICATE = Out_HELLO_VERIFY_REQUEST
-    lambda 2 In_EMPTY_CERTIFICATE = Out_HELLO_VERIFY_REQUEST
-    lambda 2 In_CERTIFICATE_VERIFY = Out_HELLO_VERIFY_REQUEST
-    lambda 2 In_Alert_WARNING_CLOSE_NOTIFY = Out_HELLO_VERIFY_REQUEST
-    lambda 2 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_HELLO_VERIFY_REQUEST
-    lambda 5 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 5 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 5 In_PSK_CLIENT_HELLO = Out_TIMEOUT
-    lambda 5 In_PSK_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 5 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 5 In_FINISHED = Out_TIMEOUT
-    lambda 5 In_APPLICATION = Out_TIMEOUT
-    lambda 5 In_CERTIFICATE = Out_TIMEOUT
-    lambda 5 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 5 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 5 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 5 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 3 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 3 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 3 In_PSK_CLIENT_HELLO = Out_TIMEOUT
-    lambda 3 In_PSK_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 3 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 3 In_FINISHED = Out_TIMEOUT
-    lambda 3 In_APPLICATION = Out_TIMEOUT
-    lambda 3 In_CERTIFICATE = Out_TIMEOUT
-    lambda 3 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 3 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 3 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 3 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 6 In_RSA_CLIENT_HELLO = Out_SERVER_HELLO_CERTIFICATE_CERTIFICATE_REQUEST_SERVER_HELLO_DONE
-    lambda 6 In_RSA_CLIENT_KEY_EXCHANGE = Out_HELLO_VERIFY_REQUEST
-    lambda 6 In_PSK_CLIENT_HELLO = Out_SERVER_HELLO_SERVER_HELLO_DONE
-    lambda 6 In_PSK_CLIENT_KEY_EXCHANGE = Out_HELLO_VERIFY_REQUEST
-    lambda 6 In_CHANGE_CIPHER_SPEC = Out_HELLO_VERIFY_REQUEST
-    lambda 6 In_FINISHED = Out_HELLO_VERIFY_REQUEST
-    lambda 6 In_APPLICATION = Out_HELLO_VERIFY_REQUEST
-    lambda 6 In_CERTIFICATE = Out_HELLO_VERIFY_REQUEST
-    lambda 6 In_EMPTY_CERTIFICATE = Out_HELLO_VERIFY_REQUEST
-    lambda 6 In_CERTIFICATE_VERIFY = Out_HELLO_VERIFY_REQUEST
-    lambda 6 In_Alert_WARNING_CLOSE_NOTIFY = Out_HELLO_VERIFY_REQUEST
-    lambda 6 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_HELLO_VERIFY_REQUEST
-    lambda 12 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 12 In_RSA_CLIENT_KEY_EXCHANGE = Out_HELLO_VERIFY_REQUEST
-    lambda 12 In_PSK_CLIENT_HELLO = Out_TIMEOUT
-    lambda 12 In_PSK_CLIENT_KEY_EXCHANGE = Out_HELLO_VERIFY_REQUEST
-    lambda 12 In_CHANGE_CIPHER_SPEC = Out_HELLO_VERIFY_REQUEST
-    lambda 12 In_FINISHED = Out_HELLO_VERIFY_REQUEST
-    lambda 12 In_APPLICATION = Out_HELLO_VERIFY_REQUEST
-    lambda 12 In_CERTIFICATE = Out_HELLO_VERIFY_REQUEST
-    lambda 12 In_EMPTY_CERTIFICATE = Out_HELLO_VERIFY_REQUEST
-    lambda 12 In_CERTIFICATE_VERIFY = Out_HELLO_VERIFY_REQUEST
-    lambda 12 In_Alert_WARNING_CLOSE_NOTIFY = Out_HELLO_VERIFY_REQUEST
-    lambda 12 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_HELLO_VERIFY_REQUEST
-    lambda 13 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 13 In_RSA_CLIENT_KEY_EXCHANGE = Out_HELLO_VERIFY_REQUEST
-    lambda 13 In_PSK_CLIENT_HELLO = Out_TIMEOUT
-    lambda 13 In_PSK_CLIENT_KEY_EXCHANGE = Out_HELLO_VERIFY_REQUEST
-    lambda 13 In_CHANGE_CIPHER_SPEC = Out_HELLO_VERIFY_REQUEST
-    lambda 13 In_FINISHED = Out_HELLO_VERIFY_REQUEST
-    lambda 13 In_APPLICATION = Out_HELLO_VERIFY_REQUEST
-    lambda 13 In_CERTIFICATE = Out_HELLO_VERIFY_REQUEST
-    lambda 13 In_EMPTY_CERTIFICATE = Out_HELLO_VERIFY_REQUEST
-    lambda 13 In_CERTIFICATE_VERIFY = Out_HELLO_VERIFY_REQUEST
-    lambda 13 In_Alert_WARNING_CLOSE_NOTIFY = Out_HELLO_VERIFY_REQUEST
-    lambda 13 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_HELLO_VERIFY_REQUEST
-    lambda 4 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 4 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 4 In_PSK_CLIENT_HELLO = Out_TIMEOUT
-    lambda 4 In_PSK_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 4 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 4 In_FINISHED = Out_TIMEOUT
-    lambda 4 In_APPLICATION = Out_TIMEOUT
-    lambda 4 In_CERTIFICATE = Out_TIMEOUT
-    lambda 4 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 4 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 4 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 4 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 14 In_RSA_CLIENT_HELLO = Out_HELLO_VERIFY_REQUEST
-    lambda 14 In_RSA_CLIENT_KEY_EXCHANGE = Out_HELLO_VERIFY_REQUEST
-    lambda 14 In_PSK_CLIENT_HELLO = Out_HELLO_VERIFY_REQUEST
-    lambda 14 In_PSK_CLIENT_KEY_EXCHANGE = Out_HELLO_VERIFY_REQUEST
-    lambda 14 In_CHANGE_CIPHER_SPEC = Out_HELLO_VERIFY_REQUEST
-    lambda 14 In_FINISHED = Out_HELLO_VERIFY_REQUEST
-    lambda 14 In_APPLICATION = Out_HELLO_VERIFY_REQUEST
-    lambda 14 In_CERTIFICATE = Out_HELLO_VERIFY_REQUEST
-    lambda 14 In_EMPTY_CERTIFICATE = Out_HELLO_VERIFY_REQUEST
-    lambda 14 In_CERTIFICATE_VERIFY = Out_HELLO_VERIFY_REQUEST
-    lambda 14 In_Alert_WARNING_CLOSE_NOTIFY = Out_HELLO_VERIFY_REQUEST
-    lambda 14 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_HELLO_VERIFY_REQUEST
-    lambda 11 In_RSA_CLIENT_HELLO = Out_SERVER_HELLO_CERTIFICATE_CERTIFICATE_REQUEST_SERVER_HELLO_DONE
-    lambda 11 In_RSA_CLIENT_KEY_EXCHANGE = Out_HELLO_VERIFY_REQUEST
-    lambda 11 In_PSK_CLIENT_HELLO = Out_SERVER_HELLO_SERVER_HELLO_DONE
-    lambda 11 In_PSK_CLIENT_KEY_EXCHANGE = Out_HELLO_VERIFY_REQUEST
-    lambda 11 In_CHANGE_CIPHER_SPEC = Out_HELLO_VERIFY_REQUEST
-    lambda 11 In_FINISHED = Out_HELLO_VERIFY_REQUEST
-    lambda 11 In_APPLICATION = Out_HELLO_VERIFY_REQUEST
-    lambda 11 In_CERTIFICATE = Out_HELLO_VERIFY_REQUEST
-    lambda 11 In_EMPTY_CERTIFICATE = Out_HELLO_VERIFY_REQUEST
-    lambda 11 In_CERTIFICATE_VERIFY = Out_HELLO_VERIFY_REQUEST
-    lambda 11 In_Alert_WARNING_CLOSE_NOTIFY = Out_HELLO_VERIFY_REQUEST
-    lambda 11 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_HELLO_VERIFY_REQUEST
-    lambda 15 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 15 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 15 In_PSK_CLIENT_HELLO = Out_TIMEOUT
-    lambda 15 In_PSK_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 15 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 15 In_FINISHED = Out_TIMEOUT
-    lambda 15 In_APPLICATION = Out_TIMEOUT
-    lambda 15 In_CERTIFICATE = Out_TIMEOUT
-    lambda 15 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 15 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 15 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 15 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 20 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 20 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 20 In_PSK_CLIENT_HELLO = Out_TIMEOUT
-    lambda 20 In_PSK_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 20 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 20 In_FINISHED = Out_CHANGE_CIPHER_SPEC_FINISHED
-    lambda 20 In_APPLICATION = Out_TIMEOUT
-    lambda 20 In_CERTIFICATE = Out_TIMEOUT
-    lambda 20 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 20 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 20 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 20 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 21 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 21 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 21 In_PSK_CLIENT_HELLO = Out_TIMEOUT
-    lambda 21 In_PSK_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 21 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 21 In_FINISHED = Out_TIMEOUT
-    lambda 21 In_APPLICATION = Out_APPLICATION
-    lambda 21 In_CERTIFICATE = Out_TIMEOUT
-    lambda 21 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 21 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 21 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 21 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 16 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 16 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 16 In_PSK_CLIENT_HELLO = Out_TIMEOUT
-    lambda 16 In_PSK_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 16 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 16 In_FINISHED = Out_TIMEOUT
-    lambda 16 In_APPLICATION = Out_TIMEOUT
-    lambda 16 In_CERTIFICATE = Out_TIMEOUT
-    lambda 16 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 16 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 16 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 16 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 24 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 24 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 24 In_PSK_CLIENT_HELLO = Out_TIMEOUT
-    lambda 24 In_PSK_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 24 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 24 In_FINISHED = Out_TIMEOUT
-    lambda 24 In_APPLICATION = Out_TIMEOUT
-    lambda 24 In_CERTIFICATE = Out_TIMEOUT
-    lambda 24 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 24 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 24 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 24 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 18 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 18 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 18 In_PSK_CLIENT_HELLO = Out_TIMEOUT
-    lambda 18 In_PSK_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 18 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 18 In_FINISHED = Out_TIMEOUT
-    lambda 18 In_APPLICATION = Out_TIMEOUT
-    lambda 18 In_CERTIFICATE = Out_TIMEOUT
-    lambda 18 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 18 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 18 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 18 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 22 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 22 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 22 In_PSK_CLIENT_HELLO = Out_TIMEOUT
-    lambda 22 In_PSK_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 22 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 22 In_FINISHED = Out_TIMEOUT
-    lambda 22 In_APPLICATION = Out_TIMEOUT
-    lambda 22 In_CERTIFICATE = Out_TIMEOUT
-    lambda 22 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 22 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 22 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 22 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 25 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 25 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 25 In_PSK_CLIENT_HELLO = Out_TIMEOUT
-    lambda 25 In_PSK_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 25 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 25 In_FINISHED = Out_TIMEOUT
-    lambda 25 In_APPLICATION = Out_TIMEOUT
-    lambda 25 In_CERTIFICATE = Out_TIMEOUT
-    lambda 25 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 25 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 25 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 25 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 23 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 23 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 23 In_PSK_CLIENT_HELLO = Out_TIMEOUT
-    lambda 23 In_PSK_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 23 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 23 In_FINISHED = Out_TIMEOUT
-    lambda 23 In_APPLICATION = Out_TIMEOUT
-    lambda 23 In_CERTIFICATE = Out_TIMEOUT
-    lambda 23 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 23 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 23 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 23 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 7 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 7 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 7 In_PSK_CLIENT_HELLO = Out_TIMEOUT
-    lambda 7 In_PSK_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 7 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 7 In_FINISHED = Out_TIMEOUT
-    lambda 7 In_APPLICATION = Out_TIMEOUT
-    lambda 7 In_CERTIFICATE = Out_TIMEOUT
-    lambda 7 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 7 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 7 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 7 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 28 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 28 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 28 In_PSK_CLIENT_HELLO = Out_TIMEOUT
-    lambda 28 In_PSK_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 28 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 28 In_FINISHED = Out_TIMEOUT
-    lambda 28 In_APPLICATION = Out_TIMEOUT
-    lambda 28 In_CERTIFICATE = Out_TIMEOUT
-    lambda 28 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 28 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 28 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 28 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 8 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 8 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 8 In_PSK_CLIENT_HELLO = Out_TIMEOUT
-    lambda 8 In_PSK_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 8 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 8 In_FINISHED = Out_TIMEOUT
-    lambda 8 In_APPLICATION = Out_TIMEOUT
-    lambda 8 In_CERTIFICATE = Out_TIMEOUT
-    lambda 8 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 8 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 8 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 8 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 17 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 17 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 17 In_PSK_CLIENT_HELLO = Out_TIMEOUT
-    lambda 17 In_PSK_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 17 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 17 In_FINISHED = Out_TIMEOUT
-    lambda 17 In_APPLICATION = Out_TIMEOUT
-    lambda 17 In_CERTIFICATE = Out_TIMEOUT
-    lambda 17 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 17 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 17 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 17 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 26 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 26 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 26 In_PSK_CLIENT_HELLO = Out_TIMEOUT
-    lambda 26 In_PSK_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 26 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 26 In_FINISHED = Out_TIMEOUT
-    lambda 26 In_APPLICATION = Out_TIMEOUT
-    lambda 26 In_CERTIFICATE = Out_TIMEOUT
-    lambda 26 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 26 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 26 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 26 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 10 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 10 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 10 In_PSK_CLIENT_HELLO = Out_TIMEOUT
-    lambda 10 In_PSK_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 10 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 10 In_FINISHED = Out_TIMEOUT
-    lambda 10 In_APPLICATION = Out_TIMEOUT
-    lambda 10 In_CERTIFICATE = Out_TIMEOUT
-    lambda 10 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 10 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 10 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 10 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 9 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 9 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 9 In_PSK_CLIENT_HELLO = Out_TIMEOUT
-    lambda 9 In_PSK_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 9 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 9 In_FINISHED = Out_TIMEOUT
-    lambda 9 In_APPLICATION = Out_TIMEOUT
-    lambda 9 In_CERTIFICATE = Out_TIMEOUT
-    lambda 9 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 9 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 9 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 9 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 27 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 27 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 27 In_PSK_CLIENT_HELLO = Out_TIMEOUT
-    lambda 27 In_PSK_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 27 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 27 In_FINISHED = Out_TIMEOUT
-    lambda 27 In_APPLICATION = Out_TIMEOUT
-    lambda 27 In_CERTIFICATE = Out_TIMEOUT
-    lambda 27 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 27 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 27 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 27 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 19 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 19 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 19 In_PSK_CLIENT_HELLO = Out_TIMEOUT
-    lambda 19 In_PSK_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 19 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 19 In_FINISHED = Out_TIMEOUT
-    lambda 19 In_APPLICATION = Out_TIMEOUT
-    lambda 19 In_CERTIFICATE = Out_TIMEOUT
-    lambda 19 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 19 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 19 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 19 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda _ _ = error "haal-gen: undefined transition"
+import Haal.Automaton.MealyAutomaton (MealyAutomaton, mkMealyAutomatonTable)
+
+data GnutlsV3V5V19PskRsaCertNreqInput
+    = In_RSA_CLIENT_HELLO
+    | In_RSA_CLIENT_KEY_EXCHANGE
+    | In_PSK_CLIENT_HELLO
+    | In_PSK_CLIENT_KEY_EXCHANGE
+    | In_CHANGE_CIPHER_SPEC
+    | In_FINISHED
+    | In_APPLICATION
+    | In_CERTIFICATE
+    | In_EMPTY_CERTIFICATE
+    | In_CERTIFICATE_VERIFY
+    | In_Alert_WARNING_CLOSE_NOTIFY
+    | In_Alert_FATAL_UNEXPECTED_MESSAGE
+    deriving (Show, Eq, Ord, Enum, Bounded)
+
+data GnutlsV3V5V19PskRsaCertNreqOutput
+    = Out_HELLO_VERIFY_REQUEST
+    | Out_SERVER_HELLO_CERTIFICATE_CERTIFICATE_REQUEST_SERVER_HELLO_DONE
+    | Out_SERVER_HELLO_SERVER_HELLO_DONE
+    | Out_TIMEOUT
+    | Out_CHANGE_CIPHER_SPEC_FINISHED
+    | Out_APPLICATION
+    deriving (Show, Eq, Ord, Enum, Bounded)
+
+{- Transitions (state  input -> next state / output):
+    0     In_RSA_CLIENT_HELLO                -> 1 / Out_HELLO_VERIFY_REQUEST
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 1 / Out_HELLO_VERIFY_REQUEST
+          In_PSK_CLIENT_HELLO                -> 1 / Out_HELLO_VERIFY_REQUEST
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 1 / Out_HELLO_VERIFY_REQUEST
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_HELLO_VERIFY_REQUEST
+          In_FINISHED                        -> 1 / Out_HELLO_VERIFY_REQUEST
+          In_APPLICATION                     -> 1 / Out_HELLO_VERIFY_REQUEST
+          In_CERTIFICATE                     -> 1 / Out_HELLO_VERIFY_REQUEST
+          In_EMPTY_CERTIFICATE               -> 1 / Out_HELLO_VERIFY_REQUEST
+          In_CERTIFICATE_VERIFY              -> 1 / Out_HELLO_VERIFY_REQUEST
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 1 / Out_HELLO_VERIFY_REQUEST
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 1 / Out_HELLO_VERIFY_REQUEST
+    1     In_RSA_CLIENT_HELLO                -> 3 / Out_SERVER_HELLO_CERTIFICATE_CERTIFICATE_REQUEST_SERVER_HELLO_DONE
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 1 / Out_HELLO_VERIFY_REQUEST
+          In_PSK_CLIENT_HELLO                -> 4 / Out_SERVER_HELLO_SERVER_HELLO_DONE
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 1 / Out_HELLO_VERIFY_REQUEST
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_HELLO_VERIFY_REQUEST
+          In_FINISHED                        -> 1 / Out_HELLO_VERIFY_REQUEST
+          In_APPLICATION                     -> 1 / Out_HELLO_VERIFY_REQUEST
+          In_CERTIFICATE                     -> 1 / Out_HELLO_VERIFY_REQUEST
+          In_EMPTY_CERTIFICATE               -> 1 / Out_HELLO_VERIFY_REQUEST
+          In_CERTIFICATE_VERIFY              -> 1 / Out_HELLO_VERIFY_REQUEST
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 1 / Out_HELLO_VERIFY_REQUEST
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 1 / Out_HELLO_VERIFY_REQUEST
+    2     In_RSA_CLIENT_HELLO                -> 5 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 2 / Out_HELLO_VERIFY_REQUEST
+          In_PSK_CLIENT_HELLO                -> 5 / Out_TIMEOUT
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 2 / Out_HELLO_VERIFY_REQUEST
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_HELLO_VERIFY_REQUEST
+          In_FINISHED                        -> 2 / Out_HELLO_VERIFY_REQUEST
+          In_APPLICATION                     -> 2 / Out_HELLO_VERIFY_REQUEST
+          In_CERTIFICATE                     -> 2 / Out_HELLO_VERIFY_REQUEST
+          In_EMPTY_CERTIFICATE               -> 2 / Out_HELLO_VERIFY_REQUEST
+          In_CERTIFICATE_VERIFY              -> 2 / Out_HELLO_VERIFY_REQUEST
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 2 / Out_HELLO_VERIFY_REQUEST
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 2 / Out_HELLO_VERIFY_REQUEST
+    3     In_RSA_CLIENT_HELLO                -> 6 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 7 / Out_TIMEOUT
+          In_PSK_CLIENT_HELLO                -> 6 / Out_TIMEOUT
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 8 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 5 / Out_TIMEOUT
+          In_FINISHED                        -> 6 / Out_TIMEOUT
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 9 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 10 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 6 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 6 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 6 / Out_TIMEOUT
+    4     In_RSA_CLIENT_HELLO                -> 6 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 11 / Out_TIMEOUT
+          In_PSK_CLIENT_HELLO                -> 6 / Out_TIMEOUT
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 15 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 5 / Out_TIMEOUT
+          In_FINISHED                        -> 6 / Out_TIMEOUT
+          In_APPLICATION                     -> 4 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 6 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 6 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 6 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 6 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 6 / Out_TIMEOUT
+    5     In_RSA_CLIENT_HELLO                -> 5 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 5 / Out_TIMEOUT
+          In_PSK_CLIENT_HELLO                -> 5 / Out_TIMEOUT
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 5 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 5 / Out_TIMEOUT
+          In_FINISHED                        -> 5 / Out_TIMEOUT
+          In_APPLICATION                     -> 5 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 5 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 5 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 5 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 5 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 5 / Out_TIMEOUT
+    6     In_RSA_CLIENT_HELLO                -> 3 / Out_SERVER_HELLO_CERTIFICATE_CERTIFICATE_REQUEST_SERVER_HELLO_DONE
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 11 / Out_HELLO_VERIFY_REQUEST
+          In_PSK_CLIENT_HELLO                -> 4 / Out_SERVER_HELLO_SERVER_HELLO_DONE
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 11 / Out_HELLO_VERIFY_REQUEST
+          In_CHANGE_CIPHER_SPEC              -> 12 / Out_HELLO_VERIFY_REQUEST
+          In_FINISHED                        -> 6 / Out_HELLO_VERIFY_REQUEST
+          In_APPLICATION                     -> 6 / Out_HELLO_VERIFY_REQUEST
+          In_CERTIFICATE                     -> 6 / Out_HELLO_VERIFY_REQUEST
+          In_EMPTY_CERTIFICATE               -> 6 / Out_HELLO_VERIFY_REQUEST
+          In_CERTIFICATE_VERIFY              -> 6 / Out_HELLO_VERIFY_REQUEST
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 6 / Out_HELLO_VERIFY_REQUEST
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 6 / Out_HELLO_VERIFY_REQUEST
+    7     In_RSA_CLIENT_HELLO                -> 28 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 8 / Out_TIMEOUT
+          In_PSK_CLIENT_HELLO                -> 28 / Out_TIMEOUT
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 8 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 20 / Out_TIMEOUT
+          In_FINISHED                        -> 28 / Out_TIMEOUT
+          In_APPLICATION                     -> 7 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 28 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 28 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 28 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 11 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 11 / Out_TIMEOUT
+    8     In_RSA_CLIENT_HELLO                -> 8 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 8 / Out_TIMEOUT
+          In_PSK_CLIENT_HELLO                -> 8 / Out_TIMEOUT
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 8 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 5 / Out_TIMEOUT
+          In_FINISHED                        -> 8 / Out_TIMEOUT
+          In_APPLICATION                     -> 8 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 8 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 8 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 8 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 11 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 11 / Out_TIMEOUT
+    9     In_RSA_CLIENT_HELLO                -> 6 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 26 / Out_TIMEOUT
+          In_PSK_CLIENT_HELLO                -> 6 / Out_TIMEOUT
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 27 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 5 / Out_TIMEOUT
+          In_FINISHED                        -> 6 / Out_TIMEOUT
+          In_APPLICATION                     -> 9 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 6 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 6 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 6 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 6 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 6 / Out_TIMEOUT
+    10    In_RSA_CLIENT_HELLO                -> 6 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 7 / Out_TIMEOUT
+          In_PSK_CLIENT_HELLO                -> 6 / Out_TIMEOUT
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 8 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 5 / Out_TIMEOUT
+          In_FINISHED                        -> 6 / Out_TIMEOUT
+          In_APPLICATION                     -> 10 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 6 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 6 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 6 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 6 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 6 / Out_TIMEOUT
+    11    In_RSA_CLIENT_HELLO                -> 16 / Out_SERVER_HELLO_CERTIFICATE_CERTIFICATE_REQUEST_SERVER_HELLO_DONE
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 11 / Out_HELLO_VERIFY_REQUEST
+          In_PSK_CLIENT_HELLO                -> 17 / Out_SERVER_HELLO_SERVER_HELLO_DONE
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 11 / Out_HELLO_VERIFY_REQUEST
+          In_CHANGE_CIPHER_SPEC              -> 14 / Out_HELLO_VERIFY_REQUEST
+          In_FINISHED                        -> 11 / Out_HELLO_VERIFY_REQUEST
+          In_APPLICATION                     -> 11 / Out_HELLO_VERIFY_REQUEST
+          In_CERTIFICATE                     -> 11 / Out_HELLO_VERIFY_REQUEST
+          In_EMPTY_CERTIFICATE               -> 11 / Out_HELLO_VERIFY_REQUEST
+          In_CERTIFICATE_VERIFY              -> 11 / Out_HELLO_VERIFY_REQUEST
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 11 / Out_HELLO_VERIFY_REQUEST
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 11 / Out_HELLO_VERIFY_REQUEST
+    12    In_RSA_CLIENT_HELLO                -> 5 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 13 / Out_HELLO_VERIFY_REQUEST
+          In_PSK_CLIENT_HELLO                -> 5 / Out_TIMEOUT
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 13 / Out_HELLO_VERIFY_REQUEST
+          In_CHANGE_CIPHER_SPEC              -> 12 / Out_HELLO_VERIFY_REQUEST
+          In_FINISHED                        -> 12 / Out_HELLO_VERIFY_REQUEST
+          In_APPLICATION                     -> 12 / Out_HELLO_VERIFY_REQUEST
+          In_CERTIFICATE                     -> 12 / Out_HELLO_VERIFY_REQUEST
+          In_EMPTY_CERTIFICATE               -> 12 / Out_HELLO_VERIFY_REQUEST
+          In_CERTIFICATE_VERIFY              -> 12 / Out_HELLO_VERIFY_REQUEST
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 12 / Out_HELLO_VERIFY_REQUEST
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 12 / Out_HELLO_VERIFY_REQUEST
+    13    In_RSA_CLIENT_HELLO                -> 5 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 13 / Out_HELLO_VERIFY_REQUEST
+          In_PSK_CLIENT_HELLO                -> 5 / Out_TIMEOUT
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 13 / Out_HELLO_VERIFY_REQUEST
+          In_CHANGE_CIPHER_SPEC              -> 14 / Out_HELLO_VERIFY_REQUEST
+          In_FINISHED                        -> 13 / Out_HELLO_VERIFY_REQUEST
+          In_APPLICATION                     -> 13 / Out_HELLO_VERIFY_REQUEST
+          In_CERTIFICATE                     -> 13 / Out_HELLO_VERIFY_REQUEST
+          In_EMPTY_CERTIFICATE               -> 13 / Out_HELLO_VERIFY_REQUEST
+          In_CERTIFICATE_VERIFY              -> 13 / Out_HELLO_VERIFY_REQUEST
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 13 / Out_HELLO_VERIFY_REQUEST
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 13 / Out_HELLO_VERIFY_REQUEST
+    14    In_RSA_CLIENT_HELLO                -> 14 / Out_HELLO_VERIFY_REQUEST
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 14 / Out_HELLO_VERIFY_REQUEST
+          In_PSK_CLIENT_HELLO                -> 14 / Out_HELLO_VERIFY_REQUEST
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 14 / Out_HELLO_VERIFY_REQUEST
+          In_CHANGE_CIPHER_SPEC              -> 14 / Out_HELLO_VERIFY_REQUEST
+          In_FINISHED                        -> 14 / Out_HELLO_VERIFY_REQUEST
+          In_APPLICATION                     -> 14 / Out_HELLO_VERIFY_REQUEST
+          In_CERTIFICATE                     -> 14 / Out_HELLO_VERIFY_REQUEST
+          In_EMPTY_CERTIFICATE               -> 14 / Out_HELLO_VERIFY_REQUEST
+          In_CERTIFICATE_VERIFY              -> 14 / Out_HELLO_VERIFY_REQUEST
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 14 / Out_HELLO_VERIFY_REQUEST
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 14 / Out_HELLO_VERIFY_REQUEST
+    15    In_RSA_CLIENT_HELLO                -> 18 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 19 / Out_TIMEOUT
+          In_PSK_CLIENT_HELLO                -> 18 / Out_TIMEOUT
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 18 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 20 / Out_TIMEOUT
+          In_FINISHED                        -> 18 / Out_TIMEOUT
+          In_APPLICATION                     -> 15 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 18 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 18 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 18 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 11 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 11 / Out_TIMEOUT
+    16    In_RSA_CLIENT_HELLO                -> 11 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 7 / Out_TIMEOUT
+          In_PSK_CLIENT_HELLO                -> 11 / Out_TIMEOUT
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 8 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 5 / Out_TIMEOUT
+          In_FINISHED                        -> 11 / Out_TIMEOUT
+          In_APPLICATION                     -> 16 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 23 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 24 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 11 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 11 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 11 / Out_TIMEOUT
+    17    In_RSA_CLIENT_HELLO                -> 11 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 11 / Out_TIMEOUT
+          In_PSK_CLIENT_HELLO                -> 11 / Out_TIMEOUT
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 15 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 5 / Out_TIMEOUT
+          In_FINISHED                        -> 11 / Out_TIMEOUT
+          In_APPLICATION                     -> 17 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 11 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 11 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 11 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 11 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 11 / Out_TIMEOUT
+    18    In_RSA_CLIENT_HELLO                -> 18 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 19 / Out_TIMEOUT
+          In_PSK_CLIENT_HELLO                -> 18 / Out_TIMEOUT
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 18 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 25 / Out_TIMEOUT
+          In_FINISHED                        -> 18 / Out_TIMEOUT
+          In_APPLICATION                     -> 18 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 18 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 18 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 18 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 11 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 11 / Out_TIMEOUT
+    19    In_RSA_CLIENT_HELLO                -> 19 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 19 / Out_TIMEOUT
+          In_PSK_CLIENT_HELLO                -> 19 / Out_TIMEOUT
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 18 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 5 / Out_TIMEOUT
+          In_FINISHED                        -> 19 / Out_TIMEOUT
+          In_APPLICATION                     -> 19 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 19 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 19 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 19 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 11 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 11 / Out_TIMEOUT
+    20    In_RSA_CLIENT_HELLO                -> 14 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 14 / Out_TIMEOUT
+          In_PSK_CLIENT_HELLO                -> 14 / Out_TIMEOUT
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 14 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 5 / Out_TIMEOUT
+          In_FINISHED                        -> 21 / Out_CHANGE_CIPHER_SPEC_FINISHED
+          In_APPLICATION                     -> 20 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 14 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 14 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 14 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 14 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 14 / Out_TIMEOUT
+    21    In_RSA_CLIENT_HELLO                -> 22 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 21 / Out_TIMEOUT
+          In_PSK_CLIENT_HELLO                -> 22 / Out_TIMEOUT
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 21 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 5 / Out_TIMEOUT
+          In_FINISHED                        -> 21 / Out_TIMEOUT
+          In_APPLICATION                     -> 21 / Out_APPLICATION
+          In_CERTIFICATE                     -> 21 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 21 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 21 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 14 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 14 / Out_TIMEOUT
+    22    In_RSA_CLIENT_HELLO                -> 22 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 22 / Out_TIMEOUT
+          In_PSK_CLIENT_HELLO                -> 22 / Out_TIMEOUT
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 22 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 5 / Out_TIMEOUT
+          In_FINISHED                        -> 22 / Out_TIMEOUT
+          In_APPLICATION                     -> 14 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 22 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 22 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 22 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 14 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 14 / Out_TIMEOUT
+    23    In_RSA_CLIENT_HELLO                -> 11 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 26 / Out_TIMEOUT
+          In_PSK_CLIENT_HELLO                -> 11 / Out_TIMEOUT
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 27 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 5 / Out_TIMEOUT
+          In_FINISHED                        -> 11 / Out_TIMEOUT
+          In_APPLICATION                     -> 23 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 11 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 11 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 11 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 11 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 11 / Out_TIMEOUT
+    24    In_RSA_CLIENT_HELLO                -> 11 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 7 / Out_TIMEOUT
+          In_PSK_CLIENT_HELLO                -> 11 / Out_TIMEOUT
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 8 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 5 / Out_TIMEOUT
+          In_FINISHED                        -> 11 / Out_TIMEOUT
+          In_APPLICATION                     -> 24 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 11 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 11 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 11 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 11 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 11 / Out_TIMEOUT
+    25    In_RSA_CLIENT_HELLO                -> 25 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 25 / Out_TIMEOUT
+          In_PSK_CLIENT_HELLO                -> 25 / Out_TIMEOUT
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 25 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 5 / Out_TIMEOUT
+          In_FINISHED                        -> 25 / Out_TIMEOUT
+          In_APPLICATION                     -> 25 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 25 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 25 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 25 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 14 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 14 / Out_TIMEOUT
+    26    In_RSA_CLIENT_HELLO                -> 11 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 11 / Out_TIMEOUT
+          In_PSK_CLIENT_HELLO                -> 11 / Out_TIMEOUT
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 11 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 5 / Out_TIMEOUT
+          In_FINISHED                        -> 11 / Out_TIMEOUT
+          In_APPLICATION                     -> 26 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 11 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 11 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 7 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 11 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 11 / Out_TIMEOUT
+    27    In_RSA_CLIENT_HELLO                -> 11 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 11 / Out_TIMEOUT
+          In_PSK_CLIENT_HELLO                -> 11 / Out_TIMEOUT
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 11 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 5 / Out_TIMEOUT
+          In_FINISHED                        -> 11 / Out_TIMEOUT
+          In_APPLICATION                     -> 27 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 11 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 11 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 8 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 11 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 11 / Out_TIMEOUT
+    28    In_RSA_CLIENT_HELLO                -> 28 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 8 / Out_TIMEOUT
+          In_PSK_CLIENT_HELLO                -> 28 / Out_TIMEOUT
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 8 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 25 / Out_TIMEOUT
+          In_FINISHED                        -> 28 / Out_TIMEOUT
+          In_APPLICATION                     -> 28 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 28 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 28 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 28 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 11 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 11 / Out_TIMEOUT
+-}
+gnutlsV3V5V19PskRsaCertNreq :: MealyAutomaton Int GnutlsV3V5V19PskRsaCertNreqInput GnutlsV3V5V19PskRsaCertNreqOutput
+gnutlsV3V5V19PskRsaCertNreq =
+    case mkMealyAutomatonTable 29 0 deltaTable lambdaTable of
+        Right m -> m
+        Left err -> error ("haal-gen: invalid transition table: " ++ err)
+  where
+    deltaTable =
+        "\1\1\1\1\2\1\1\1\1\1\1\1\
+        \\3\1\4\1\2\1\1\1\1\1\1\1\
+        \\5\2\5\2\2\2\2\2\2\2\2\2\
+        \\6\7\6\8\5\6\3\9\10\6\6\6\
+        \\6\11\6\15\5\6\4\6\6\6\6\6\
+        \\5\5\5\5\5\5\5\5\5\5\5\5\
+        \\3\11\4\11\12\6\6\6\6\6\6\6\
+        \\28\8\28\8\20\28\7\28\28\28\11\11\
+        \\8\8\8\8\5\8\8\8\8\8\11\11\
+        \\6\26\6\27\5\6\9\6\6\6\6\6\
+        \\6\7\6\8\5\6\10\6\6\6\6\6\
+        \\16\11\17\11\14\11\11\11\11\11\11\11\
+        \\5\13\5\13\12\12\12\12\12\12\12\12\
+        \\5\13\5\13\14\13\13\13\13\13\13\13\
+        \\14\14\14\14\14\14\14\14\14\14\14\14\
+        \\18\19\18\18\20\18\15\18\18\18\11\11\
+        \\11\7\11\8\5\11\16\23\24\11\11\11\
+        \\11\11\11\15\5\11\17\11\11\11\11\11\
+        \\18\19\18\18\25\18\18\18\18\18\11\11\
+        \\19\19\19\18\5\19\19\19\19\19\11\11\
+        \\14\14\14\14\5\21\20\14\14\14\14\14\
+        \\22\21\22\21\5\21\21\21\21\21\14\14\
+        \\22\22\22\22\5\22\14\22\22\22\14\14\
+        \\11\26\11\27\5\11\23\11\11\11\11\11\
+        \\11\7\11\8\5\11\24\11\11\11\11\11\
+        \\25\25\25\25\5\25\25\25\25\25\14\14\
+        \\11\11\11\11\5\11\26\11\11\7\11\11\
+        \\11\11\11\11\5\11\27\11\11\8\11\11\
+        \\28\8\28\8\25\28\28\28\28\28\11\11"
+    lambdaTable =
+        "\0\0\0\0\0\0\0\0\0\0\0\0\
+        \\1\0\2\0\0\0\0\0\0\0\0\0\
+        \\3\0\3\0\0\0\0\0\0\0\0\0\
+        \\3\3\3\3\3\3\3\3\3\3\3\3\
+        \\3\3\3\3\3\3\3\3\3\3\3\3\
+        \\3\3\3\3\3\3\3\3\3\3\3\3\
+        \\1\0\2\0\0\0\0\0\0\0\0\0\
+        \\3\3\3\3\3\3\3\3\3\3\3\3\
+        \\3\3\3\3\3\3\3\3\3\3\3\3\
+        \\3\3\3\3\3\3\3\3\3\3\3\3\
+        \\3\3\3\3\3\3\3\3\3\3\3\3\
+        \\1\0\2\0\0\0\0\0\0\0\0\0\
+        \\3\0\3\0\0\0\0\0\0\0\0\0\
+        \\3\0\3\0\0\0\0\0\0\0\0\0\
+        \\0\0\0\0\0\0\0\0\0\0\0\0\
+        \\3\3\3\3\3\3\3\3\3\3\3\3\
+        \\3\3\3\3\3\3\3\3\3\3\3\3\
+        \\3\3\3\3\3\3\3\3\3\3\3\3\
+        \\3\3\3\3\3\3\3\3\3\3\3\3\
+        \\3\3\3\3\3\3\3\3\3\3\3\3\
+        \\3\3\3\3\3\4\3\3\3\3\3\3\
+        \\3\3\3\3\3\3\5\3\3\3\3\3\
+        \\3\3\3\3\3\3\3\3\3\3\3\3\
+        \\3\3\3\3\3\3\3\3\3\3\3\3\
+        \\3\3\3\3\3\3\3\3\3\3\3\3\
+        \\3\3\3\3\3\3\3\3\3\3\3\3\
+        \\3\3\3\3\3\3\3\3\3\3\3\3\
+        \\3\3\3\3\3\3\3\3\3\3\3\3\
+        \\3\3\3\3\3\3\3\3\3\3\3\3"
diff --git a/src/Haal/Models/DTLS/JsseV12RsaCertNone.hs b/src/Haal/Models/DTLS/JsseV12RsaCertNone.hs
--- a/src/Haal/Models/DTLS/JsseV12RsaCertNone.hs
+++ b/src/Haal/Models/DTLS/JsseV12RsaCertNone.hs
@@ -5,1615 +5,987 @@
     , jsseV12RsaCertNone
     ) where
 
-import qualified Data.Set as Set
-import Haal.Automaton.MealyAutomaton (MealyAutomaton, mkMealyAutomaton)
-
-data JsseV12RsaCertNoneInput
-    = In_RSA_CLIENT_HELLO
-    | In_RSA_CLIENT_KEY_EXCHANGE
-    | In_CHANGE_CIPHER_SPEC
-    | In_FINISHED
-    | In_APPLICATION
-    | In_CERTIFICATE
-    | In_EMPTY_CERTIFICATE
-    | In_CERTIFICATE_VERIFY
-    | In_Alert_WARNING_CLOSE_NOTIFY
-    | In_Alert_FATAL_UNEXPECTED_MESSAGE
-    deriving (Show, Eq, Ord, Enum, Bounded)
-
-data JsseV12RsaCertNoneOutput
-    = Out_HELLO_VERIFY_REQUEST
-    | Out_TIMEOUT
-    | Out_SOCKET_CLOSED
-    | Out_SERVER_HELLO_CERTIFICATE_SERVER_HELLO_DONE
-    | Out_Alert_WARNING_CLOSE_NOTIFY
-    | Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    | Out_CHANGE_CIPHER_SPEC_FINISHED_CHANGE_CIPHER_SPEC_FINISHED
-    | Out_APPLICATION
-    deriving (Show, Eq, Ord, Enum, Bounded)
-
-jsseV12RsaCertNone :: MealyAutomaton Int JsseV12RsaCertNoneInput JsseV12RsaCertNoneOutput
-jsseV12RsaCertNone = mkMealyAutomaton delta lambda (Set.fromList [0..78]) 0
-  where
-    delta 0 In_RSA_CLIENT_HELLO = 1
-    delta 0 In_RSA_CLIENT_KEY_EXCHANGE = 2
-    delta 0 In_CHANGE_CIPHER_SPEC = 3
-    delta 0 In_FINISHED = 4
-    delta 0 In_APPLICATION = 0
-    delta 0 In_CERTIFICATE = 5
-    delta 0 In_EMPTY_CERTIFICATE = 6
-    delta 0 In_CERTIFICATE_VERIFY = 4
-    delta 0 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 0 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 7 In_RSA_CLIENT_HELLO = 8
-    delta 7 In_RSA_CLIENT_KEY_EXCHANGE = 8
-    delta 7 In_CHANGE_CIPHER_SPEC = 8
-    delta 7 In_FINISHED = 8
-    delta 7 In_APPLICATION = 8
-    delta 7 In_CERTIFICATE = 8
-    delta 7 In_EMPTY_CERTIFICATE = 8
-    delta 7 In_CERTIFICATE_VERIFY = 8
-    delta 7 In_Alert_WARNING_CLOSE_NOTIFY = 8
-    delta 7 In_Alert_FATAL_UNEXPECTED_MESSAGE = 8
-    delta 8 In_RSA_CLIENT_HELLO = 8
-    delta 8 In_RSA_CLIENT_KEY_EXCHANGE = 8
-    delta 8 In_CHANGE_CIPHER_SPEC = 8
-    delta 8 In_FINISHED = 8
-    delta 8 In_APPLICATION = 8
-    delta 8 In_CERTIFICATE = 8
-    delta 8 In_EMPTY_CERTIFICATE = 8
-    delta 8 In_CERTIFICATE_VERIFY = 8
-    delta 8 In_Alert_WARNING_CLOSE_NOTIFY = 8
-    delta 8 In_Alert_FATAL_UNEXPECTED_MESSAGE = 8
-    delta 1 In_RSA_CLIENT_HELLO = 9
-    delta 1 In_RSA_CLIENT_KEY_EXCHANGE = 10
-    delta 1 In_CHANGE_CIPHER_SPEC = 3
-    delta 1 In_FINISHED = 11
-    delta 1 In_APPLICATION = 1
-    delta 1 In_CERTIFICATE = 12
-    delta 1 In_EMPTY_CERTIFICATE = 13
-    delta 1 In_CERTIFICATE_VERIFY = 11
-    delta 1 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 1 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 9 In_RSA_CLIENT_HELLO = 7
-    delta 9 In_RSA_CLIENT_KEY_EXCHANGE = 14
-    delta 9 In_CHANGE_CIPHER_SPEC = 3
-    delta 9 In_FINISHED = 11
-    delta 9 In_APPLICATION = 9
-    delta 9 In_CERTIFICATE = 12
-    delta 9 In_EMPTY_CERTIFICATE = 13
-    delta 9 In_CERTIFICATE_VERIFY = 11
-    delta 9 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 9 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 4 In_RSA_CLIENT_HELLO = 4
-    delta 4 In_RSA_CLIENT_KEY_EXCHANGE = 4
-    delta 4 In_CHANGE_CIPHER_SPEC = 3
-    delta 4 In_FINISHED = 4
-    delta 4 In_APPLICATION = 4
-    delta 4 In_CERTIFICATE = 4
-    delta 4 In_EMPTY_CERTIFICATE = 4
-    delta 4 In_CERTIFICATE_VERIFY = 4
-    delta 4 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 4 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 3 In_RSA_CLIENT_HELLO = 3
-    delta 3 In_RSA_CLIENT_KEY_EXCHANGE = 3
-    delta 3 In_CHANGE_CIPHER_SPEC = 3
-    delta 3 In_FINISHED = 3
-    delta 3 In_APPLICATION = 3
-    delta 3 In_CERTIFICATE = 3
-    delta 3 In_EMPTY_CERTIFICATE = 3
-    delta 3 In_CERTIFICATE_VERIFY = 3
-    delta 3 In_Alert_WARNING_CLOSE_NOTIFY = 3
-    delta 3 In_Alert_FATAL_UNEXPECTED_MESSAGE = 3
-    delta 14 In_RSA_CLIENT_HELLO = 15
-    delta 14 In_RSA_CLIENT_KEY_EXCHANGE = 11
-    delta 14 In_CHANGE_CIPHER_SPEC = 16
-    delta 14 In_FINISHED = 17
-    delta 14 In_APPLICATION = 14
-    delta 14 In_CERTIFICATE = 18
-    delta 14 In_EMPTY_CERTIFICATE = 18
-    delta 14 In_CERTIFICATE_VERIFY = 19
-    delta 14 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 14 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 2 In_RSA_CLIENT_HELLO = 20
-    delta 2 In_RSA_CLIENT_KEY_EXCHANGE = 4
-    delta 2 In_CHANGE_CIPHER_SPEC = 21
-    delta 2 In_FINISHED = 22
-    delta 2 In_APPLICATION = 2
-    delta 2 In_CERTIFICATE = 23
-    delta 2 In_EMPTY_CERTIFICATE = 23
-    delta 2 In_CERTIFICATE_VERIFY = 24
-    delta 2 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 2 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 21 In_RSA_CLIENT_HELLO = 7
-    delta 21 In_RSA_CLIENT_KEY_EXCHANGE = 7
-    delta 21 In_CHANGE_CIPHER_SPEC = 3
-    delta 21 In_FINISHED = 7
-    delta 21 In_APPLICATION = 21
-    delta 21 In_CERTIFICATE = 7
-    delta 21 In_EMPTY_CERTIFICATE = 7
-    delta 21 In_CERTIFICATE_VERIFY = 7
-    delta 21 In_Alert_WARNING_CLOSE_NOTIFY = 21
-    delta 21 In_Alert_FATAL_UNEXPECTED_MESSAGE = 21
-    delta 6 In_RSA_CLIENT_HELLO = 6
-    delta 6 In_RSA_CLIENT_KEY_EXCHANGE = 23
-    delta 6 In_CHANGE_CIPHER_SPEC = 21
-    delta 6 In_FINISHED = 25
-    delta 6 In_APPLICATION = 6
-    delta 6 In_CERTIFICATE = 4
-    delta 6 In_EMPTY_CERTIFICATE = 4
-    delta 6 In_CERTIFICATE_VERIFY = 26
-    delta 6 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 6 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 24 In_RSA_CLIENT_HELLO = 27
-    delta 24 In_RSA_CLIENT_KEY_EXCHANGE = 4
-    delta 24 In_CHANGE_CIPHER_SPEC = 21
-    delta 24 In_FINISHED = 28
-    delta 24 In_APPLICATION = 24
-    delta 24 In_CERTIFICATE = 29
-    delta 24 In_EMPTY_CERTIFICATE = 29
-    delta 24 In_CERTIFICATE_VERIFY = 4
-    delta 24 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 24 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 15 In_RSA_CLIENT_HELLO = 11
-    delta 15 In_RSA_CLIENT_KEY_EXCHANGE = 11
-    delta 15 In_CHANGE_CIPHER_SPEC = 30
-    delta 15 In_FINISHED = 31
-    delta 15 In_APPLICATION = 15
-    delta 15 In_CERTIFICATE = 32
-    delta 15 In_EMPTY_CERTIFICATE = 32
-    delta 15 In_CERTIFICATE_VERIFY = 33
-    delta 15 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 15 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 13 In_RSA_CLIENT_HELLO = 34
-    delta 13 In_RSA_CLIENT_KEY_EXCHANGE = 18
-    delta 13 In_CHANGE_CIPHER_SPEC = 30
-    delta 13 In_FINISHED = 35
-    delta 13 In_APPLICATION = 13
-    delta 13 In_CERTIFICATE = 11
-    delta 13 In_EMPTY_CERTIFICATE = 11
-    delta 13 In_CERTIFICATE_VERIFY = 36
-    delta 13 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 13 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 30 In_RSA_CLIENT_HELLO = 7
-    delta 30 In_RSA_CLIENT_KEY_EXCHANGE = 7
-    delta 30 In_CHANGE_CIPHER_SPEC = 3
-    delta 30 In_FINISHED = 7
-    delta 30 In_APPLICATION = 30
-    delta 30 In_CERTIFICATE = 7
-    delta 30 In_EMPTY_CERTIFICATE = 7
-    delta 30 In_CERTIFICATE_VERIFY = 7
-    delta 30 In_Alert_WARNING_CLOSE_NOTIFY = 30
-    delta 30 In_Alert_FATAL_UNEXPECTED_MESSAGE = 30
-    delta 11 In_RSA_CLIENT_HELLO = 11
-    delta 11 In_RSA_CLIENT_KEY_EXCHANGE = 11
-    delta 11 In_CHANGE_CIPHER_SPEC = 3
-    delta 11 In_FINISHED = 11
-    delta 11 In_APPLICATION = 11
-    delta 11 In_CERTIFICATE = 11
-    delta 11 In_EMPTY_CERTIFICATE = 11
-    delta 11 In_CERTIFICATE_VERIFY = 11
-    delta 11 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 11 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 16 In_RSA_CLIENT_HELLO = 37
-    delta 16 In_RSA_CLIENT_KEY_EXCHANGE = 11
-    delta 16 In_CHANGE_CIPHER_SPEC = 3
-    delta 16 In_FINISHED = 38
-    delta 16 In_APPLICATION = 16
-    delta 16 In_CERTIFICATE = 39
-    delta 16 In_EMPTY_CERTIFICATE = 39
-    delta 16 In_CERTIFICATE_VERIFY = 40
-    delta 16 In_Alert_WARNING_CLOSE_NOTIFY = 16
-    delta 16 In_Alert_FATAL_UNEXPECTED_MESSAGE = 16
-    delta 38 In_RSA_CLIENT_HELLO = 38
-    delta 38 In_RSA_CLIENT_KEY_EXCHANGE = 38
-    delta 38 In_CHANGE_CIPHER_SPEC = 3
-    delta 38 In_FINISHED = 38
-    delta 38 In_APPLICATION = 7
-    delta 38 In_CERTIFICATE = 38
-    delta 38 In_EMPTY_CERTIFICATE = 38
-    delta 38 In_CERTIFICATE_VERIFY = 38
-    delta 38 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 38 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 18 In_RSA_CLIENT_HELLO = 32
-    delta 18 In_RSA_CLIENT_KEY_EXCHANGE = 11
-    delta 18 In_CHANGE_CIPHER_SPEC = 30
-    delta 18 In_FINISHED = 41
-    delta 18 In_APPLICATION = 18
-    delta 18 In_CERTIFICATE = 11
-    delta 18 In_EMPTY_CERTIFICATE = 11
-    delta 18 In_CERTIFICATE_VERIFY = 42
-    delta 18 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 18 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 5 In_RSA_CLIENT_HELLO = 5
-    delta 5 In_RSA_CLIENT_KEY_EXCHANGE = 43
-    delta 5 In_CHANGE_CIPHER_SPEC = 3
-    delta 5 In_FINISHED = 44
-    delta 5 In_APPLICATION = 5
-    delta 5 In_CERTIFICATE = 4
-    delta 5 In_EMPTY_CERTIFICATE = 4
-    delta 5 In_CERTIFICATE_VERIFY = 26
-    delta 5 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 5 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 22 In_RSA_CLIENT_HELLO = 45
-    delta 22 In_RSA_CLIENT_KEY_EXCHANGE = 4
-    delta 22 In_CHANGE_CIPHER_SPEC = 21
-    delta 22 In_FINISHED = 4
-    delta 22 In_APPLICATION = 22
-    delta 22 In_CERTIFICATE = 46
-    delta 22 In_EMPTY_CERTIFICATE = 46
-    delta 22 In_CERTIFICATE_VERIFY = 28
-    delta 22 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 22 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 32 In_RSA_CLIENT_HELLO = 11
-    delta 32 In_RSA_CLIENT_KEY_EXCHANGE = 11
-    delta 32 In_CHANGE_CIPHER_SPEC = 30
-    delta 32 In_FINISHED = 47
-    delta 32 In_APPLICATION = 32
-    delta 32 In_CERTIFICATE = 11
-    delta 32 In_EMPTY_CERTIFICATE = 11
-    delta 32 In_CERTIFICATE_VERIFY = 48
-    delta 32 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 32 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 12 In_RSA_CLIENT_HELLO = 49
-    delta 12 In_RSA_CLIENT_KEY_EXCHANGE = 50
-    delta 12 In_CHANGE_CIPHER_SPEC = 3
-    delta 12 In_FINISHED = 12
-    delta 12 In_APPLICATION = 12
-    delta 12 In_CERTIFICATE = 11
-    delta 12 In_EMPTY_CERTIFICATE = 11
-    delta 12 In_CERTIFICATE_VERIFY = 36
-    delta 12 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 12 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 29 In_RSA_CLIENT_HELLO = 51
-    delta 29 In_RSA_CLIENT_KEY_EXCHANGE = 4
-    delta 29 In_CHANGE_CIPHER_SPEC = 21
-    delta 29 In_FINISHED = 52
-    delta 29 In_APPLICATION = 29
-    delta 29 In_CERTIFICATE = 4
-    delta 29 In_EMPTY_CERTIFICATE = 4
-    delta 29 In_CERTIFICATE_VERIFY = 4
-    delta 29 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 29 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 33 In_RSA_CLIENT_HELLO = 11
-    delta 33 In_RSA_CLIENT_KEY_EXCHANGE = 11
-    delta 33 In_CHANGE_CIPHER_SPEC = 30
-    delta 33 In_FINISHED = 53
-    delta 33 In_APPLICATION = 33
-    delta 33 In_CERTIFICATE = 48
-    delta 33 In_EMPTY_CERTIFICATE = 48
-    delta 33 In_CERTIFICATE_VERIFY = 11
-    delta 33 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 33 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 39 In_RSA_CLIENT_HELLO = 54
-    delta 39 In_RSA_CLIENT_KEY_EXCHANGE = 11
-    delta 39 In_CHANGE_CIPHER_SPEC = 30
-    delta 39 In_FINISHED = 55
-    delta 39 In_APPLICATION = 11
-    delta 39 In_CERTIFICATE = 11
-    delta 39 In_EMPTY_CERTIFICATE = 11
-    delta 39 In_CERTIFICATE_VERIFY = 56
-    delta 39 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 39 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 40 In_RSA_CLIENT_HELLO = 57
-    delta 40 In_RSA_CLIENT_KEY_EXCHANGE = 11
-    delta 40 In_CHANGE_CIPHER_SPEC = 30
-    delta 40 In_FINISHED = 58
-    delta 40 In_APPLICATION = 11
-    delta 40 In_CERTIFICATE = 56
-    delta 40 In_EMPTY_CERTIFICATE = 56
-    delta 40 In_CERTIFICATE_VERIFY = 11
-    delta 40 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 40 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 23 In_RSA_CLIENT_HELLO = 59
-    delta 23 In_RSA_CLIENT_KEY_EXCHANGE = 4
-    delta 23 In_CHANGE_CIPHER_SPEC = 21
-    delta 23 In_FINISHED = 46
-    delta 23 In_APPLICATION = 23
-    delta 23 In_CERTIFICATE = 4
-    delta 23 In_EMPTY_CERTIFICATE = 4
-    delta 23 In_CERTIFICATE_VERIFY = 29
-    delta 23 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 23 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 42 In_RSA_CLIENT_HELLO = 48
-    delta 42 In_RSA_CLIENT_KEY_EXCHANGE = 11
-    delta 42 In_CHANGE_CIPHER_SPEC = 30
-    delta 42 In_FINISHED = 60
-    delta 42 In_APPLICATION = 42
-    delta 42 In_CERTIFICATE = 11
-    delta 42 In_EMPTY_CERTIFICATE = 11
-    delta 42 In_CERTIFICATE_VERIFY = 11
-    delta 42 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 42 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 20 In_RSA_CLIENT_HELLO = 4
-    delta 20 In_RSA_CLIENT_KEY_EXCHANGE = 4
-    delta 20 In_CHANGE_CIPHER_SPEC = 21
-    delta 20 In_FINISHED = 45
-    delta 20 In_APPLICATION = 20
-    delta 20 In_CERTIFICATE = 59
-    delta 20 In_EMPTY_CERTIFICATE = 59
-    delta 20 In_CERTIFICATE_VERIFY = 27
-    delta 20 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 20 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 26 In_RSA_CLIENT_HELLO = 61
-    delta 26 In_RSA_CLIENT_KEY_EXCHANGE = 29
-    delta 26 In_CHANGE_CIPHER_SPEC = 21
-    delta 26 In_FINISHED = 62
-    delta 26 In_APPLICATION = 26
-    delta 26 In_CERTIFICATE = 4
-    delta 26 In_EMPTY_CERTIFICATE = 4
-    delta 26 In_CERTIFICATE_VERIFY = 4
-    delta 26 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 26 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 49 In_RSA_CLIENT_HELLO = 11
-    delta 49 In_RSA_CLIENT_KEY_EXCHANGE = 49
-    delta 49 In_CHANGE_CIPHER_SPEC = 3
-    delta 49 In_FINISHED = 49
-    delta 49 In_APPLICATION = 49
-    delta 49 In_CERTIFICATE = 11
-    delta 49 In_EMPTY_CERTIFICATE = 11
-    delta 49 In_CERTIFICATE_VERIFY = 63
-    delta 49 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 49 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 48 In_RSA_CLIENT_HELLO = 11
-    delta 48 In_RSA_CLIENT_KEY_EXCHANGE = 11
-    delta 48 In_CHANGE_CIPHER_SPEC = 30
-    delta 48 In_FINISHED = 64
-    delta 48 In_APPLICATION = 48
-    delta 48 In_CERTIFICATE = 11
-    delta 48 In_EMPTY_CERTIFICATE = 11
-    delta 48 In_CERTIFICATE_VERIFY = 11
-    delta 48 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 48 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 10 In_RSA_CLIENT_HELLO = 15
-    delta 10 In_RSA_CLIENT_KEY_EXCHANGE = 11
-    delta 10 In_CHANGE_CIPHER_SPEC = 30
-    delta 10 In_FINISHED = 17
-    delta 10 In_APPLICATION = 10
-    delta 10 In_CERTIFICATE = 18
-    delta 10 In_EMPTY_CERTIFICATE = 18
-    delta 10 In_CERTIFICATE_VERIFY = 19
-    delta 10 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 10 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 34 In_RSA_CLIENT_HELLO = 11
-    delta 34 In_RSA_CLIENT_KEY_EXCHANGE = 32
-    delta 34 In_CHANGE_CIPHER_SPEC = 30
-    delta 34 In_FINISHED = 65
-    delta 34 In_APPLICATION = 34
-    delta 34 In_CERTIFICATE = 11
-    delta 34 In_EMPTY_CERTIFICATE = 11
-    delta 34 In_CERTIFICATE_VERIFY = 63
-    delta 34 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 34 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 56 In_RSA_CLIENT_HELLO = 66
-    delta 56 In_RSA_CLIENT_KEY_EXCHANGE = 11
-    delta 56 In_CHANGE_CIPHER_SPEC = 30
-    delta 56 In_FINISHED = 67
-    delta 56 In_APPLICATION = 11
-    delta 56 In_CERTIFICATE = 11
-    delta 56 In_EMPTY_CERTIFICATE = 11
-    delta 56 In_CERTIFICATE_VERIFY = 11
-    delta 56 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 56 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 19 In_RSA_CLIENT_HELLO = 33
-    delta 19 In_RSA_CLIENT_KEY_EXCHANGE = 11
-    delta 19 In_CHANGE_CIPHER_SPEC = 30
-    delta 19 In_FINISHED = 68
-    delta 19 In_APPLICATION = 19
-    delta 19 In_CERTIFICATE = 42
-    delta 19 In_EMPTY_CERTIFICATE = 42
-    delta 19 In_CERTIFICATE_VERIFY = 11
-    delta 19 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 19 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 46 In_RSA_CLIENT_HELLO = 69
-    delta 46 In_RSA_CLIENT_KEY_EXCHANGE = 4
-    delta 46 In_CHANGE_CIPHER_SPEC = 21
-    delta 46 In_FINISHED = 4
-    delta 46 In_APPLICATION = 46
-    delta 46 In_CERTIFICATE = 4
-    delta 46 In_EMPTY_CERTIFICATE = 4
-    delta 46 In_CERTIFICATE_VERIFY = 52
-    delta 46 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 46 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 54 In_RSA_CLIENT_HELLO = 11
-    delta 54 In_RSA_CLIENT_KEY_EXCHANGE = 11
-    delta 54 In_CHANGE_CIPHER_SPEC = 30
-    delta 54 In_FINISHED = 70
-    delta 54 In_APPLICATION = 11
-    delta 54 In_CERTIFICATE = 11
-    delta 54 In_EMPTY_CERTIFICATE = 11
-    delta 54 In_CERTIFICATE_VERIFY = 66
-    delta 54 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 54 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 25 In_RSA_CLIENT_HELLO = 71
-    delta 25 In_RSA_CLIENT_KEY_EXCHANGE = 46
-    delta 25 In_CHANGE_CIPHER_SPEC = 21
-    delta 25 In_FINISHED = 4
-    delta 25 In_APPLICATION = 25
-    delta 25 In_CERTIFICATE = 4
-    delta 25 In_EMPTY_CERTIFICATE = 4
-    delta 25 In_CERTIFICATE_VERIFY = 62
-    delta 25 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 25 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 28 In_RSA_CLIENT_HELLO = 72
-    delta 28 In_RSA_CLIENT_KEY_EXCHANGE = 4
-    delta 28 In_CHANGE_CIPHER_SPEC = 21
-    delta 28 In_FINISHED = 4
-    delta 28 In_APPLICATION = 28
-    delta 28 In_CERTIFICATE = 52
-    delta 28 In_EMPTY_CERTIFICATE = 52
-    delta 28 In_CERTIFICATE_VERIFY = 4
-    delta 28 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 28 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 52 In_RSA_CLIENT_HELLO = 73
-    delta 52 In_RSA_CLIENT_KEY_EXCHANGE = 4
-    delta 52 In_CHANGE_CIPHER_SPEC = 21
-    delta 52 In_FINISHED = 4
-    delta 52 In_APPLICATION = 52
-    delta 52 In_CERTIFICATE = 4
-    delta 52 In_EMPTY_CERTIFICATE = 4
-    delta 52 In_CERTIFICATE_VERIFY = 4
-    delta 52 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 52 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 45 In_RSA_CLIENT_HELLO = 4
-    delta 45 In_RSA_CLIENT_KEY_EXCHANGE = 4
-    delta 45 In_CHANGE_CIPHER_SPEC = 21
-    delta 45 In_FINISHED = 4
-    delta 45 In_APPLICATION = 45
-    delta 45 In_CERTIFICATE = 69
-    delta 45 In_EMPTY_CERTIFICATE = 69
-    delta 45 In_CERTIFICATE_VERIFY = 72
-    delta 45 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 45 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 17 In_RSA_CLIENT_HELLO = 31
-    delta 17 In_RSA_CLIENT_KEY_EXCHANGE = 11
-    delta 17 In_CHANGE_CIPHER_SPEC = 30
-    delta 17 In_FINISHED = 11
-    delta 17 In_APPLICATION = 17
-    delta 17 In_CERTIFICATE = 41
-    delta 17 In_EMPTY_CERTIFICATE = 41
-    delta 17 In_CERTIFICATE_VERIFY = 68
-    delta 17 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 17 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 43 In_RSA_CLIENT_HELLO = 43
-    delta 43 In_RSA_CLIENT_KEY_EXCHANGE = 4
-    delta 43 In_CHANGE_CIPHER_SPEC = 3
-    delta 43 In_FINISHED = 43
-    delta 43 In_APPLICATION = 43
-    delta 43 In_CERTIFICATE = 4
-    delta 43 In_EMPTY_CERTIFICATE = 4
-    delta 43 In_CERTIFICATE_VERIFY = 29
-    delta 43 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 43 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 27 In_RSA_CLIENT_HELLO = 4
-    delta 27 In_RSA_CLIENT_KEY_EXCHANGE = 4
-    delta 27 In_CHANGE_CIPHER_SPEC = 21
-    delta 27 In_FINISHED = 72
-    delta 27 In_APPLICATION = 27
-    delta 27 In_CERTIFICATE = 51
-    delta 27 In_EMPTY_CERTIFICATE = 51
-    delta 27 In_CERTIFICATE_VERIFY = 4
-    delta 27 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 27 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 59 In_RSA_CLIENT_HELLO = 4
-    delta 59 In_RSA_CLIENT_KEY_EXCHANGE = 4
-    delta 59 In_CHANGE_CIPHER_SPEC = 21
-    delta 59 In_FINISHED = 69
-    delta 59 In_APPLICATION = 59
-    delta 59 In_CERTIFICATE = 4
-    delta 59 In_EMPTY_CERTIFICATE = 4
-    delta 59 In_CERTIFICATE_VERIFY = 51
-    delta 59 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 59 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 41 In_RSA_CLIENT_HELLO = 47
-    delta 41 In_RSA_CLIENT_KEY_EXCHANGE = 11
-    delta 41 In_CHANGE_CIPHER_SPEC = 30
-    delta 41 In_FINISHED = 11
-    delta 41 In_APPLICATION = 41
-    delta 41 In_CERTIFICATE = 11
-    delta 41 In_EMPTY_CERTIFICATE = 11
-    delta 41 In_CERTIFICATE_VERIFY = 60
-    delta 41 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 41 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 31 In_RSA_CLIENT_HELLO = 11
-    delta 31 In_RSA_CLIENT_KEY_EXCHANGE = 11
-    delta 31 In_CHANGE_CIPHER_SPEC = 30
-    delta 31 In_FINISHED = 11
-    delta 31 In_APPLICATION = 31
-    delta 31 In_CERTIFICATE = 47
-    delta 31 In_EMPTY_CERTIFICATE = 47
-    delta 31 In_CERTIFICATE_VERIFY = 53
-    delta 31 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 31 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 36 In_RSA_CLIENT_HELLO = 63
-    delta 36 In_RSA_CLIENT_KEY_EXCHANGE = 42
-    delta 36 In_CHANGE_CIPHER_SPEC = 30
-    delta 36 In_FINISHED = 74
-    delta 36 In_APPLICATION = 36
-    delta 36 In_CERTIFICATE = 11
-    delta 36 In_EMPTY_CERTIFICATE = 11
-    delta 36 In_CERTIFICATE_VERIFY = 11
-    delta 36 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 36 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 68 In_RSA_CLIENT_HELLO = 53
-    delta 68 In_RSA_CLIENT_KEY_EXCHANGE = 11
-    delta 68 In_CHANGE_CIPHER_SPEC = 30
-    delta 68 In_FINISHED = 11
-    delta 68 In_APPLICATION = 68
-    delta 68 In_CERTIFICATE = 60
-    delta 68 In_EMPTY_CERTIFICATE = 60
-    delta 68 In_CERTIFICATE_VERIFY = 11
-    delta 68 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 68 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 53 In_RSA_CLIENT_HELLO = 11
-    delta 53 In_RSA_CLIENT_KEY_EXCHANGE = 11
-    delta 53 In_CHANGE_CIPHER_SPEC = 30
-    delta 53 In_FINISHED = 11
-    delta 53 In_APPLICATION = 53
-    delta 53 In_CERTIFICATE = 64
-    delta 53 In_EMPTY_CERTIFICATE = 64
-    delta 53 In_CERTIFICATE_VERIFY = 11
-    delta 53 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 53 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 63 In_RSA_CLIENT_HELLO = 11
-    delta 63 In_RSA_CLIENT_KEY_EXCHANGE = 48
-    delta 63 In_CHANGE_CIPHER_SPEC = 30
-    delta 63 In_FINISHED = 75
-    delta 63 In_APPLICATION = 63
-    delta 63 In_CERTIFICATE = 11
-    delta 63 In_EMPTY_CERTIFICATE = 11
-    delta 63 In_CERTIFICATE_VERIFY = 11
-    delta 63 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 63 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 51 In_RSA_CLIENT_HELLO = 4
-    delta 51 In_RSA_CLIENT_KEY_EXCHANGE = 4
-    delta 51 In_CHANGE_CIPHER_SPEC = 21
-    delta 51 In_FINISHED = 73
-    delta 51 In_APPLICATION = 51
-    delta 51 In_CERTIFICATE = 4
-    delta 51 In_EMPTY_CERTIFICATE = 4
-    delta 51 In_CERTIFICATE_VERIFY = 4
-    delta 51 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 51 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 67 In_RSA_CLIENT_HELLO = 76
-    delta 67 In_RSA_CLIENT_KEY_EXCHANGE = 11
-    delta 67 In_CHANGE_CIPHER_SPEC = 30
-    delta 67 In_FINISHED = 11
-    delta 67 In_APPLICATION = 11
-    delta 67 In_CERTIFICATE = 11
-    delta 67 In_EMPTY_CERTIFICATE = 11
-    delta 67 In_CERTIFICATE_VERIFY = 11
-    delta 67 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 67 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 75 In_RSA_CLIENT_HELLO = 11
-    delta 75 In_RSA_CLIENT_KEY_EXCHANGE = 64
-    delta 75 In_CHANGE_CIPHER_SPEC = 30
-    delta 75 In_FINISHED = 11
-    delta 75 In_APPLICATION = 75
-    delta 75 In_CERTIFICATE = 11
-    delta 75 In_EMPTY_CERTIFICATE = 11
-    delta 75 In_CERTIFICATE_VERIFY = 11
-    delta 75 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 75 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 70 In_RSA_CLIENT_HELLO = 11
-    delta 70 In_RSA_CLIENT_KEY_EXCHANGE = 11
-    delta 70 In_CHANGE_CIPHER_SPEC = 30
-    delta 70 In_FINISHED = 11
-    delta 70 In_APPLICATION = 11
-    delta 70 In_CERTIFICATE = 11
-    delta 70 In_EMPTY_CERTIFICATE = 11
-    delta 70 In_CERTIFICATE_VERIFY = 76
-    delta 70 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 70 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 35 In_RSA_CLIENT_HELLO = 65
-    delta 35 In_RSA_CLIENT_KEY_EXCHANGE = 41
-    delta 35 In_CHANGE_CIPHER_SPEC = 30
-    delta 35 In_FINISHED = 11
-    delta 35 In_APPLICATION = 35
-    delta 35 In_CERTIFICATE = 11
-    delta 35 In_EMPTY_CERTIFICATE = 11
-    delta 35 In_CERTIFICATE_VERIFY = 74
-    delta 35 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 35 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 55 In_RSA_CLIENT_HELLO = 70
-    delta 55 In_RSA_CLIENT_KEY_EXCHANGE = 11
-    delta 55 In_CHANGE_CIPHER_SPEC = 30
-    delta 55 In_FINISHED = 11
-    delta 55 In_APPLICATION = 11
-    delta 55 In_CERTIFICATE = 11
-    delta 55 In_EMPTY_CERTIFICATE = 11
-    delta 55 In_CERTIFICATE_VERIFY = 67
-    delta 55 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 55 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 57 In_RSA_CLIENT_HELLO = 11
-    delta 57 In_RSA_CLIENT_KEY_EXCHANGE = 11
-    delta 57 In_CHANGE_CIPHER_SPEC = 30
-    delta 57 In_FINISHED = 53
-    delta 57 In_APPLICATION = 11
-    delta 57 In_CERTIFICATE = 66
-    delta 57 In_EMPTY_CERTIFICATE = 66
-    delta 57 In_CERTIFICATE_VERIFY = 11
-    delta 57 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 57 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 60 In_RSA_CLIENT_HELLO = 64
-    delta 60 In_RSA_CLIENT_KEY_EXCHANGE = 11
-    delta 60 In_CHANGE_CIPHER_SPEC = 30
-    delta 60 In_FINISHED = 11
-    delta 60 In_APPLICATION = 60
-    delta 60 In_CERTIFICATE = 11
-    delta 60 In_EMPTY_CERTIFICATE = 11
-    delta 60 In_CERTIFICATE_VERIFY = 11
-    delta 60 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 60 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 47 In_RSA_CLIENT_HELLO = 11
-    delta 47 In_RSA_CLIENT_KEY_EXCHANGE = 11
-    delta 47 In_CHANGE_CIPHER_SPEC = 30
-    delta 47 In_FINISHED = 11
-    delta 47 In_APPLICATION = 47
-    delta 47 In_CERTIFICATE = 11
-    delta 47 In_EMPTY_CERTIFICATE = 11
-    delta 47 In_CERTIFICATE_VERIFY = 64
-    delta 47 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 47 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 64 In_RSA_CLIENT_HELLO = 11
-    delta 64 In_RSA_CLIENT_KEY_EXCHANGE = 11
-    delta 64 In_CHANGE_CIPHER_SPEC = 30
-    delta 64 In_FINISHED = 11
-    delta 64 In_APPLICATION = 64
-    delta 64 In_CERTIFICATE = 11
-    delta 64 In_EMPTY_CERTIFICATE = 11
-    delta 64 In_CERTIFICATE_VERIFY = 11
-    delta 64 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 64 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 66 In_RSA_CLIENT_HELLO = 11
-    delta 66 In_RSA_CLIENT_KEY_EXCHANGE = 11
-    delta 66 In_CHANGE_CIPHER_SPEC = 30
-    delta 66 In_FINISHED = 76
-    delta 66 In_APPLICATION = 11
-    delta 66 In_CERTIFICATE = 11
-    delta 66 In_EMPTY_CERTIFICATE = 11
-    delta 66 In_CERTIFICATE_VERIFY = 11
-    delta 66 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 66 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 74 In_RSA_CLIENT_HELLO = 75
-    delta 74 In_RSA_CLIENT_KEY_EXCHANGE = 60
-    delta 74 In_CHANGE_CIPHER_SPEC = 30
-    delta 74 In_FINISHED = 11
-    delta 74 In_APPLICATION = 74
-    delta 74 In_CERTIFICATE = 11
-    delta 74 In_EMPTY_CERTIFICATE = 11
-    delta 74 In_CERTIFICATE_VERIFY = 11
-    delta 74 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 74 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 69 In_RSA_CLIENT_HELLO = 4
-    delta 69 In_RSA_CLIENT_KEY_EXCHANGE = 4
-    delta 69 In_CHANGE_CIPHER_SPEC = 21
-    delta 69 In_FINISHED = 4
-    delta 69 In_APPLICATION = 69
-    delta 69 In_CERTIFICATE = 4
-    delta 69 In_EMPTY_CERTIFICATE = 4
-    delta 69 In_CERTIFICATE_VERIFY = 73
-    delta 69 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 69 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 71 In_RSA_CLIENT_HELLO = 4
-    delta 71 In_RSA_CLIENT_KEY_EXCHANGE = 69
-    delta 71 In_CHANGE_CIPHER_SPEC = 21
-    delta 71 In_FINISHED = 4
-    delta 71 In_APPLICATION = 71
-    delta 71 In_CERTIFICATE = 4
-    delta 71 In_EMPTY_CERTIFICATE = 4
-    delta 71 In_CERTIFICATE_VERIFY = 77
-    delta 71 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 71 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 72 In_RSA_CLIENT_HELLO = 4
-    delta 72 In_RSA_CLIENT_KEY_EXCHANGE = 4
-    delta 72 In_CHANGE_CIPHER_SPEC = 21
-    delta 72 In_FINISHED = 4
-    delta 72 In_APPLICATION = 72
-    delta 72 In_CERTIFICATE = 73
-    delta 72 In_EMPTY_CERTIFICATE = 73
-    delta 72 In_CERTIFICATE_VERIFY = 4
-    delta 72 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 72 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 73 In_RSA_CLIENT_HELLO = 4
-    delta 73 In_RSA_CLIENT_KEY_EXCHANGE = 4
-    delta 73 In_CHANGE_CIPHER_SPEC = 21
-    delta 73 In_FINISHED = 4
-    delta 73 In_APPLICATION = 73
-    delta 73 In_CERTIFICATE = 4
-    delta 73 In_EMPTY_CERTIFICATE = 4
-    delta 73 In_CERTIFICATE_VERIFY = 4
-    delta 73 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 73 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 61 In_RSA_CLIENT_HELLO = 4
-    delta 61 In_RSA_CLIENT_KEY_EXCHANGE = 51
-    delta 61 In_CHANGE_CIPHER_SPEC = 21
-    delta 61 In_FINISHED = 77
-    delta 61 In_APPLICATION = 61
-    delta 61 In_CERTIFICATE = 4
-    delta 61 In_EMPTY_CERTIFICATE = 4
-    delta 61 In_CERTIFICATE_VERIFY = 4
-    delta 61 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 61 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 37 In_RSA_CLIENT_HELLO = 11
-    delta 37 In_RSA_CLIENT_KEY_EXCHANGE = 11
-    delta 37 In_CHANGE_CIPHER_SPEC = 30
-    delta 37 In_FINISHED = 78
-    delta 37 In_APPLICATION = 11
-    delta 37 In_CERTIFICATE = 54
-    delta 37 In_EMPTY_CERTIFICATE = 54
-    delta 37 In_CERTIFICATE_VERIFY = 57
-    delta 37 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 37 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 78 In_RSA_CLIENT_HELLO = 11
-    delta 78 In_RSA_CLIENT_KEY_EXCHANGE = 11
-    delta 78 In_CHANGE_CIPHER_SPEC = 30
-    delta 78 In_FINISHED = 11
-    delta 78 In_APPLICATION = 11
-    delta 78 In_CERTIFICATE = 70
-    delta 78 In_EMPTY_CERTIFICATE = 70
-    delta 78 In_CERTIFICATE_VERIFY = 53
-    delta 78 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 78 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 62 In_RSA_CLIENT_HELLO = 77
-    delta 62 In_RSA_CLIENT_KEY_EXCHANGE = 52
-    delta 62 In_CHANGE_CIPHER_SPEC = 21
-    delta 62 In_FINISHED = 4
-    delta 62 In_APPLICATION = 62
-    delta 62 In_CERTIFICATE = 4
-    delta 62 In_EMPTY_CERTIFICATE = 4
-    delta 62 In_CERTIFICATE_VERIFY = 4
-    delta 62 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 62 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 65 In_RSA_CLIENT_HELLO = 11
-    delta 65 In_RSA_CLIENT_KEY_EXCHANGE = 47
-    delta 65 In_CHANGE_CIPHER_SPEC = 30
-    delta 65 In_FINISHED = 11
-    delta 65 In_APPLICATION = 65
-    delta 65 In_CERTIFICATE = 11
-    delta 65 In_EMPTY_CERTIFICATE = 11
-    delta 65 In_CERTIFICATE_VERIFY = 75
-    delta 65 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 65 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 77 In_RSA_CLIENT_HELLO = 4
-    delta 77 In_RSA_CLIENT_KEY_EXCHANGE = 73
-    delta 77 In_CHANGE_CIPHER_SPEC = 21
-    delta 77 In_FINISHED = 4
-    delta 77 In_APPLICATION = 77
-    delta 77 In_CERTIFICATE = 4
-    delta 77 In_EMPTY_CERTIFICATE = 4
-    delta 77 In_CERTIFICATE_VERIFY = 4
-    delta 77 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 77 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 76 In_RSA_CLIENT_HELLO = 11
-    delta 76 In_RSA_CLIENT_KEY_EXCHANGE = 11
-    delta 76 In_CHANGE_CIPHER_SPEC = 30
-    delta 76 In_FINISHED = 11
-    delta 76 In_APPLICATION = 11
-    delta 76 In_CERTIFICATE = 11
-    delta 76 In_EMPTY_CERTIFICATE = 11
-    delta 76 In_CERTIFICATE_VERIFY = 11
-    delta 76 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 76 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 58 In_RSA_CLIENT_HELLO = 53
-    delta 58 In_RSA_CLIENT_KEY_EXCHANGE = 11
-    delta 58 In_CHANGE_CIPHER_SPEC = 30
-    delta 58 In_FINISHED = 11
-    delta 58 In_APPLICATION = 11
-    delta 58 In_CERTIFICATE = 67
-    delta 58 In_EMPTY_CERTIFICATE = 67
-    delta 58 In_CERTIFICATE_VERIFY = 11
-    delta 58 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 58 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 50 In_RSA_CLIENT_HELLO = 49
-    delta 50 In_RSA_CLIENT_KEY_EXCHANGE = 11
-    delta 50 In_CHANGE_CIPHER_SPEC = 3
-    delta 50 In_FINISHED = 50
-    delta 50 In_APPLICATION = 50
-    delta 50 In_CERTIFICATE = 11
-    delta 50 In_EMPTY_CERTIFICATE = 11
-    delta 50 In_CERTIFICATE_VERIFY = 42
-    delta 50 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 50 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 44 In_RSA_CLIENT_HELLO = 44
-    delta 44 In_RSA_CLIENT_KEY_EXCHANGE = 43
-    delta 44 In_CHANGE_CIPHER_SPEC = 3
-    delta 44 In_FINISHED = 4
-    delta 44 In_APPLICATION = 44
-    delta 44 In_CERTIFICATE = 4
-    delta 44 In_EMPTY_CERTIFICATE = 4
-    delta 44 In_CERTIFICATE_VERIFY = 62
-    delta 44 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 44 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta _ _ = error "haal-gen: undefined transition"
-    lambda 0 In_RSA_CLIENT_HELLO = Out_HELLO_VERIFY_REQUEST
-    lambda 0 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 0 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 0 In_FINISHED = Out_TIMEOUT
-    lambda 0 In_APPLICATION = Out_TIMEOUT
-    lambda 0 In_CERTIFICATE = Out_TIMEOUT
-    lambda 0 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 0 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 0 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 0 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 7 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 7 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 7 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 7 In_FINISHED = Out_TIMEOUT
-    lambda 7 In_APPLICATION = Out_TIMEOUT
-    lambda 7 In_CERTIFICATE = Out_TIMEOUT
-    lambda 7 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 7 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 7 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 7 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 8 In_RSA_CLIENT_HELLO = Out_SOCKET_CLOSED
-    lambda 8 In_RSA_CLIENT_KEY_EXCHANGE = Out_SOCKET_CLOSED
-    lambda 8 In_CHANGE_CIPHER_SPEC = Out_SOCKET_CLOSED
-    lambda 8 In_FINISHED = Out_SOCKET_CLOSED
-    lambda 8 In_APPLICATION = Out_SOCKET_CLOSED
-    lambda 8 In_CERTIFICATE = Out_SOCKET_CLOSED
-    lambda 8 In_EMPTY_CERTIFICATE = Out_SOCKET_CLOSED
-    lambda 8 In_CERTIFICATE_VERIFY = Out_SOCKET_CLOSED
-    lambda 8 In_Alert_WARNING_CLOSE_NOTIFY = Out_SOCKET_CLOSED
-    lambda 8 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_SOCKET_CLOSED
-    lambda 1 In_RSA_CLIENT_HELLO = Out_SERVER_HELLO_CERTIFICATE_SERVER_HELLO_DONE
-    lambda 1 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 1 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 1 In_FINISHED = Out_TIMEOUT
-    lambda 1 In_APPLICATION = Out_TIMEOUT
-    lambda 1 In_CERTIFICATE = Out_TIMEOUT
-    lambda 1 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 1 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 1 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 1 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 9 In_RSA_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 9 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 9 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 9 In_FINISHED = Out_TIMEOUT
-    lambda 9 In_APPLICATION = Out_TIMEOUT
-    lambda 9 In_CERTIFICATE = Out_TIMEOUT
-    lambda 9 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 9 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 9 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 9 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 4 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 4 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 4 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 4 In_FINISHED = Out_TIMEOUT
-    lambda 4 In_APPLICATION = Out_TIMEOUT
-    lambda 4 In_CERTIFICATE = Out_TIMEOUT
-    lambda 4 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 4 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 4 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 4 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 3 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 3 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 3 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 3 In_FINISHED = Out_TIMEOUT
-    lambda 3 In_APPLICATION = Out_TIMEOUT
-    lambda 3 In_CERTIFICATE = Out_TIMEOUT
-    lambda 3 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 3 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 3 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 3 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 14 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 14 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 14 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 14 In_FINISHED = Out_TIMEOUT
-    lambda 14 In_APPLICATION = Out_TIMEOUT
-    lambda 14 In_CERTIFICATE = Out_TIMEOUT
-    lambda 14 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 14 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 14 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 14 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 2 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 2 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 2 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 2 In_FINISHED = Out_TIMEOUT
-    lambda 2 In_APPLICATION = Out_TIMEOUT
-    lambda 2 In_CERTIFICATE = Out_TIMEOUT
-    lambda 2 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 2 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 2 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 2 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 21 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 21 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 21 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 21 In_FINISHED = Out_TIMEOUT
-    lambda 21 In_APPLICATION = Out_TIMEOUT
-    lambda 21 In_CERTIFICATE = Out_TIMEOUT
-    lambda 21 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 21 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 21 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 21 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 6 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 6 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 6 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 6 In_FINISHED = Out_TIMEOUT
-    lambda 6 In_APPLICATION = Out_TIMEOUT
-    lambda 6 In_CERTIFICATE = Out_TIMEOUT
-    lambda 6 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 6 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 6 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 6 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 24 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 24 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 24 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 24 In_FINISHED = Out_TIMEOUT
-    lambda 24 In_APPLICATION = Out_TIMEOUT
-    lambda 24 In_CERTIFICATE = Out_TIMEOUT
-    lambda 24 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 24 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 24 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 24 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 15 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 15 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 15 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 15 In_FINISHED = Out_TIMEOUT
-    lambda 15 In_APPLICATION = Out_TIMEOUT
-    lambda 15 In_CERTIFICATE = Out_TIMEOUT
-    lambda 15 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 15 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 15 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 15 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 13 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 13 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 13 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 13 In_FINISHED = Out_TIMEOUT
-    lambda 13 In_APPLICATION = Out_TIMEOUT
-    lambda 13 In_CERTIFICATE = Out_TIMEOUT
-    lambda 13 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 13 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 13 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 13 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 30 In_RSA_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 30 In_RSA_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 30 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 30 In_FINISHED = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 30 In_APPLICATION = Out_TIMEOUT
-    lambda 30 In_CERTIFICATE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 30 In_EMPTY_CERTIFICATE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 30 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 30 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 30 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 11 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 11 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 11 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 11 In_FINISHED = Out_TIMEOUT
-    lambda 11 In_APPLICATION = Out_TIMEOUT
-    lambda 11 In_CERTIFICATE = Out_TIMEOUT
-    lambda 11 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 11 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 11 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 11 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 16 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 16 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 16 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 16 In_FINISHED = Out_CHANGE_CIPHER_SPEC_FINISHED_CHANGE_CIPHER_SPEC_FINISHED
-    lambda 16 In_APPLICATION = Out_TIMEOUT
-    lambda 16 In_CERTIFICATE = Out_TIMEOUT
-    lambda 16 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 16 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 16 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 16 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 38 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 38 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 38 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 38 In_FINISHED = Out_TIMEOUT
-    lambda 38 In_APPLICATION = Out_APPLICATION
-    lambda 38 In_CERTIFICATE = Out_TIMEOUT
-    lambda 38 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 38 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 38 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 38 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 18 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 18 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 18 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 18 In_FINISHED = Out_TIMEOUT
-    lambda 18 In_APPLICATION = Out_TIMEOUT
-    lambda 18 In_CERTIFICATE = Out_TIMEOUT
-    lambda 18 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 18 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 18 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 18 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 5 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 5 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 5 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 5 In_FINISHED = Out_TIMEOUT
-    lambda 5 In_APPLICATION = Out_TIMEOUT
-    lambda 5 In_CERTIFICATE = Out_TIMEOUT
-    lambda 5 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 5 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 5 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 5 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 22 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 22 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 22 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 22 In_FINISHED = Out_TIMEOUT
-    lambda 22 In_APPLICATION = Out_TIMEOUT
-    lambda 22 In_CERTIFICATE = Out_TIMEOUT
-    lambda 22 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 22 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 22 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 22 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 32 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 32 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 32 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 32 In_FINISHED = Out_TIMEOUT
-    lambda 32 In_APPLICATION = Out_TIMEOUT
-    lambda 32 In_CERTIFICATE = Out_TIMEOUT
-    lambda 32 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 32 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 32 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 32 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 12 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 12 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 12 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 12 In_FINISHED = Out_TIMEOUT
-    lambda 12 In_APPLICATION = Out_TIMEOUT
-    lambda 12 In_CERTIFICATE = Out_TIMEOUT
-    lambda 12 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 12 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 12 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 12 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 29 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 29 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 29 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 29 In_FINISHED = Out_TIMEOUT
-    lambda 29 In_APPLICATION = Out_TIMEOUT
-    lambda 29 In_CERTIFICATE = Out_TIMEOUT
-    lambda 29 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 29 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 29 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 29 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 33 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 33 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 33 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 33 In_FINISHED = Out_TIMEOUT
-    lambda 33 In_APPLICATION = Out_TIMEOUT
-    lambda 33 In_CERTIFICATE = Out_TIMEOUT
-    lambda 33 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 33 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 33 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 33 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 39 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 39 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 39 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 39 In_FINISHED = Out_TIMEOUT
-    lambda 39 In_APPLICATION = Out_TIMEOUT
-    lambda 39 In_CERTIFICATE = Out_TIMEOUT
-    lambda 39 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 39 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 39 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 39 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 40 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 40 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 40 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 40 In_FINISHED = Out_TIMEOUT
-    lambda 40 In_APPLICATION = Out_TIMEOUT
-    lambda 40 In_CERTIFICATE = Out_TIMEOUT
-    lambda 40 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 40 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 40 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 40 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 23 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 23 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 23 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 23 In_FINISHED = Out_TIMEOUT
-    lambda 23 In_APPLICATION = Out_TIMEOUT
-    lambda 23 In_CERTIFICATE = Out_TIMEOUT
-    lambda 23 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 23 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 23 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 23 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 42 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 42 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 42 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 42 In_FINISHED = Out_TIMEOUT
-    lambda 42 In_APPLICATION = Out_TIMEOUT
-    lambda 42 In_CERTIFICATE = Out_TIMEOUT
-    lambda 42 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 42 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 42 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 42 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 20 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 20 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 20 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 20 In_FINISHED = Out_TIMEOUT
-    lambda 20 In_APPLICATION = Out_TIMEOUT
-    lambda 20 In_CERTIFICATE = Out_TIMEOUT
-    lambda 20 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 20 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 20 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 20 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 26 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 26 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 26 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 26 In_FINISHED = Out_TIMEOUT
-    lambda 26 In_APPLICATION = Out_TIMEOUT
-    lambda 26 In_CERTIFICATE = Out_TIMEOUT
-    lambda 26 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 26 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 26 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 26 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 49 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 49 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 49 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 49 In_FINISHED = Out_TIMEOUT
-    lambda 49 In_APPLICATION = Out_TIMEOUT
-    lambda 49 In_CERTIFICATE = Out_TIMEOUT
-    lambda 49 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 49 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 49 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 49 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 48 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 48 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 48 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 48 In_FINISHED = Out_TIMEOUT
-    lambda 48 In_APPLICATION = Out_TIMEOUT
-    lambda 48 In_CERTIFICATE = Out_TIMEOUT
-    lambda 48 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 48 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 48 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 48 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 10 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 10 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 10 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 10 In_FINISHED = Out_TIMEOUT
-    lambda 10 In_APPLICATION = Out_TIMEOUT
-    lambda 10 In_CERTIFICATE = Out_TIMEOUT
-    lambda 10 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 10 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 10 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 10 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 34 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 34 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 34 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 34 In_FINISHED = Out_TIMEOUT
-    lambda 34 In_APPLICATION = Out_TIMEOUT
-    lambda 34 In_CERTIFICATE = Out_TIMEOUT
-    lambda 34 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 34 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 34 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 34 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 56 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 56 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 56 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 56 In_FINISHED = Out_TIMEOUT
-    lambda 56 In_APPLICATION = Out_TIMEOUT
-    lambda 56 In_CERTIFICATE = Out_TIMEOUT
-    lambda 56 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 56 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 56 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 56 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 19 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 19 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 19 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 19 In_FINISHED = Out_TIMEOUT
-    lambda 19 In_APPLICATION = Out_TIMEOUT
-    lambda 19 In_CERTIFICATE = Out_TIMEOUT
-    lambda 19 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 19 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 19 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 19 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 46 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 46 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 46 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 46 In_FINISHED = Out_TIMEOUT
-    lambda 46 In_APPLICATION = Out_TIMEOUT
-    lambda 46 In_CERTIFICATE = Out_TIMEOUT
-    lambda 46 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 46 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 46 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 46 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 54 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 54 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 54 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 54 In_FINISHED = Out_TIMEOUT
-    lambda 54 In_APPLICATION = Out_TIMEOUT
-    lambda 54 In_CERTIFICATE = Out_TIMEOUT
-    lambda 54 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 54 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 54 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 54 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 25 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 25 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 25 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 25 In_FINISHED = Out_TIMEOUT
-    lambda 25 In_APPLICATION = Out_TIMEOUT
-    lambda 25 In_CERTIFICATE = Out_TIMEOUT
-    lambda 25 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 25 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 25 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 25 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 28 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 28 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 28 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 28 In_FINISHED = Out_TIMEOUT
-    lambda 28 In_APPLICATION = Out_TIMEOUT
-    lambda 28 In_CERTIFICATE = Out_TIMEOUT
-    lambda 28 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 28 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 28 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 28 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 52 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 52 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 52 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 52 In_FINISHED = Out_TIMEOUT
-    lambda 52 In_APPLICATION = Out_TIMEOUT
-    lambda 52 In_CERTIFICATE = Out_TIMEOUT
-    lambda 52 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 52 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 52 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 52 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 45 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 45 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 45 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 45 In_FINISHED = Out_TIMEOUT
-    lambda 45 In_APPLICATION = Out_TIMEOUT
-    lambda 45 In_CERTIFICATE = Out_TIMEOUT
-    lambda 45 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 45 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 45 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 45 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 17 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 17 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 17 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 17 In_FINISHED = Out_TIMEOUT
-    lambda 17 In_APPLICATION = Out_TIMEOUT
-    lambda 17 In_CERTIFICATE = Out_TIMEOUT
-    lambda 17 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 17 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 17 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 17 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 43 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 43 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 43 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 43 In_FINISHED = Out_TIMEOUT
-    lambda 43 In_APPLICATION = Out_TIMEOUT
-    lambda 43 In_CERTIFICATE = Out_TIMEOUT
-    lambda 43 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 43 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 43 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 43 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 27 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 27 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 27 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 27 In_FINISHED = Out_TIMEOUT
-    lambda 27 In_APPLICATION = Out_TIMEOUT
-    lambda 27 In_CERTIFICATE = Out_TIMEOUT
-    lambda 27 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 27 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 27 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 27 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 59 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 59 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 59 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 59 In_FINISHED = Out_TIMEOUT
-    lambda 59 In_APPLICATION = Out_TIMEOUT
-    lambda 59 In_CERTIFICATE = Out_TIMEOUT
-    lambda 59 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 59 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 59 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 59 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 41 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 41 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 41 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 41 In_FINISHED = Out_TIMEOUT
-    lambda 41 In_APPLICATION = Out_TIMEOUT
-    lambda 41 In_CERTIFICATE = Out_TIMEOUT
-    lambda 41 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 41 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 41 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 41 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 31 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 31 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 31 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 31 In_FINISHED = Out_TIMEOUT
-    lambda 31 In_APPLICATION = Out_TIMEOUT
-    lambda 31 In_CERTIFICATE = Out_TIMEOUT
-    lambda 31 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 31 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 31 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 31 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 36 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 36 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 36 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 36 In_FINISHED = Out_TIMEOUT
-    lambda 36 In_APPLICATION = Out_TIMEOUT
-    lambda 36 In_CERTIFICATE = Out_TIMEOUT
-    lambda 36 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 36 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 36 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 36 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 68 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 68 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 68 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 68 In_FINISHED = Out_TIMEOUT
-    lambda 68 In_APPLICATION = Out_TIMEOUT
-    lambda 68 In_CERTIFICATE = Out_TIMEOUT
-    lambda 68 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 68 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 68 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 68 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 53 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 53 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 53 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 53 In_FINISHED = Out_TIMEOUT
-    lambda 53 In_APPLICATION = Out_TIMEOUT
-    lambda 53 In_CERTIFICATE = Out_TIMEOUT
-    lambda 53 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 53 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 53 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 53 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 63 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 63 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 63 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 63 In_FINISHED = Out_TIMEOUT
-    lambda 63 In_APPLICATION = Out_TIMEOUT
-    lambda 63 In_CERTIFICATE = Out_TIMEOUT
-    lambda 63 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 63 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 63 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 63 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 51 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 51 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 51 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 51 In_FINISHED = Out_TIMEOUT
-    lambda 51 In_APPLICATION = Out_TIMEOUT
-    lambda 51 In_CERTIFICATE = Out_TIMEOUT
-    lambda 51 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 51 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 51 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 51 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 67 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 67 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 67 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 67 In_FINISHED = Out_TIMEOUT
-    lambda 67 In_APPLICATION = Out_TIMEOUT
-    lambda 67 In_CERTIFICATE = Out_TIMEOUT
-    lambda 67 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 67 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 67 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 67 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 75 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 75 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 75 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 75 In_FINISHED = Out_TIMEOUT
-    lambda 75 In_APPLICATION = Out_TIMEOUT
-    lambda 75 In_CERTIFICATE = Out_TIMEOUT
-    lambda 75 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 75 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 75 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 75 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 70 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 70 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 70 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 70 In_FINISHED = Out_TIMEOUT
-    lambda 70 In_APPLICATION = Out_TIMEOUT
-    lambda 70 In_CERTIFICATE = Out_TIMEOUT
-    lambda 70 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 70 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 70 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 70 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 35 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 35 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 35 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 35 In_FINISHED = Out_TIMEOUT
-    lambda 35 In_APPLICATION = Out_TIMEOUT
-    lambda 35 In_CERTIFICATE = Out_TIMEOUT
-    lambda 35 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 35 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 35 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 35 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 55 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 55 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 55 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 55 In_FINISHED = Out_TIMEOUT
-    lambda 55 In_APPLICATION = Out_TIMEOUT
-    lambda 55 In_CERTIFICATE = Out_TIMEOUT
-    lambda 55 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 55 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 55 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 55 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 57 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 57 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 57 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 57 In_FINISHED = Out_TIMEOUT
-    lambda 57 In_APPLICATION = Out_TIMEOUT
-    lambda 57 In_CERTIFICATE = Out_TIMEOUT
-    lambda 57 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 57 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 57 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 57 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 60 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 60 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 60 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 60 In_FINISHED = Out_TIMEOUT
-    lambda 60 In_APPLICATION = Out_TIMEOUT
-    lambda 60 In_CERTIFICATE = Out_TIMEOUT
-    lambda 60 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 60 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 60 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 60 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 47 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 47 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 47 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 47 In_FINISHED = Out_TIMEOUT
-    lambda 47 In_APPLICATION = Out_TIMEOUT
-    lambda 47 In_CERTIFICATE = Out_TIMEOUT
-    lambda 47 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 47 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 47 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 47 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 64 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 64 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 64 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 64 In_FINISHED = Out_TIMEOUT
-    lambda 64 In_APPLICATION = Out_TIMEOUT
-    lambda 64 In_CERTIFICATE = Out_TIMEOUT
-    lambda 64 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 64 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 64 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 64 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 66 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 66 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 66 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 66 In_FINISHED = Out_TIMEOUT
-    lambda 66 In_APPLICATION = Out_TIMEOUT
-    lambda 66 In_CERTIFICATE = Out_TIMEOUT
-    lambda 66 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 66 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 66 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 66 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 74 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 74 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 74 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 74 In_FINISHED = Out_TIMEOUT
-    lambda 74 In_APPLICATION = Out_TIMEOUT
-    lambda 74 In_CERTIFICATE = Out_TIMEOUT
-    lambda 74 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 74 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 74 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 74 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 69 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 69 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 69 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 69 In_FINISHED = Out_TIMEOUT
-    lambda 69 In_APPLICATION = Out_TIMEOUT
-    lambda 69 In_CERTIFICATE = Out_TIMEOUT
-    lambda 69 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 69 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 69 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 69 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 71 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 71 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 71 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 71 In_FINISHED = Out_TIMEOUT
-    lambda 71 In_APPLICATION = Out_TIMEOUT
-    lambda 71 In_CERTIFICATE = Out_TIMEOUT
-    lambda 71 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 71 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 71 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 71 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 72 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 72 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 72 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 72 In_FINISHED = Out_TIMEOUT
-    lambda 72 In_APPLICATION = Out_TIMEOUT
-    lambda 72 In_CERTIFICATE = Out_TIMEOUT
-    lambda 72 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 72 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 72 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 72 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 73 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 73 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 73 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 73 In_FINISHED = Out_TIMEOUT
-    lambda 73 In_APPLICATION = Out_TIMEOUT
-    lambda 73 In_CERTIFICATE = Out_TIMEOUT
-    lambda 73 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 73 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 73 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 73 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 61 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 61 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 61 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 61 In_FINISHED = Out_TIMEOUT
-    lambda 61 In_APPLICATION = Out_TIMEOUT
-    lambda 61 In_CERTIFICATE = Out_TIMEOUT
-    lambda 61 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 61 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 61 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 61 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 37 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 37 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 37 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 37 In_FINISHED = Out_TIMEOUT
-    lambda 37 In_APPLICATION = Out_TIMEOUT
-    lambda 37 In_CERTIFICATE = Out_TIMEOUT
-    lambda 37 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 37 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 37 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 37 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 78 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 78 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 78 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 78 In_FINISHED = Out_TIMEOUT
-    lambda 78 In_APPLICATION = Out_TIMEOUT
-    lambda 78 In_CERTIFICATE = Out_TIMEOUT
-    lambda 78 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 78 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 78 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 78 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 62 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 62 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 62 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 62 In_FINISHED = Out_TIMEOUT
-    lambda 62 In_APPLICATION = Out_TIMEOUT
-    lambda 62 In_CERTIFICATE = Out_TIMEOUT
-    lambda 62 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 62 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 62 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 62 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 65 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 65 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 65 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 65 In_FINISHED = Out_TIMEOUT
-    lambda 65 In_APPLICATION = Out_TIMEOUT
-    lambda 65 In_CERTIFICATE = Out_TIMEOUT
-    lambda 65 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 65 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 65 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 65 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 77 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 77 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 77 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 77 In_FINISHED = Out_TIMEOUT
-    lambda 77 In_APPLICATION = Out_TIMEOUT
-    lambda 77 In_CERTIFICATE = Out_TIMEOUT
-    lambda 77 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 77 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 77 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 77 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 76 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 76 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 76 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 76 In_FINISHED = Out_TIMEOUT
-    lambda 76 In_APPLICATION = Out_TIMEOUT
-    lambda 76 In_CERTIFICATE = Out_TIMEOUT
-    lambda 76 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 76 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 76 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 76 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 58 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 58 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 58 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 58 In_FINISHED = Out_TIMEOUT
-    lambda 58 In_APPLICATION = Out_TIMEOUT
-    lambda 58 In_CERTIFICATE = Out_TIMEOUT
-    lambda 58 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 58 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 58 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 58 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 50 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 50 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 50 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 50 In_FINISHED = Out_TIMEOUT
-    lambda 50 In_APPLICATION = Out_TIMEOUT
-    lambda 50 In_CERTIFICATE = Out_TIMEOUT
-    lambda 50 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 50 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 50 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 50 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 44 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 44 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 44 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 44 In_FINISHED = Out_TIMEOUT
-    lambda 44 In_APPLICATION = Out_TIMEOUT
-    lambda 44 In_CERTIFICATE = Out_TIMEOUT
-    lambda 44 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 44 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 44 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 44 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda _ _ = error "haal-gen: undefined transition"
+import Haal.Automaton.MealyAutomaton (MealyAutomaton, mkMealyAutomatonTable)
+
+data JsseV12RsaCertNoneInput
+    = In_RSA_CLIENT_HELLO
+    | In_RSA_CLIENT_KEY_EXCHANGE
+    | In_CHANGE_CIPHER_SPEC
+    | In_FINISHED
+    | In_APPLICATION
+    | In_CERTIFICATE
+    | In_EMPTY_CERTIFICATE
+    | In_CERTIFICATE_VERIFY
+    | In_Alert_WARNING_CLOSE_NOTIFY
+    | In_Alert_FATAL_UNEXPECTED_MESSAGE
+    deriving (Show, Eq, Ord, Enum, Bounded)
+
+data JsseV12RsaCertNoneOutput
+    = Out_HELLO_VERIFY_REQUEST
+    | Out_TIMEOUT
+    | Out_SOCKET_CLOSED
+    | Out_SERVER_HELLO_CERTIFICATE_SERVER_HELLO_DONE
+    | Out_Alert_WARNING_CLOSE_NOTIFY
+    | Out_Alert_FATAL_UNEXPECTED_MESSAGE
+    | Out_CHANGE_CIPHER_SPEC_FINISHED_CHANGE_CIPHER_SPEC_FINISHED
+    | Out_APPLICATION
+    deriving (Show, Eq, Ord, Enum, Bounded)
+
+{- Transitions (state  input -> next state / output):
+    0     In_RSA_CLIENT_HELLO                -> 1 / Out_HELLO_VERIFY_REQUEST
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 2 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 4 / Out_TIMEOUT
+          In_APPLICATION                     -> 0 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 5 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 6 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 4 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    1     In_RSA_CLIENT_HELLO                -> 9 / Out_SERVER_HELLO_CERTIFICATE_SERVER_HELLO_DONE
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 10 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 11 / Out_TIMEOUT
+          In_APPLICATION                     -> 1 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 12 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 13 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 11 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    2     In_RSA_CLIENT_HELLO                -> 20 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 4 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 21 / Out_TIMEOUT
+          In_FINISHED                        -> 22 / Out_TIMEOUT
+          In_APPLICATION                     -> 2 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 23 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 23 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 24 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    3     In_RSA_CLIENT_HELLO                -> 3 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 3 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 3 / Out_TIMEOUT
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 3 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 3 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 3 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 3 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 3 / Out_TIMEOUT
+    4     In_RSA_CLIENT_HELLO                -> 4 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 4 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 4 / Out_TIMEOUT
+          In_APPLICATION                     -> 4 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 4 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 4 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 4 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    5     In_RSA_CLIENT_HELLO                -> 5 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 43 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 44 / Out_TIMEOUT
+          In_APPLICATION                     -> 5 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 4 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 4 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 26 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    6     In_RSA_CLIENT_HELLO                -> 6 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 23 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 21 / Out_TIMEOUT
+          In_FINISHED                        -> 25 / Out_TIMEOUT
+          In_APPLICATION                     -> 6 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 4 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 4 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 26 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    7     In_RSA_CLIENT_HELLO                -> 8 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 8 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 8 / Out_TIMEOUT
+          In_FINISHED                        -> 8 / Out_TIMEOUT
+          In_APPLICATION                     -> 8 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 8 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 8 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 8 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 8 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 8 / Out_TIMEOUT
+    8     In_RSA_CLIENT_HELLO                -> 8 / Out_SOCKET_CLOSED
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 8 / Out_SOCKET_CLOSED
+          In_CHANGE_CIPHER_SPEC              -> 8 / Out_SOCKET_CLOSED
+          In_FINISHED                        -> 8 / Out_SOCKET_CLOSED
+          In_APPLICATION                     -> 8 / Out_SOCKET_CLOSED
+          In_CERTIFICATE                     -> 8 / Out_SOCKET_CLOSED
+          In_EMPTY_CERTIFICATE               -> 8 / Out_SOCKET_CLOSED
+          In_CERTIFICATE_VERIFY              -> 8 / Out_SOCKET_CLOSED
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 8 / Out_SOCKET_CLOSED
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 8 / Out_SOCKET_CLOSED
+    9     In_RSA_CLIENT_HELLO                -> 7 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 14 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 11 / Out_TIMEOUT
+          In_APPLICATION                     -> 9 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 12 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 13 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 11 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    10    In_RSA_CLIENT_HELLO                -> 15 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 11 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 30 / Out_TIMEOUT
+          In_FINISHED                        -> 17 / Out_TIMEOUT
+          In_APPLICATION                     -> 10 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 18 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 18 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 19 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    11    In_RSA_CLIENT_HELLO                -> 11 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 11 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 11 / Out_TIMEOUT
+          In_APPLICATION                     -> 11 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 11 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 11 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 11 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    12    In_RSA_CLIENT_HELLO                -> 49 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 50 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 12 / Out_TIMEOUT
+          In_APPLICATION                     -> 12 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 11 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 11 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 36 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    13    In_RSA_CLIENT_HELLO                -> 34 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 18 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 30 / Out_TIMEOUT
+          In_FINISHED                        -> 35 / Out_TIMEOUT
+          In_APPLICATION                     -> 13 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 11 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 11 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 36 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    14    In_RSA_CLIENT_HELLO                -> 15 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 11 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 16 / Out_TIMEOUT
+          In_FINISHED                        -> 17 / Out_TIMEOUT
+          In_APPLICATION                     -> 14 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 18 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 18 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 19 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    15    In_RSA_CLIENT_HELLO                -> 11 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 11 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 30 / Out_TIMEOUT
+          In_FINISHED                        -> 31 / Out_TIMEOUT
+          In_APPLICATION                     -> 15 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 32 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 32 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 33 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    16    In_RSA_CLIENT_HELLO                -> 37 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 11 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 38 / Out_CHANGE_CIPHER_SPEC_FINISHED_CHANGE_CIPHER_SPEC_FINISHED
+          In_APPLICATION                     -> 16 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 39 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 39 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 40 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 16 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 16 / Out_TIMEOUT
+    17    In_RSA_CLIENT_HELLO                -> 31 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 11 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 30 / Out_TIMEOUT
+          In_FINISHED                        -> 11 / Out_TIMEOUT
+          In_APPLICATION                     -> 17 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 41 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 41 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 68 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    18    In_RSA_CLIENT_HELLO                -> 32 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 11 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 30 / Out_TIMEOUT
+          In_FINISHED                        -> 41 / Out_TIMEOUT
+          In_APPLICATION                     -> 18 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 11 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 11 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 42 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    19    In_RSA_CLIENT_HELLO                -> 33 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 11 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 30 / Out_TIMEOUT
+          In_FINISHED                        -> 68 / Out_TIMEOUT
+          In_APPLICATION                     -> 19 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 42 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 42 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 11 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    20    In_RSA_CLIENT_HELLO                -> 4 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 4 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 21 / Out_TIMEOUT
+          In_FINISHED                        -> 45 / Out_TIMEOUT
+          In_APPLICATION                     -> 20 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 59 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 59 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 27 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    21    In_RSA_CLIENT_HELLO                -> 7 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 7 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 7 / Out_TIMEOUT
+          In_APPLICATION                     -> 21 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 7 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 7 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 7 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 21 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 21 / Out_TIMEOUT
+    22    In_RSA_CLIENT_HELLO                -> 45 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 4 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 21 / Out_TIMEOUT
+          In_FINISHED                        -> 4 / Out_TIMEOUT
+          In_APPLICATION                     -> 22 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 46 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 46 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 28 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    23    In_RSA_CLIENT_HELLO                -> 59 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 4 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 21 / Out_TIMEOUT
+          In_FINISHED                        -> 46 / Out_TIMEOUT
+          In_APPLICATION                     -> 23 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 4 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 4 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 29 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    24    In_RSA_CLIENT_HELLO                -> 27 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 4 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 21 / Out_TIMEOUT
+          In_FINISHED                        -> 28 / Out_TIMEOUT
+          In_APPLICATION                     -> 24 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 29 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 29 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 4 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    25    In_RSA_CLIENT_HELLO                -> 71 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 46 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 21 / Out_TIMEOUT
+          In_FINISHED                        -> 4 / Out_TIMEOUT
+          In_APPLICATION                     -> 25 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 4 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 4 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 62 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    26    In_RSA_CLIENT_HELLO                -> 61 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 29 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 21 / Out_TIMEOUT
+          In_FINISHED                        -> 62 / Out_TIMEOUT
+          In_APPLICATION                     -> 26 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 4 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 4 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 4 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    27    In_RSA_CLIENT_HELLO                -> 4 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 4 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 21 / Out_TIMEOUT
+          In_FINISHED                        -> 72 / Out_TIMEOUT
+          In_APPLICATION                     -> 27 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 51 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 51 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 4 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    28    In_RSA_CLIENT_HELLO                -> 72 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 4 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 21 / Out_TIMEOUT
+          In_FINISHED                        -> 4 / Out_TIMEOUT
+          In_APPLICATION                     -> 28 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 52 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 52 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 4 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    29    In_RSA_CLIENT_HELLO                -> 51 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 4 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 21 / Out_TIMEOUT
+          In_FINISHED                        -> 52 / Out_TIMEOUT
+          In_APPLICATION                     -> 29 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 4 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 4 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 4 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    30    In_RSA_CLIENT_HELLO                -> 7 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 7 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 7 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_APPLICATION                     -> 30 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 7 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_EMPTY_CERTIFICATE               -> 7 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CERTIFICATE_VERIFY              -> 7 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 30 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 30 / Out_TIMEOUT
+    31    In_RSA_CLIENT_HELLO                -> 11 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 11 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 30 / Out_TIMEOUT
+          In_FINISHED                        -> 11 / Out_TIMEOUT
+          In_APPLICATION                     -> 31 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 47 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 47 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 53 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    32    In_RSA_CLIENT_HELLO                -> 11 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 11 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 30 / Out_TIMEOUT
+          In_FINISHED                        -> 47 / Out_TIMEOUT
+          In_APPLICATION                     -> 32 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 11 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 11 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 48 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    33    In_RSA_CLIENT_HELLO                -> 11 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 11 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 30 / Out_TIMEOUT
+          In_FINISHED                        -> 53 / Out_TIMEOUT
+          In_APPLICATION                     -> 33 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 48 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 48 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 11 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    34    In_RSA_CLIENT_HELLO                -> 11 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 32 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 30 / Out_TIMEOUT
+          In_FINISHED                        -> 65 / Out_TIMEOUT
+          In_APPLICATION                     -> 34 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 11 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 11 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 63 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    35    In_RSA_CLIENT_HELLO                -> 65 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 41 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 30 / Out_TIMEOUT
+          In_FINISHED                        -> 11 / Out_TIMEOUT
+          In_APPLICATION                     -> 35 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 11 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 11 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 74 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    36    In_RSA_CLIENT_HELLO                -> 63 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 42 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 30 / Out_TIMEOUT
+          In_FINISHED                        -> 74 / Out_TIMEOUT
+          In_APPLICATION                     -> 36 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 11 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 11 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 11 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    37    In_RSA_CLIENT_HELLO                -> 11 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 11 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 30 / Out_TIMEOUT
+          In_FINISHED                        -> 78 / Out_TIMEOUT
+          In_APPLICATION                     -> 11 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 54 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 54 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 57 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    38    In_RSA_CLIENT_HELLO                -> 38 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 38 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 38 / Out_TIMEOUT
+          In_APPLICATION                     -> 7 / Out_APPLICATION
+          In_CERTIFICATE                     -> 38 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 38 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 38 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    39    In_RSA_CLIENT_HELLO                -> 54 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 11 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 30 / Out_TIMEOUT
+          In_FINISHED                        -> 55 / Out_TIMEOUT
+          In_APPLICATION                     -> 11 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 11 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 11 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 56 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    40    In_RSA_CLIENT_HELLO                -> 57 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 11 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 30 / Out_TIMEOUT
+          In_FINISHED                        -> 58 / Out_TIMEOUT
+          In_APPLICATION                     -> 11 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 56 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 56 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 11 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    41    In_RSA_CLIENT_HELLO                -> 47 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 11 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 30 / Out_TIMEOUT
+          In_FINISHED                        -> 11 / Out_TIMEOUT
+          In_APPLICATION                     -> 41 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 11 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 11 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 60 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    42    In_RSA_CLIENT_HELLO                -> 48 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 11 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 30 / Out_TIMEOUT
+          In_FINISHED                        -> 60 / Out_TIMEOUT
+          In_APPLICATION                     -> 42 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 11 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 11 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 11 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    43    In_RSA_CLIENT_HELLO                -> 43 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 4 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 43 / Out_TIMEOUT
+          In_APPLICATION                     -> 43 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 4 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 4 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 29 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    44    In_RSA_CLIENT_HELLO                -> 44 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 43 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 4 / Out_TIMEOUT
+          In_APPLICATION                     -> 44 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 4 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 4 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 62 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    45    In_RSA_CLIENT_HELLO                -> 4 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 4 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 21 / Out_TIMEOUT
+          In_FINISHED                        -> 4 / Out_TIMEOUT
+          In_APPLICATION                     -> 45 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 69 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 69 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 72 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    46    In_RSA_CLIENT_HELLO                -> 69 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 4 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 21 / Out_TIMEOUT
+          In_FINISHED                        -> 4 / Out_TIMEOUT
+          In_APPLICATION                     -> 46 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 4 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 4 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 52 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    47    In_RSA_CLIENT_HELLO                -> 11 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 11 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 30 / Out_TIMEOUT
+          In_FINISHED                        -> 11 / Out_TIMEOUT
+          In_APPLICATION                     -> 47 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 11 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 11 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 64 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    48    In_RSA_CLIENT_HELLO                -> 11 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 11 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 30 / Out_TIMEOUT
+          In_FINISHED                        -> 64 / Out_TIMEOUT
+          In_APPLICATION                     -> 48 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 11 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 11 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 11 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    49    In_RSA_CLIENT_HELLO                -> 11 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 49 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 49 / Out_TIMEOUT
+          In_APPLICATION                     -> 49 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 11 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 11 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 63 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    50    In_RSA_CLIENT_HELLO                -> 49 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 11 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 50 / Out_TIMEOUT
+          In_APPLICATION                     -> 50 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 11 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 11 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 42 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    51    In_RSA_CLIENT_HELLO                -> 4 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 4 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 21 / Out_TIMEOUT
+          In_FINISHED                        -> 73 / Out_TIMEOUT
+          In_APPLICATION                     -> 51 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 4 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 4 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 4 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    52    In_RSA_CLIENT_HELLO                -> 73 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 4 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 21 / Out_TIMEOUT
+          In_FINISHED                        -> 4 / Out_TIMEOUT
+          In_APPLICATION                     -> 52 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 4 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 4 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 4 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    53    In_RSA_CLIENT_HELLO                -> 11 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 11 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 30 / Out_TIMEOUT
+          In_FINISHED                        -> 11 / Out_TIMEOUT
+          In_APPLICATION                     -> 53 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 64 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 64 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 11 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    54    In_RSA_CLIENT_HELLO                -> 11 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 11 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 30 / Out_TIMEOUT
+          In_FINISHED                        -> 70 / Out_TIMEOUT
+          In_APPLICATION                     -> 11 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 11 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 11 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 66 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    55    In_RSA_CLIENT_HELLO                -> 70 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 11 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 30 / Out_TIMEOUT
+          In_FINISHED                        -> 11 / Out_TIMEOUT
+          In_APPLICATION                     -> 11 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 11 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 11 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 67 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    56    In_RSA_CLIENT_HELLO                -> 66 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 11 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 30 / Out_TIMEOUT
+          In_FINISHED                        -> 67 / Out_TIMEOUT
+          In_APPLICATION                     -> 11 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 11 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 11 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 11 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    57    In_RSA_CLIENT_HELLO                -> 11 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 11 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 30 / Out_TIMEOUT
+          In_FINISHED                        -> 53 / Out_TIMEOUT
+          In_APPLICATION                     -> 11 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 66 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 66 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 11 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    58    In_RSA_CLIENT_HELLO                -> 53 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 11 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 30 / Out_TIMEOUT
+          In_FINISHED                        -> 11 / Out_TIMEOUT
+          In_APPLICATION                     -> 11 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 67 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 67 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 11 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    59    In_RSA_CLIENT_HELLO                -> 4 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 4 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 21 / Out_TIMEOUT
+          In_FINISHED                        -> 69 / Out_TIMEOUT
+          In_APPLICATION                     -> 59 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 4 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 4 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 51 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    60    In_RSA_CLIENT_HELLO                -> 64 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 11 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 30 / Out_TIMEOUT
+          In_FINISHED                        -> 11 / Out_TIMEOUT
+          In_APPLICATION                     -> 60 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 11 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 11 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 11 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    61    In_RSA_CLIENT_HELLO                -> 4 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 51 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 21 / Out_TIMEOUT
+          In_FINISHED                        -> 77 / Out_TIMEOUT
+          In_APPLICATION                     -> 61 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 4 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 4 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 4 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    62    In_RSA_CLIENT_HELLO                -> 77 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 52 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 21 / Out_TIMEOUT
+          In_FINISHED                        -> 4 / Out_TIMEOUT
+          In_APPLICATION                     -> 62 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 4 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 4 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 4 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    63    In_RSA_CLIENT_HELLO                -> 11 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 48 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 30 / Out_TIMEOUT
+          In_FINISHED                        -> 75 / Out_TIMEOUT
+          In_APPLICATION                     -> 63 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 11 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 11 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 11 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    64    In_RSA_CLIENT_HELLO                -> 11 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 11 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 30 / Out_TIMEOUT
+          In_FINISHED                        -> 11 / Out_TIMEOUT
+          In_APPLICATION                     -> 64 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 11 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 11 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 11 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    65    In_RSA_CLIENT_HELLO                -> 11 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 47 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 30 / Out_TIMEOUT
+          In_FINISHED                        -> 11 / Out_TIMEOUT
+          In_APPLICATION                     -> 65 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 11 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 11 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 75 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    66    In_RSA_CLIENT_HELLO                -> 11 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 11 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 30 / Out_TIMEOUT
+          In_FINISHED                        -> 76 / Out_TIMEOUT
+          In_APPLICATION                     -> 11 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 11 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 11 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 11 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    67    In_RSA_CLIENT_HELLO                -> 76 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 11 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 30 / Out_TIMEOUT
+          In_FINISHED                        -> 11 / Out_TIMEOUT
+          In_APPLICATION                     -> 11 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 11 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 11 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 11 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    68    In_RSA_CLIENT_HELLO                -> 53 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 11 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 30 / Out_TIMEOUT
+          In_FINISHED                        -> 11 / Out_TIMEOUT
+          In_APPLICATION                     -> 68 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 60 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 60 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 11 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    69    In_RSA_CLIENT_HELLO                -> 4 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 4 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 21 / Out_TIMEOUT
+          In_FINISHED                        -> 4 / Out_TIMEOUT
+          In_APPLICATION                     -> 69 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 4 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 4 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 73 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    70    In_RSA_CLIENT_HELLO                -> 11 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 11 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 30 / Out_TIMEOUT
+          In_FINISHED                        -> 11 / Out_TIMEOUT
+          In_APPLICATION                     -> 11 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 11 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 11 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 76 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    71    In_RSA_CLIENT_HELLO                -> 4 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 69 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 21 / Out_TIMEOUT
+          In_FINISHED                        -> 4 / Out_TIMEOUT
+          In_APPLICATION                     -> 71 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 4 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 4 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 77 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    72    In_RSA_CLIENT_HELLO                -> 4 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 4 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 21 / Out_TIMEOUT
+          In_FINISHED                        -> 4 / Out_TIMEOUT
+          In_APPLICATION                     -> 72 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 73 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 73 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 4 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    73    In_RSA_CLIENT_HELLO                -> 4 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 4 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 21 / Out_TIMEOUT
+          In_FINISHED                        -> 4 / Out_TIMEOUT
+          In_APPLICATION                     -> 73 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 4 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 4 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 4 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    74    In_RSA_CLIENT_HELLO                -> 75 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 60 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 30 / Out_TIMEOUT
+          In_FINISHED                        -> 11 / Out_TIMEOUT
+          In_APPLICATION                     -> 74 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 11 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 11 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 11 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    75    In_RSA_CLIENT_HELLO                -> 11 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 64 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 30 / Out_TIMEOUT
+          In_FINISHED                        -> 11 / Out_TIMEOUT
+          In_APPLICATION                     -> 75 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 11 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 11 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 11 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    76    In_RSA_CLIENT_HELLO                -> 11 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 11 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 30 / Out_TIMEOUT
+          In_FINISHED                        -> 11 / Out_TIMEOUT
+          In_APPLICATION                     -> 11 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 11 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 11 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 11 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    77    In_RSA_CLIENT_HELLO                -> 4 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 73 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 21 / Out_TIMEOUT
+          In_FINISHED                        -> 4 / Out_TIMEOUT
+          In_APPLICATION                     -> 77 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 4 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 4 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 4 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    78    In_RSA_CLIENT_HELLO                -> 11 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 11 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 30 / Out_TIMEOUT
+          In_FINISHED                        -> 11 / Out_TIMEOUT
+          In_APPLICATION                     -> 11 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 70 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 70 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 53 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+-}
+jsseV12RsaCertNone :: MealyAutomaton Int JsseV12RsaCertNoneInput JsseV12RsaCertNoneOutput
+jsseV12RsaCertNone =
+    case mkMealyAutomatonTable 79 0 deltaTable lambdaTable of
+        Right m -> m
+        Left err -> error ("haal-gen: invalid transition table: " ++ err)
+  where
+    deltaTable =
+        "\1\2\3\4\0\5\6\4\7\7\
+        \\9\10\3\11\1\12\13\11\7\7\
+        \\20\4\21\22\2\23\23\24\7\7\
+        \\3\3\3\3\3\3\3\3\3\3\
+        \\4\4\3\4\4\4\4\4\7\7\
+        \\5\43\3\44\5\4\4\26\7\7\
+        \\6\23\21\25\6\4\4\26\7\7\
+        \\8\8\8\8\8\8\8\8\8\8\
+        \\8\8\8\8\8\8\8\8\8\8\
+        \\7\14\3\11\9\12\13\11\7\7\
+        \\15\11\30\17\10\18\18\19\7\7\
+        \\11\11\3\11\11\11\11\11\7\7\
+        \\49\50\3\12\12\11\11\36\7\7\
+        \\34\18\30\35\13\11\11\36\7\7\
+        \\15\11\16\17\14\18\18\19\7\7\
+        \\11\11\30\31\15\32\32\33\7\7\
+        \\37\11\3\38\16\39\39\40\16\16\
+        \\31\11\30\11\17\41\41\68\7\7\
+        \\32\11\30\41\18\11\11\42\7\7\
+        \\33\11\30\68\19\42\42\11\7\7\
+        \\4\4\21\45\20\59\59\27\7\7\
+        \\7\7\3\7\21\7\7\7\21\21\
+        \\45\4\21\4\22\46\46\28\7\7\
+        \\59\4\21\46\23\4\4\29\7\7\
+        \\27\4\21\28\24\29\29\4\7\7\
+        \\71\46\21\4\25\4\4\62\7\7\
+        \\61\29\21\62\26\4\4\4\7\7\
+        \\4\4\21\72\27\51\51\4\7\7\
+        \\72\4\21\4\28\52\52\4\7\7\
+        \\51\4\21\52\29\4\4\4\7\7\
+        \\7\7\3\7\30\7\7\7\30\30\
+        \\11\11\30\11\31\47\47\53\7\7\
+        \\11\11\30\47\32\11\11\48\7\7\
+        \\11\11\30\53\33\48\48\11\7\7\
+        \\11\32\30\65\34\11\11\63\7\7\
+        \\65\41\30\11\35\11\11\74\7\7\
+        \\63\42\30\74\36\11\11\11\7\7\
+        \\11\11\30\78\11\54\54\57\7\7\
+        \\38\38\3\38\7\38\38\38\7\7\
+        \\54\11\30\55\11\11\11\56\7\7\
+        \\57\11\30\58\11\56\56\11\7\7\
+        \\47\11\30\11\41\11\11\60\7\7\
+        \\48\11\30\60\42\11\11\11\7\7\
+        \\43\4\3\43\43\4\4\29\7\7\
+        \\44\43\3\4\44\4\4\62\7\7\
+        \\4\4\21\4\45\69\69\72\7\7\
+        \\69\4\21\4\46\4\4\52\7\7\
+        \\11\11\30\11\47\11\11\64\7\7\
+        \\11\11\30\64\48\11\11\11\7\7\
+        \\11\49\3\49\49\11\11\63\7\7\
+        \\49\11\3\50\50\11\11\42\7\7\
+        \\4\4\21\73\51\4\4\4\7\7\
+        \\73\4\21\4\52\4\4\4\7\7\
+        \\11\11\30\11\53\64\64\11\7\7\
+        \\11\11\30\70\11\11\11\66\7\7\
+        \\70\11\30\11\11\11\11\67\7\7\
+        \\66\11\30\67\11\11\11\11\7\7\
+        \\11\11\30\53\11\66\66\11\7\7\
+        \\53\11\30\11\11\67\67\11\7\7\
+        \\4\4\21\69\59\4\4\51\7\7\
+        \\64\11\30\11\60\11\11\11\7\7\
+        \\4\51\21\77\61\4\4\4\7\7\
+        \\77\52\21\4\62\4\4\4\7\7\
+        \\11\48\30\75\63\11\11\11\7\7\
+        \\11\11\30\11\64\11\11\11\7\7\
+        \\11\47\30\11\65\11\11\75\7\7\
+        \\11\11\30\76\11\11\11\11\7\7\
+        \\76\11\30\11\11\11\11\11\7\7\
+        \\53\11\30\11\68\60\60\11\7\7\
+        \\4\4\21\4\69\4\4\73\7\7\
+        \\11\11\30\11\11\11\11\76\7\7\
+        \\4\69\21\4\71\4\4\77\7\7\
+        \\4\4\21\4\72\73\73\4\7\7\
+        \\4\4\21\4\73\4\4\4\7\7\
+        \\75\60\30\11\74\11\11\11\7\7\
+        \\11\64\30\11\75\11\11\11\7\7\
+        \\11\11\30\11\11\11\11\11\7\7\
+        \\4\73\21\4\77\4\4\4\7\7\
+        \\11\11\30\11\11\70\70\53\7\7"
+    lambdaTable =
+        "\0\1\1\1\1\1\1\1\1\1\
+        \\3\1\1\1\1\1\1\1\4\1\
+        \\1\1\1\1\1\1\1\1\1\1\
+        \\1\1\1\1\1\1\1\1\1\1\
+        \\1\1\1\1\1\1\1\1\1\1\
+        \\1\1\1\1\1\1\1\1\1\1\
+        \\1\1\1\1\1\1\1\1\1\1\
+        \\1\1\1\1\1\1\1\1\1\1\
+        \\2\2\2\2\2\2\2\2\2\2\
+        \\5\1\1\1\1\1\1\1\4\1\
+        \\1\1\1\1\1\1\1\1\4\1\
+        \\1\1\1\1\1\1\1\1\4\1\
+        \\1\1\1\1\1\1\1\1\4\1\
+        \\1\1\1\1\1\1\1\1\4\1\
+        \\1\1\1\1\1\1\1\1\4\1\
+        \\1\1\1\1\1\1\1\1\4\1\
+        \\1\1\1\6\1\1\1\1\1\1\
+        \\1\1\1\1\1\1\1\1\4\1\
+        \\1\1\1\1\1\1\1\1\4\1\
+        \\1\1\1\1\1\1\1\1\4\1\
+        \\1\1\1\1\1\1\1\1\1\1\
+        \\1\1\1\1\1\1\1\1\1\1\
+        \\1\1\1\1\1\1\1\1\1\1\
+        \\1\1\1\1\1\1\1\1\1\1\
+        \\1\1\1\1\1\1\1\1\1\1\
+        \\1\1\1\1\1\1\1\1\1\1\
+        \\1\1\1\1\1\1\1\1\1\1\
+        \\1\1\1\1\1\1\1\1\1\1\
+        \\1\1\1\1\1\1\1\1\1\1\
+        \\1\1\1\1\1\1\1\1\1\1\
+        \\5\5\1\5\1\5\5\5\1\1\
+        \\1\1\1\1\1\1\1\1\4\1\
+        \\1\1\1\1\1\1\1\1\4\1\
+        \\1\1\1\1\1\1\1\1\4\1\
+        \\1\1\1\1\1\1\1\1\4\1\
+        \\1\1\1\1\1\1\1\1\4\1\
+        \\1\1\1\1\1\1\1\1\4\1\
+        \\1\1\1\1\1\1\1\1\4\1\
+        \\1\1\1\1\7\1\1\1\1\1\
+        \\1\1\1\1\1\1\1\1\4\1\
+        \\1\1\1\1\1\1\1\1\4\1\
+        \\1\1\1\1\1\1\1\1\4\1\
+        \\1\1\1\1\1\1\1\1\4\1\
+        \\1\1\1\1\1\1\1\1\1\1\
+        \\1\1\1\1\1\1\1\1\1\1\
+        \\1\1\1\1\1\1\1\1\1\1\
+        \\1\1\1\1\1\1\1\1\1\1\
+        \\1\1\1\1\1\1\1\1\4\1\
+        \\1\1\1\1\1\1\1\1\4\1\
+        \\1\1\1\1\1\1\1\1\4\1\
+        \\1\1\1\1\1\1\1\1\4\1\
+        \\1\1\1\1\1\1\1\1\1\1\
+        \\1\1\1\1\1\1\1\1\1\1\
+        \\1\1\1\1\1\1\1\1\4\1\
+        \\1\1\1\1\1\1\1\1\4\1\
+        \\1\1\1\1\1\1\1\1\4\1\
+        \\1\1\1\1\1\1\1\1\4\1\
+        \\1\1\1\1\1\1\1\1\4\1\
+        \\1\1\1\1\1\1\1\1\4\1\
+        \\1\1\1\1\1\1\1\1\1\1\
+        \\1\1\1\1\1\1\1\1\4\1\
+        \\1\1\1\1\1\1\1\1\1\1\
+        \\1\1\1\1\1\1\1\1\1\1\
+        \\1\1\1\1\1\1\1\1\4\1\
+        \\1\1\1\1\1\1\1\1\4\1\
+        \\1\1\1\1\1\1\1\1\4\1\
+        \\1\1\1\1\1\1\1\1\4\1\
+        \\1\1\1\1\1\1\1\1\4\1\
+        \\1\1\1\1\1\1\1\1\4\1\
+        \\1\1\1\1\1\1\1\1\1\1\
+        \\1\1\1\1\1\1\1\1\4\1\
+        \\1\1\1\1\1\1\1\1\1\1\
+        \\1\1\1\1\1\1\1\1\1\1\
+        \\1\1\1\1\1\1\1\1\1\1\
+        \\1\1\1\1\1\1\1\1\4\1\
+        \\1\1\1\1\1\1\1\1\4\1\
+        \\1\1\1\1\1\1\1\1\4\1\
+        \\1\1\1\1\1\1\1\1\1\1\
+        \\1\1\1\1\1\1\1\1\4\1"
diff --git a/src/Haal/Models/DTLS/JsseV12RsaCertNreq.hs b/src/Haal/Models/DTLS/JsseV12RsaCertNreq.hs
--- a/src/Haal/Models/DTLS/JsseV12RsaCertNreq.hs
+++ b/src/Haal/Models/DTLS/JsseV12RsaCertNreq.hs
@@ -5,2137 +5,1301 @@
     , jsseV12RsaCertNreq
     ) where
 
-import qualified Data.Set as Set
-import Haal.Automaton.MealyAutomaton (MealyAutomaton, mkMealyAutomaton)
-
-data JsseV12RsaCertNreqInput
-    = In_RSA_CLIENT_HELLO
-    | In_RSA_CLIENT_KEY_EXCHANGE
-    | In_CHANGE_CIPHER_SPEC
-    | In_FINISHED
-    | In_APPLICATION
-    | In_CERTIFICATE
-    | In_EMPTY_CERTIFICATE
-    | In_CERTIFICATE_VERIFY
-    | In_Alert_WARNING_CLOSE_NOTIFY
-    | In_Alert_FATAL_UNEXPECTED_MESSAGE
-    deriving (Show, Eq, Ord, Enum, Bounded)
-
-data JsseV12RsaCertNreqOutput
-    = Out_HELLO_VERIFY_REQUEST
-    | Out_TIMEOUT
-    | Out_SERVER_HELLO_CERTIFICATE_CERTIFICATE_REQUEST_SERVER_HELLO_DONE
-    | Out_Alert_WARNING_CLOSE_NOTIFY
-    | Out_SOCKET_CLOSED
-    | Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    | Out_Alert_FATAL_HANDSHAKE_FAILURE
-    | Out_CHANGE_CIPHER_SPEC_FINISHED_CHANGE_CIPHER_SPEC_FINISHED
-    | Out_CHANGE_CIPHER_SPEC_UNKNOWN_MESSAGE_CHANGE_CIPHER_SPEC_UNKNOWN_MESSAGE
-    | Out_APPLICATION
-    deriving (Show, Eq, Ord, Enum, Bounded)
-
-jsseV12RsaCertNreq :: MealyAutomaton Int JsseV12RsaCertNreqInput JsseV12RsaCertNreqOutput
-jsseV12RsaCertNreq = mkMealyAutomaton delta lambda (Set.fromList [0..104]) 0
-  where
-    delta 0 In_RSA_CLIENT_HELLO = 1
-    delta 0 In_RSA_CLIENT_KEY_EXCHANGE = 2
-    delta 0 In_CHANGE_CIPHER_SPEC = 3
-    delta 0 In_FINISHED = 4
-    delta 0 In_APPLICATION = 0
-    delta 0 In_CERTIFICATE = 5
-    delta 0 In_EMPTY_CERTIFICATE = 6
-    delta 0 In_CERTIFICATE_VERIFY = 4
-    delta 0 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 0 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 7 In_RSA_CLIENT_HELLO = 8
-    delta 7 In_RSA_CLIENT_KEY_EXCHANGE = 8
-    delta 7 In_CHANGE_CIPHER_SPEC = 8
-    delta 7 In_FINISHED = 8
-    delta 7 In_APPLICATION = 8
-    delta 7 In_CERTIFICATE = 8
-    delta 7 In_EMPTY_CERTIFICATE = 8
-    delta 7 In_CERTIFICATE_VERIFY = 8
-    delta 7 In_Alert_WARNING_CLOSE_NOTIFY = 8
-    delta 7 In_Alert_FATAL_UNEXPECTED_MESSAGE = 8
-    delta 1 In_RSA_CLIENT_HELLO = 9
-    delta 1 In_RSA_CLIENT_KEY_EXCHANGE = 10
-    delta 1 In_CHANGE_CIPHER_SPEC = 3
-    delta 1 In_FINISHED = 11
-    delta 1 In_APPLICATION = 1
-    delta 1 In_CERTIFICATE = 12
-    delta 1 In_EMPTY_CERTIFICATE = 13
-    delta 1 In_CERTIFICATE_VERIFY = 11
-    delta 1 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 1 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 8 In_RSA_CLIENT_HELLO = 8
-    delta 8 In_RSA_CLIENT_KEY_EXCHANGE = 8
-    delta 8 In_CHANGE_CIPHER_SPEC = 8
-    delta 8 In_FINISHED = 8
-    delta 8 In_APPLICATION = 8
-    delta 8 In_CERTIFICATE = 8
-    delta 8 In_EMPTY_CERTIFICATE = 8
-    delta 8 In_CERTIFICATE_VERIFY = 8
-    delta 8 In_Alert_WARNING_CLOSE_NOTIFY = 8
-    delta 8 In_Alert_FATAL_UNEXPECTED_MESSAGE = 8
-    delta 9 In_RSA_CLIENT_HELLO = 7
-    delta 9 In_RSA_CLIENT_KEY_EXCHANGE = 14
-    delta 9 In_CHANGE_CIPHER_SPEC = 3
-    delta 9 In_FINISHED = 11
-    delta 9 In_APPLICATION = 9
-    delta 9 In_CERTIFICATE = 15
-    delta 9 In_EMPTY_CERTIFICATE = 16
-    delta 9 In_CERTIFICATE_VERIFY = 11
-    delta 9 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 9 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 4 In_RSA_CLIENT_HELLO = 4
-    delta 4 In_RSA_CLIENT_KEY_EXCHANGE = 4
-    delta 4 In_CHANGE_CIPHER_SPEC = 3
-    delta 4 In_FINISHED = 4
-    delta 4 In_APPLICATION = 4
-    delta 4 In_CERTIFICATE = 4
-    delta 4 In_EMPTY_CERTIFICATE = 4
-    delta 4 In_CERTIFICATE_VERIFY = 4
-    delta 4 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 4 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 3 In_RSA_CLIENT_HELLO = 3
-    delta 3 In_RSA_CLIENT_KEY_EXCHANGE = 3
-    delta 3 In_CHANGE_CIPHER_SPEC = 3
-    delta 3 In_FINISHED = 3
-    delta 3 In_APPLICATION = 3
-    delta 3 In_CERTIFICATE = 3
-    delta 3 In_EMPTY_CERTIFICATE = 3
-    delta 3 In_CERTIFICATE_VERIFY = 3
-    delta 3 In_Alert_WARNING_CLOSE_NOTIFY = 3
-    delta 3 In_Alert_FATAL_UNEXPECTED_MESSAGE = 3
-    delta 14 In_RSA_CLIENT_HELLO = 17
-    delta 14 In_RSA_CLIENT_KEY_EXCHANGE = 11
-    delta 14 In_CHANGE_CIPHER_SPEC = 18
-    delta 14 In_FINISHED = 19
-    delta 14 In_APPLICATION = 14
-    delta 14 In_CERTIFICATE = 20
-    delta 14 In_EMPTY_CERTIFICATE = 21
-    delta 14 In_CERTIFICATE_VERIFY = 22
-    delta 14 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 14 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 2 In_RSA_CLIENT_HELLO = 23
-    delta 2 In_RSA_CLIENT_KEY_EXCHANGE = 4
-    delta 2 In_CHANGE_CIPHER_SPEC = 24
-    delta 2 In_FINISHED = 25
-    delta 2 In_APPLICATION = 2
-    delta 2 In_CERTIFICATE = 26
-    delta 2 In_EMPTY_CERTIFICATE = 26
-    delta 2 In_CERTIFICATE_VERIFY = 27
-    delta 2 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 2 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 24 In_RSA_CLIENT_HELLO = 7
-    delta 24 In_RSA_CLIENT_KEY_EXCHANGE = 7
-    delta 24 In_CHANGE_CIPHER_SPEC = 3
-    delta 24 In_FINISHED = 7
-    delta 24 In_APPLICATION = 24
-    delta 24 In_CERTIFICATE = 7
-    delta 24 In_EMPTY_CERTIFICATE = 7
-    delta 24 In_CERTIFICATE_VERIFY = 7
-    delta 24 In_Alert_WARNING_CLOSE_NOTIFY = 24
-    delta 24 In_Alert_FATAL_UNEXPECTED_MESSAGE = 24
-    delta 6 In_RSA_CLIENT_HELLO = 28
-    delta 6 In_RSA_CLIENT_KEY_EXCHANGE = 26
-    delta 6 In_CHANGE_CIPHER_SPEC = 24
-    delta 6 In_FINISHED = 29
-    delta 6 In_APPLICATION = 6
-    delta 6 In_CERTIFICATE = 4
-    delta 6 In_EMPTY_CERTIFICATE = 4
-    delta 6 In_CERTIFICATE_VERIFY = 30
-    delta 6 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 6 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 27 In_RSA_CLIENT_HELLO = 31
-    delta 27 In_RSA_CLIENT_KEY_EXCHANGE = 4
-    delta 27 In_CHANGE_CIPHER_SPEC = 24
-    delta 27 In_FINISHED = 32
-    delta 27 In_APPLICATION = 27
-    delta 27 In_CERTIFICATE = 33
-    delta 27 In_EMPTY_CERTIFICATE = 33
-    delta 27 In_CERTIFICATE_VERIFY = 4
-    delta 27 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 27 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 19 In_RSA_CLIENT_HELLO = 34
-    delta 19 In_RSA_CLIENT_KEY_EXCHANGE = 11
-    delta 19 In_CHANGE_CIPHER_SPEC = 35
-    delta 19 In_FINISHED = 11
-    delta 19 In_APPLICATION = 19
-    delta 19 In_CERTIFICATE = 36
-    delta 19 In_EMPTY_CERTIFICATE = 36
-    delta 19 In_CERTIFICATE_VERIFY = 37
-    delta 19 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 19 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 22 In_RSA_CLIENT_HELLO = 38
-    delta 22 In_RSA_CLIENT_KEY_EXCHANGE = 11
-    delta 22 In_CHANGE_CIPHER_SPEC = 39
-    delta 22 In_FINISHED = 40
-    delta 22 In_APPLICATION = 22
-    delta 22 In_CERTIFICATE = 41
-    delta 22 In_EMPTY_CERTIFICATE = 41
-    delta 22 In_CERTIFICATE_VERIFY = 11
-    delta 22 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 22 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 39 In_RSA_CLIENT_HELLO = 7
-    delta 39 In_RSA_CLIENT_KEY_EXCHANGE = 7
-    delta 39 In_CHANGE_CIPHER_SPEC = 3
-    delta 39 In_FINISHED = 7
-    delta 39 In_APPLICATION = 39
-    delta 39 In_CERTIFICATE = 7
-    delta 39 In_EMPTY_CERTIFICATE = 7
-    delta 39 In_CERTIFICATE_VERIFY = 7
-    delta 39 In_Alert_WARNING_CLOSE_NOTIFY = 39
-    delta 39 In_Alert_FATAL_UNEXPECTED_MESSAGE = 39
-    delta 10 In_RSA_CLIENT_HELLO = 17
-    delta 10 In_RSA_CLIENT_KEY_EXCHANGE = 11
-    delta 10 In_CHANGE_CIPHER_SPEC = 35
-    delta 10 In_FINISHED = 19
-    delta 10 In_APPLICATION = 10
-    delta 10 In_CERTIFICATE = 42
-    delta 10 In_EMPTY_CERTIFICATE = 42
-    delta 10 In_CERTIFICATE_VERIFY = 43
-    delta 10 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 10 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 11 In_RSA_CLIENT_HELLO = 11
-    delta 11 In_RSA_CLIENT_KEY_EXCHANGE = 11
-    delta 11 In_CHANGE_CIPHER_SPEC = 3
-    delta 11 In_FINISHED = 11
-    delta 11 In_APPLICATION = 11
-    delta 11 In_CERTIFICATE = 11
-    delta 11 In_EMPTY_CERTIFICATE = 11
-    delta 11 In_CERTIFICATE_VERIFY = 11
-    delta 11 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 11 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 42 In_RSA_CLIENT_HELLO = 44
-    delta 42 In_RSA_CLIENT_KEY_EXCHANGE = 11
-    delta 42 In_CHANGE_CIPHER_SPEC = 35
-    delta 42 In_FINISHED = 36
-    delta 42 In_APPLICATION = 42
-    delta 42 In_CERTIFICATE = 11
-    delta 42 In_EMPTY_CERTIFICATE = 11
-    delta 42 In_CERTIFICATE_VERIFY = 45
-    delta 42 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 42 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 35 In_RSA_CLIENT_HELLO = 7
-    delta 35 In_RSA_CLIENT_KEY_EXCHANGE = 7
-    delta 35 In_CHANGE_CIPHER_SPEC = 3
-    delta 35 In_FINISHED = 7
-    delta 35 In_APPLICATION = 35
-    delta 35 In_CERTIFICATE = 7
-    delta 35 In_EMPTY_CERTIFICATE = 7
-    delta 35 In_CERTIFICATE_VERIFY = 7
-    delta 35 In_Alert_WARNING_CLOSE_NOTIFY = 35
-    delta 35 In_Alert_FATAL_UNEXPECTED_MESSAGE = 35
-    delta 45 In_RSA_CLIENT_HELLO = 46
-    delta 45 In_RSA_CLIENT_KEY_EXCHANGE = 11
-    delta 45 In_CHANGE_CIPHER_SPEC = 35
-    delta 45 In_FINISHED = 47
-    delta 45 In_APPLICATION = 45
-    delta 45 In_CERTIFICATE = 11
-    delta 45 In_EMPTY_CERTIFICATE = 11
-    delta 45 In_CERTIFICATE_VERIFY = 11
-    delta 45 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 45 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 16 In_RSA_CLIENT_HELLO = 48
-    delta 16 In_RSA_CLIENT_KEY_EXCHANGE = 21
-    delta 16 In_CHANGE_CIPHER_SPEC = 35
-    delta 16 In_FINISHED = 49
-    delta 16 In_APPLICATION = 16
-    delta 16 In_CERTIFICATE = 11
-    delta 16 In_EMPTY_CERTIFICATE = 11
-    delta 16 In_CERTIFICATE_VERIFY = 50
-    delta 16 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 16 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 36 In_RSA_CLIENT_HELLO = 51
-    delta 36 In_RSA_CLIENT_KEY_EXCHANGE = 11
-    delta 36 In_CHANGE_CIPHER_SPEC = 35
-    delta 36 In_FINISHED = 11
-    delta 36 In_APPLICATION = 36
-    delta 36 In_CERTIFICATE = 11
-    delta 36 In_EMPTY_CERTIFICATE = 11
-    delta 36 In_CERTIFICATE_VERIFY = 47
-    delta 36 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 36 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 18 In_RSA_CLIENT_HELLO = 52
-    delta 18 In_RSA_CLIENT_KEY_EXCHANGE = 11
-    delta 18 In_CHANGE_CIPHER_SPEC = 3
-    delta 18 In_FINISHED = 53
-    delta 18 In_APPLICATION = 18
-    delta 18 In_CERTIFICATE = 54
-    delta 18 In_EMPTY_CERTIFICATE = 55
-    delta 18 In_CERTIFICATE_VERIFY = 56
-    delta 18 In_Alert_WARNING_CLOSE_NOTIFY = 18
-    delta 18 In_Alert_FATAL_UNEXPECTED_MESSAGE = 18
-    delta 54 In_RSA_CLIENT_HELLO = 57
-    delta 54 In_RSA_CLIENT_KEY_EXCHANGE = 11
-    delta 54 In_CHANGE_CIPHER_SPEC = 35
-    delta 54 In_FINISHED = 58
-    delta 54 In_APPLICATION = 11
-    delta 54 In_CERTIFICATE = 11
-    delta 54 In_EMPTY_CERTIFICATE = 11
-    delta 54 In_CERTIFICATE_VERIFY = 59
-    delta 54 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 54 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 58 In_RSA_CLIENT_HELLO = 58
-    delta 58 In_RSA_CLIENT_KEY_EXCHANGE = 11
-    delta 58 In_CHANGE_CIPHER_SPEC = 60
-    delta 58 In_FINISHED = 11
-    delta 58 In_APPLICATION = 11
-    delta 58 In_CERTIFICATE = 11
-    delta 58 In_EMPTY_CERTIFICATE = 11
-    delta 58 In_CERTIFICATE_VERIFY = 58
-    delta 58 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 58 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 60 In_RSA_CLIENT_HELLO = 3
-    delta 60 In_RSA_CLIENT_KEY_EXCHANGE = 3
-    delta 60 In_CHANGE_CIPHER_SPEC = 3
-    delta 60 In_FINISHED = 3
-    delta 60 In_APPLICATION = 60
-    delta 60 In_CERTIFICATE = 3
-    delta 60 In_EMPTY_CERTIFICATE = 3
-    delta 60 In_CERTIFICATE_VERIFY = 3
-    delta 60 In_Alert_WARNING_CLOSE_NOTIFY = 60
-    delta 60 In_Alert_FATAL_UNEXPECTED_MESSAGE = 60
-    delta 50 In_RSA_CLIENT_HELLO = 61
-    delta 50 In_RSA_CLIENT_KEY_EXCHANGE = 41
-    delta 50 In_CHANGE_CIPHER_SPEC = 39
-    delta 50 In_FINISHED = 50
-    delta 50 In_APPLICATION = 50
-    delta 50 In_CERTIFICATE = 11
-    delta 50 In_EMPTY_CERTIFICATE = 11
-    delta 50 In_CERTIFICATE_VERIFY = 11
-    delta 50 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 50 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 40 In_RSA_CLIENT_HELLO = 62
-    delta 40 In_RSA_CLIENT_KEY_EXCHANGE = 11
-    delta 40 In_CHANGE_CIPHER_SPEC = 39
-    delta 40 In_FINISHED = 11
-    delta 40 In_APPLICATION = 40
-    delta 40 In_CERTIFICATE = 63
-    delta 40 In_EMPTY_CERTIFICATE = 63
-    delta 40 In_CERTIFICATE_VERIFY = 11
-    delta 40 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 40 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 5 In_RSA_CLIENT_HELLO = 64
-    delta 5 In_RSA_CLIENT_KEY_EXCHANGE = 65
-    delta 5 In_CHANGE_CIPHER_SPEC = 3
-    delta 5 In_FINISHED = 5
-    delta 5 In_APPLICATION = 5
-    delta 5 In_CERTIFICATE = 4
-    delta 5 In_EMPTY_CERTIFICATE = 4
-    delta 5 In_CERTIFICATE_VERIFY = 30
-    delta 5 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 5 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 52 In_RSA_CLIENT_HELLO = 11
-    delta 52 In_RSA_CLIENT_KEY_EXCHANGE = 11
-    delta 52 In_CHANGE_CIPHER_SPEC = 35
-    delta 52 In_FINISHED = 66
-    delta 52 In_APPLICATION = 11
-    delta 52 In_CERTIFICATE = 57
-    delta 52 In_EMPTY_CERTIFICATE = 57
-    delta 52 In_CERTIFICATE_VERIFY = 67
-    delta 52 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 52 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 57 In_RSA_CLIENT_HELLO = 11
-    delta 57 In_RSA_CLIENT_KEY_EXCHANGE = 11
-    delta 57 In_CHANGE_CIPHER_SPEC = 35
-    delta 57 In_FINISHED = 68
-    delta 57 In_APPLICATION = 11
-    delta 57 In_CERTIFICATE = 11
-    delta 57 In_EMPTY_CERTIFICATE = 11
-    delta 57 In_CERTIFICATE_VERIFY = 69
-    delta 57 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 57 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 25 In_RSA_CLIENT_HELLO = 70
-    delta 25 In_RSA_CLIENT_KEY_EXCHANGE = 4
-    delta 25 In_CHANGE_CIPHER_SPEC = 24
-    delta 25 In_FINISHED = 4
-    delta 25 In_APPLICATION = 25
-    delta 25 In_CERTIFICATE = 71
-    delta 25 In_EMPTY_CERTIFICATE = 71
-    delta 25 In_CERTIFICATE_VERIFY = 32
-    delta 25 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 25 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 53 In_RSA_CLIENT_HELLO = 53
-    delta 53 In_RSA_CLIENT_KEY_EXCHANGE = 53
-    delta 53 In_CHANGE_CIPHER_SPEC = 3
-    delta 53 In_FINISHED = 53
-    delta 53 In_APPLICATION = 7
-    delta 53 In_CERTIFICATE = 53
-    delta 53 In_EMPTY_CERTIFICATE = 53
-    delta 53 In_CERTIFICATE_VERIFY = 53
-    delta 53 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 53 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 17 In_RSA_CLIENT_HELLO = 11
-    delta 17 In_RSA_CLIENT_KEY_EXCHANGE = 11
-    delta 17 In_CHANGE_CIPHER_SPEC = 35
-    delta 17 In_FINISHED = 34
-    delta 17 In_APPLICATION = 17
-    delta 17 In_CERTIFICATE = 44
-    delta 17 In_EMPTY_CERTIFICATE = 44
-    delta 17 In_CERTIFICATE_VERIFY = 72
-    delta 17 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 17 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 13 In_RSA_CLIENT_HELLO = 48
-    delta 13 In_RSA_CLIENT_KEY_EXCHANGE = 42
-    delta 13 In_CHANGE_CIPHER_SPEC = 35
-    delta 13 In_FINISHED = 49
-    delta 13 In_APPLICATION = 13
-    delta 13 In_CERTIFICATE = 11
-    delta 13 In_EMPTY_CERTIFICATE = 11
-    delta 13 In_CERTIFICATE_VERIFY = 73
-    delta 13 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 13 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 49 In_RSA_CLIENT_HELLO = 74
-    delta 49 In_RSA_CLIENT_KEY_EXCHANGE = 36
-    delta 49 In_CHANGE_CIPHER_SPEC = 35
-    delta 49 In_FINISHED = 11
-    delta 49 In_APPLICATION = 49
-    delta 49 In_CERTIFICATE = 11
-    delta 49 In_EMPTY_CERTIFICATE = 11
-    delta 49 In_CERTIFICATE_VERIFY = 75
-    delta 49 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 49 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 30 In_RSA_CLIENT_HELLO = 30
-    delta 30 In_RSA_CLIENT_KEY_EXCHANGE = 33
-    delta 30 In_CHANGE_CIPHER_SPEC = 24
-    delta 30 In_FINISHED = 76
-    delta 30 In_APPLICATION = 30
-    delta 30 In_CERTIFICATE = 4
-    delta 30 In_EMPTY_CERTIFICATE = 4
-    delta 30 In_CERTIFICATE_VERIFY = 4
-    delta 30 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 30 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 72 In_RSA_CLIENT_HELLO = 11
-    delta 72 In_RSA_CLIENT_KEY_EXCHANGE = 11
-    delta 72 In_CHANGE_CIPHER_SPEC = 35
-    delta 72 In_FINISHED = 77
-    delta 72 In_APPLICATION = 72
-    delta 72 In_CERTIFICATE = 46
-    delta 72 In_EMPTY_CERTIFICATE = 46
-    delta 72 In_CERTIFICATE_VERIFY = 11
-    delta 72 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 72 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 31 In_RSA_CLIENT_HELLO = 4
-    delta 31 In_RSA_CLIENT_KEY_EXCHANGE = 4
-    delta 31 In_CHANGE_CIPHER_SPEC = 24
-    delta 31 In_FINISHED = 78
-    delta 31 In_APPLICATION = 31
-    delta 31 In_CERTIFICATE = 79
-    delta 31 In_EMPTY_CERTIFICATE = 79
-    delta 31 In_CERTIFICATE_VERIFY = 4
-    delta 31 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 31 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 33 In_RSA_CLIENT_HELLO = 79
-    delta 33 In_RSA_CLIENT_KEY_EXCHANGE = 4
-    delta 33 In_CHANGE_CIPHER_SPEC = 24
-    delta 33 In_FINISHED = 80
-    delta 33 In_APPLICATION = 33
-    delta 33 In_CERTIFICATE = 4
-    delta 33 In_EMPTY_CERTIFICATE = 4
-    delta 33 In_CERTIFICATE_VERIFY = 4
-    delta 33 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 33 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 20 In_RSA_CLIENT_HELLO = 44
-    delta 20 In_RSA_CLIENT_KEY_EXCHANGE = 11
-    delta 20 In_CHANGE_CIPHER_SPEC = 81
-    delta 20 In_FINISHED = 36
-    delta 20 In_APPLICATION = 20
-    delta 20 In_CERTIFICATE = 11
-    delta 20 In_EMPTY_CERTIFICATE = 11
-    delta 20 In_CERTIFICATE_VERIFY = 20
-    delta 20 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 20 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 81 In_RSA_CLIENT_HELLO = 11
-    delta 81 In_RSA_CLIENT_KEY_EXCHANGE = 11
-    delta 81 In_CHANGE_CIPHER_SPEC = 3
-    delta 81 In_FINISHED = 53
-    delta 81 In_APPLICATION = 81
-    delta 81 In_CERTIFICATE = 11
-    delta 81 In_EMPTY_CERTIFICATE = 11
-    delta 81 In_CERTIFICATE_VERIFY = 11
-    delta 81 In_Alert_WARNING_CLOSE_NOTIFY = 81
-    delta 81 In_Alert_FATAL_UNEXPECTED_MESSAGE = 81
-    delta 38 In_RSA_CLIENT_HELLO = 11
-    delta 38 In_RSA_CLIENT_KEY_EXCHANGE = 11
-    delta 38 In_CHANGE_CIPHER_SPEC = 39
-    delta 38 In_FINISHED = 62
-    delta 38 In_APPLICATION = 38
-    delta 38 In_CERTIFICATE = 82
-    delta 38 In_EMPTY_CERTIFICATE = 82
-    delta 38 In_CERTIFICATE_VERIFY = 11
-    delta 38 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 38 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 43 In_RSA_CLIENT_HELLO = 72
-    delta 43 In_RSA_CLIENT_KEY_EXCHANGE = 11
-    delta 43 In_CHANGE_CIPHER_SPEC = 35
-    delta 43 In_FINISHED = 37
-    delta 43 In_APPLICATION = 43
-    delta 43 In_CERTIFICATE = 45
-    delta 43 In_EMPTY_CERTIFICATE = 45
-    delta 43 In_CERTIFICATE_VERIFY = 11
-    delta 43 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 43 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 66 In_RSA_CLIENT_HELLO = 11
-    delta 66 In_RSA_CLIENT_KEY_EXCHANGE = 11
-    delta 66 In_CHANGE_CIPHER_SPEC = 35
-    delta 66 In_FINISHED = 11
-    delta 66 In_APPLICATION = 11
-    delta 66 In_CERTIFICATE = 68
-    delta 66 In_EMPTY_CERTIFICATE = 68
-    delta 66 In_CERTIFICATE_VERIFY = 83
-    delta 66 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 66 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 48 In_RSA_CLIENT_HELLO = 11
-    delta 48 In_RSA_CLIENT_KEY_EXCHANGE = 44
-    delta 48 In_CHANGE_CIPHER_SPEC = 35
-    delta 48 In_FINISHED = 74
-    delta 48 In_APPLICATION = 48
-    delta 48 In_CERTIFICATE = 11
-    delta 48 In_EMPTY_CERTIFICATE = 11
-    delta 48 In_CERTIFICATE_VERIFY = 84
-    delta 48 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 48 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 34 In_RSA_CLIENT_HELLO = 11
-    delta 34 In_RSA_CLIENT_KEY_EXCHANGE = 11
-    delta 34 In_CHANGE_CIPHER_SPEC = 35
-    delta 34 In_FINISHED = 11
-    delta 34 In_APPLICATION = 34
-    delta 34 In_CERTIFICATE = 51
-    delta 34 In_EMPTY_CERTIFICATE = 51
-    delta 34 In_CERTIFICATE_VERIFY = 77
-    delta 34 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 34 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 56 In_RSA_CLIENT_HELLO = 85
-    delta 56 In_RSA_CLIENT_KEY_EXCHANGE = 11
-    delta 56 In_CHANGE_CIPHER_SPEC = 39
-    delta 56 In_FINISHED = 86
-    delta 56 In_APPLICATION = 11
-    delta 56 In_CERTIFICATE = 87
-    delta 56 In_EMPTY_CERTIFICATE = 87
-    delta 56 In_CERTIFICATE_VERIFY = 11
-    delta 56 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 56 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 26 In_RSA_CLIENT_HELLO = 88
-    delta 26 In_RSA_CLIENT_KEY_EXCHANGE = 4
-    delta 26 In_CHANGE_CIPHER_SPEC = 24
-    delta 26 In_FINISHED = 71
-    delta 26 In_APPLICATION = 26
-    delta 26 In_CERTIFICATE = 4
-    delta 26 In_EMPTY_CERTIFICATE = 4
-    delta 26 In_CERTIFICATE_VERIFY = 33
-    delta 26 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 26 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 41 In_RSA_CLIENT_HELLO = 82
-    delta 41 In_RSA_CLIENT_KEY_EXCHANGE = 11
-    delta 41 In_CHANGE_CIPHER_SPEC = 39
-    delta 41 In_FINISHED = 63
-    delta 41 In_APPLICATION = 41
-    delta 41 In_CERTIFICATE = 11
-    delta 41 In_EMPTY_CERTIFICATE = 11
-    delta 41 In_CERTIFICATE_VERIFY = 11
-    delta 41 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 41 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 47 In_RSA_CLIENT_HELLO = 89
-    delta 47 In_RSA_CLIENT_KEY_EXCHANGE = 11
-    delta 47 In_CHANGE_CIPHER_SPEC = 35
-    delta 47 In_FINISHED = 11
-    delta 47 In_APPLICATION = 47
-    delta 47 In_CERTIFICATE = 11
-    delta 47 In_EMPTY_CERTIFICATE = 11
-    delta 47 In_CERTIFICATE_VERIFY = 11
-    delta 47 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 47 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 15 In_RSA_CLIENT_HELLO = 12
-    delta 15 In_RSA_CLIENT_KEY_EXCHANGE = 11
-    delta 15 In_CHANGE_CIPHER_SPEC = 3
-    delta 15 In_FINISHED = 90
-    delta 15 In_APPLICATION = 15
-    delta 15 In_CERTIFICATE = 11
-    delta 15 In_EMPTY_CERTIFICATE = 11
-    delta 15 In_CERTIFICATE_VERIFY = 91
-    delta 15 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 15 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 68 In_RSA_CLIENT_HELLO = 11
-    delta 68 In_RSA_CLIENT_KEY_EXCHANGE = 11
-    delta 68 In_CHANGE_CIPHER_SPEC = 35
-    delta 68 In_FINISHED = 11
-    delta 68 In_APPLICATION = 11
-    delta 68 In_CERTIFICATE = 11
-    delta 68 In_EMPTY_CERTIFICATE = 11
-    delta 68 In_CERTIFICATE_VERIFY = 92
-    delta 68 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 68 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 21 In_RSA_CLIENT_HELLO = 44
-    delta 21 In_RSA_CLIENT_KEY_EXCHANGE = 11
-    delta 21 In_CHANGE_CIPHER_SPEC = 81
-    delta 21 In_FINISHED = 36
-    delta 21 In_APPLICATION = 21
-    delta 21 In_CERTIFICATE = 11
-    delta 21 In_EMPTY_CERTIFICATE = 11
-    delta 21 In_CERTIFICATE_VERIFY = 41
-    delta 21 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 21 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 32 In_RSA_CLIENT_HELLO = 78
-    delta 32 In_RSA_CLIENT_KEY_EXCHANGE = 4
-    delta 32 In_CHANGE_CIPHER_SPEC = 24
-    delta 32 In_FINISHED = 4
-    delta 32 In_APPLICATION = 32
-    delta 32 In_CERTIFICATE = 80
-    delta 32 In_EMPTY_CERTIFICATE = 80
-    delta 32 In_CERTIFICATE_VERIFY = 4
-    delta 32 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 32 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 44 In_RSA_CLIENT_HELLO = 11
-    delta 44 In_RSA_CLIENT_KEY_EXCHANGE = 11
-    delta 44 In_CHANGE_CIPHER_SPEC = 35
-    delta 44 In_FINISHED = 51
-    delta 44 In_APPLICATION = 44
-    delta 44 In_CERTIFICATE = 11
-    delta 44 In_EMPTY_CERTIFICATE = 11
-    delta 44 In_CERTIFICATE_VERIFY = 46
-    delta 44 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 44 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 12 In_RSA_CLIENT_HELLO = 12
-    delta 12 In_RSA_CLIENT_KEY_EXCHANGE = 93
-    delta 12 In_CHANGE_CIPHER_SPEC = 3
-    delta 12 In_FINISHED = 90
-    delta 12 In_APPLICATION = 12
-    delta 12 In_CERTIFICATE = 11
-    delta 12 In_EMPTY_CERTIFICATE = 11
-    delta 12 In_CERTIFICATE_VERIFY = 73
-    delta 12 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 12 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 73 In_RSA_CLIENT_HELLO = 84
-    delta 73 In_RSA_CLIENT_KEY_EXCHANGE = 45
-    delta 73 In_CHANGE_CIPHER_SPEC = 35
-    delta 73 In_FINISHED = 75
-    delta 73 In_APPLICATION = 73
-    delta 73 In_CERTIFICATE = 11
-    delta 73 In_EMPTY_CERTIFICATE = 11
-    delta 73 In_CERTIFICATE_VERIFY = 11
-    delta 73 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 73 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 88 In_RSA_CLIENT_HELLO = 4
-    delta 88 In_RSA_CLIENT_KEY_EXCHANGE = 4
-    delta 88 In_CHANGE_CIPHER_SPEC = 24
-    delta 88 In_FINISHED = 94
-    delta 88 In_APPLICATION = 88
-    delta 88 In_CERTIFICATE = 4
-    delta 88 In_EMPTY_CERTIFICATE = 4
-    delta 88 In_CERTIFICATE_VERIFY = 79
-    delta 88 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 88 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 63 In_RSA_CLIENT_HELLO = 95
-    delta 63 In_RSA_CLIENT_KEY_EXCHANGE = 11
-    delta 63 In_CHANGE_CIPHER_SPEC = 39
-    delta 63 In_FINISHED = 11
-    delta 63 In_APPLICATION = 63
-    delta 63 In_CERTIFICATE = 11
-    delta 63 In_EMPTY_CERTIFICATE = 11
-    delta 63 In_CERTIFICATE_VERIFY = 11
-    delta 63 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 63 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 71 In_RSA_CLIENT_HELLO = 94
-    delta 71 In_RSA_CLIENT_KEY_EXCHANGE = 4
-    delta 71 In_CHANGE_CIPHER_SPEC = 24
-    delta 71 In_FINISHED = 4
-    delta 71 In_APPLICATION = 71
-    delta 71 In_CERTIFICATE = 4
-    delta 71 In_EMPTY_CERTIFICATE = 4
-    delta 71 In_CERTIFICATE_VERIFY = 80
-    delta 71 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 71 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 51 In_RSA_CLIENT_HELLO = 11
-    delta 51 In_RSA_CLIENT_KEY_EXCHANGE = 11
-    delta 51 In_CHANGE_CIPHER_SPEC = 35
-    delta 51 In_FINISHED = 11
-    delta 51 In_APPLICATION = 51
-    delta 51 In_CERTIFICATE = 11
-    delta 51 In_EMPTY_CERTIFICATE = 11
-    delta 51 In_CERTIFICATE_VERIFY = 89
-    delta 51 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 51 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 46 In_RSA_CLIENT_HELLO = 11
-    delta 46 In_RSA_CLIENT_KEY_EXCHANGE = 11
-    delta 46 In_CHANGE_CIPHER_SPEC = 35
-    delta 46 In_FINISHED = 89
-    delta 46 In_APPLICATION = 46
-    delta 46 In_CERTIFICATE = 11
-    delta 46 In_EMPTY_CERTIFICATE = 11
-    delta 46 In_CERTIFICATE_VERIFY = 11
-    delta 46 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 46 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 29 In_RSA_CLIENT_HELLO = 96
-    delta 29 In_RSA_CLIENT_KEY_EXCHANGE = 71
-    delta 29 In_CHANGE_CIPHER_SPEC = 24
-    delta 29 In_FINISHED = 4
-    delta 29 In_APPLICATION = 29
-    delta 29 In_CERTIFICATE = 4
-    delta 29 In_EMPTY_CERTIFICATE = 4
-    delta 29 In_CERTIFICATE_VERIFY = 76
-    delta 29 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 29 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 77 In_RSA_CLIENT_HELLO = 11
-    delta 77 In_RSA_CLIENT_KEY_EXCHANGE = 11
-    delta 77 In_CHANGE_CIPHER_SPEC = 35
-    delta 77 In_FINISHED = 11
-    delta 77 In_APPLICATION = 77
-    delta 77 In_CERTIFICATE = 89
-    delta 77 In_EMPTY_CERTIFICATE = 89
-    delta 77 In_CERTIFICATE_VERIFY = 11
-    delta 77 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 77 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 79 In_RSA_CLIENT_HELLO = 4
-    delta 79 In_RSA_CLIENT_KEY_EXCHANGE = 4
-    delta 79 In_CHANGE_CIPHER_SPEC = 24
-    delta 79 In_FINISHED = 97
-    delta 79 In_APPLICATION = 79
-    delta 79 In_CERTIFICATE = 4
-    delta 79 In_EMPTY_CERTIFICATE = 4
-    delta 79 In_CERTIFICATE_VERIFY = 4
-    delta 79 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 79 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 84 In_RSA_CLIENT_HELLO = 11
-    delta 84 In_RSA_CLIENT_KEY_EXCHANGE = 46
-    delta 84 In_CHANGE_CIPHER_SPEC = 35
-    delta 84 In_FINISHED = 98
-    delta 84 In_APPLICATION = 84
-    delta 84 In_CERTIFICATE = 11
-    delta 84 In_EMPTY_CERTIFICATE = 11
-    delta 84 In_CERTIFICATE_VERIFY = 11
-    delta 84 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 84 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 91 In_RSA_CLIENT_HELLO = 84
-    delta 91 In_RSA_CLIENT_KEY_EXCHANGE = 20
-    delta 91 In_CHANGE_CIPHER_SPEC = 35
-    delta 91 In_FINISHED = 75
-    delta 91 In_APPLICATION = 91
-    delta 91 In_CERTIFICATE = 11
-    delta 91 In_EMPTY_CERTIFICATE = 11
-    delta 91 In_CERTIFICATE_VERIFY = 11
-    delta 91 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 91 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 75 In_RSA_CLIENT_HELLO = 98
-    delta 75 In_RSA_CLIENT_KEY_EXCHANGE = 47
-    delta 75 In_CHANGE_CIPHER_SPEC = 35
-    delta 75 In_FINISHED = 11
-    delta 75 In_APPLICATION = 75
-    delta 75 In_CERTIFICATE = 11
-    delta 75 In_EMPTY_CERTIFICATE = 11
-    delta 75 In_CERTIFICATE_VERIFY = 11
-    delta 75 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 75 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 69 In_RSA_CLIENT_HELLO = 11
-    delta 69 In_RSA_CLIENT_KEY_EXCHANGE = 11
-    delta 69 In_CHANGE_CIPHER_SPEC = 35
-    delta 69 In_FINISHED = 92
-    delta 69 In_APPLICATION = 11
-    delta 69 In_CERTIFICATE = 11
-    delta 69 In_EMPTY_CERTIFICATE = 11
-    delta 69 In_CERTIFICATE_VERIFY = 11
-    delta 69 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 69 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 78 In_RSA_CLIENT_HELLO = 4
-    delta 78 In_RSA_CLIENT_KEY_EXCHANGE = 4
-    delta 78 In_CHANGE_CIPHER_SPEC = 24
-    delta 78 In_FINISHED = 4
-    delta 78 In_APPLICATION = 78
-    delta 78 In_CERTIFICATE = 97
-    delta 78 In_EMPTY_CERTIFICATE = 97
-    delta 78 In_CERTIFICATE_VERIFY = 4
-    delta 78 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 78 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 97 In_RSA_CLIENT_HELLO = 4
-    delta 97 In_RSA_CLIENT_KEY_EXCHANGE = 4
-    delta 97 In_CHANGE_CIPHER_SPEC = 24
-    delta 97 In_FINISHED = 4
-    delta 97 In_APPLICATION = 97
-    delta 97 In_CERTIFICATE = 4
-    delta 97 In_EMPTY_CERTIFICATE = 4
-    delta 97 In_CERTIFICATE_VERIFY = 4
-    delta 97 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 97 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 37 In_RSA_CLIENT_HELLO = 77
-    delta 37 In_RSA_CLIENT_KEY_EXCHANGE = 11
-    delta 37 In_CHANGE_CIPHER_SPEC = 35
-    delta 37 In_FINISHED = 11
-    delta 37 In_APPLICATION = 37
-    delta 37 In_CERTIFICATE = 47
-    delta 37 In_EMPTY_CERTIFICATE = 47
-    delta 37 In_CERTIFICATE_VERIFY = 11
-    delta 37 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 37 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 85 In_RSA_CLIENT_HELLO = 11
-    delta 85 In_RSA_CLIENT_KEY_EXCHANGE = 11
-    delta 85 In_CHANGE_CIPHER_SPEC = 39
-    delta 85 In_FINISHED = 99
-    delta 85 In_APPLICATION = 11
-    delta 85 In_CERTIFICATE = 85
-    delta 85 In_EMPTY_CERTIFICATE = 85
-    delta 85 In_CERTIFICATE_VERIFY = 11
-    delta 85 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 85 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 92 In_RSA_CLIENT_HELLO = 11
-    delta 92 In_RSA_CLIENT_KEY_EXCHANGE = 11
-    delta 92 In_CHANGE_CIPHER_SPEC = 35
-    delta 92 In_FINISHED = 11
-    delta 92 In_APPLICATION = 11
-    delta 92 In_CERTIFICATE = 11
-    delta 92 In_EMPTY_CERTIFICATE = 11
-    delta 92 In_CERTIFICATE_VERIFY = 11
-    delta 92 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 92 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 67 In_RSA_CLIENT_HELLO = 11
-    delta 67 In_RSA_CLIENT_KEY_EXCHANGE = 11
-    delta 67 In_CHANGE_CIPHER_SPEC = 35
-    delta 67 In_FINISHED = 83
-    delta 67 In_APPLICATION = 11
-    delta 67 In_CERTIFICATE = 69
-    delta 67 In_EMPTY_CERTIFICATE = 69
-    delta 67 In_CERTIFICATE_VERIFY = 11
-    delta 67 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 67 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 65 In_RSA_CLIENT_HELLO = 65
-    delta 65 In_RSA_CLIENT_KEY_EXCHANGE = 4
-    delta 65 In_CHANGE_CIPHER_SPEC = 3
-    delta 65 In_FINISHED = 100
-    delta 65 In_APPLICATION = 65
-    delta 65 In_CERTIFICATE = 4
-    delta 65 In_EMPTY_CERTIFICATE = 4
-    delta 65 In_CERTIFICATE_VERIFY = 33
-    delta 65 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 65 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 61 In_RSA_CLIENT_HELLO = 11
-    delta 61 In_RSA_CLIENT_KEY_EXCHANGE = 82
-    delta 61 In_CHANGE_CIPHER_SPEC = 39
-    delta 61 In_FINISHED = 101
-    delta 61 In_APPLICATION = 61
-    delta 61 In_CERTIFICATE = 11
-    delta 61 In_EMPTY_CERTIFICATE = 11
-    delta 61 In_CERTIFICATE_VERIFY = 11
-    delta 61 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 61 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 89 In_RSA_CLIENT_HELLO = 11
-    delta 89 In_RSA_CLIENT_KEY_EXCHANGE = 11
-    delta 89 In_CHANGE_CIPHER_SPEC = 35
-    delta 89 In_FINISHED = 11
-    delta 89 In_APPLICATION = 89
-    delta 89 In_CERTIFICATE = 11
-    delta 89 In_EMPTY_CERTIFICATE = 11
-    delta 89 In_CERTIFICATE_VERIFY = 11
-    delta 89 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 89 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 87 In_RSA_CLIENT_HELLO = 85
-    delta 87 In_RSA_CLIENT_KEY_EXCHANGE = 11
-    delta 87 In_CHANGE_CIPHER_SPEC = 39
-    delta 87 In_FINISHED = 63
-    delta 87 In_APPLICATION = 11
-    delta 87 In_CERTIFICATE = 11
-    delta 87 In_EMPTY_CERTIFICATE = 11
-    delta 87 In_CERTIFICATE_VERIFY = 11
-    delta 87 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 87 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 23 In_RSA_CLIENT_HELLO = 4
-    delta 23 In_RSA_CLIENT_KEY_EXCHANGE = 4
-    delta 23 In_CHANGE_CIPHER_SPEC = 24
-    delta 23 In_FINISHED = 70
-    delta 23 In_APPLICATION = 23
-    delta 23 In_CERTIFICATE = 88
-    delta 23 In_EMPTY_CERTIFICATE = 88
-    delta 23 In_CERTIFICATE_VERIFY = 31
-    delta 23 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 23 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 82 In_RSA_CLIENT_HELLO = 11
-    delta 82 In_RSA_CLIENT_KEY_EXCHANGE = 11
-    delta 82 In_CHANGE_CIPHER_SPEC = 39
-    delta 82 In_FINISHED = 95
-    delta 82 In_APPLICATION = 82
-    delta 82 In_CERTIFICATE = 11
-    delta 82 In_EMPTY_CERTIFICATE = 11
-    delta 82 In_CERTIFICATE_VERIFY = 11
-    delta 82 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 82 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 80 In_RSA_CLIENT_HELLO = 97
-    delta 80 In_RSA_CLIENT_KEY_EXCHANGE = 4
-    delta 80 In_CHANGE_CIPHER_SPEC = 24
-    delta 80 In_FINISHED = 4
-    delta 80 In_APPLICATION = 80
-    delta 80 In_CERTIFICATE = 4
-    delta 80 In_EMPTY_CERTIFICATE = 4
-    delta 80 In_CERTIFICATE_VERIFY = 4
-    delta 80 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 80 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 94 In_RSA_CLIENT_HELLO = 4
-    delta 94 In_RSA_CLIENT_KEY_EXCHANGE = 4
-    delta 94 In_CHANGE_CIPHER_SPEC = 24
-    delta 94 In_FINISHED = 4
-    delta 94 In_APPLICATION = 94
-    delta 94 In_CERTIFICATE = 4
-    delta 94 In_EMPTY_CERTIFICATE = 4
-    delta 94 In_CERTIFICATE_VERIFY = 97
-    delta 94 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 94 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 86 In_RSA_CLIENT_HELLO = 99
-    delta 86 In_RSA_CLIENT_KEY_EXCHANGE = 11
-    delta 86 In_CHANGE_CIPHER_SPEC = 39
-    delta 86 In_FINISHED = 11
-    delta 86 In_APPLICATION = 11
-    delta 86 In_CERTIFICATE = 63
-    delta 86 In_EMPTY_CERTIFICATE = 63
-    delta 86 In_CERTIFICATE_VERIFY = 11
-    delta 86 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 86 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 64 In_RSA_CLIENT_HELLO = 4
-    delta 64 In_RSA_CLIENT_KEY_EXCHANGE = 65
-    delta 64 In_CHANGE_CIPHER_SPEC = 3
-    delta 64 In_FINISHED = 64
-    delta 64 In_APPLICATION = 64
-    delta 64 In_CERTIFICATE = 4
-    delta 64 In_EMPTY_CERTIFICATE = 4
-    delta 64 In_CERTIFICATE_VERIFY = 30
-    delta 64 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 64 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 28 In_RSA_CLIENT_HELLO = 4
-    delta 28 In_RSA_CLIENT_KEY_EXCHANGE = 88
-    delta 28 In_CHANGE_CIPHER_SPEC = 24
-    delta 28 In_FINISHED = 96
-    delta 28 In_APPLICATION = 28
-    delta 28 In_CERTIFICATE = 4
-    delta 28 In_EMPTY_CERTIFICATE = 4
-    delta 28 In_CERTIFICATE_VERIFY = 30
-    delta 28 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 28 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 70 In_RSA_CLIENT_HELLO = 4
-    delta 70 In_RSA_CLIENT_KEY_EXCHANGE = 4
-    delta 70 In_CHANGE_CIPHER_SPEC = 24
-    delta 70 In_FINISHED = 4
-    delta 70 In_APPLICATION = 70
-    delta 70 In_CERTIFICATE = 94
-    delta 70 In_EMPTY_CERTIFICATE = 94
-    delta 70 In_CERTIFICATE_VERIFY = 78
-    delta 70 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 70 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 100 In_RSA_CLIENT_HELLO = 100
-    delta 100 In_RSA_CLIENT_KEY_EXCHANGE = 4
-    delta 100 In_CHANGE_CIPHER_SPEC = 3
-    delta 100 In_FINISHED = 4
-    delta 100 In_APPLICATION = 100
-    delta 100 In_CERTIFICATE = 4
-    delta 100 In_EMPTY_CERTIFICATE = 4
-    delta 100 In_CERTIFICATE_VERIFY = 80
-    delta 100 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 100 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 90 In_RSA_CLIENT_HELLO = 102
-    delta 90 In_RSA_CLIENT_KEY_EXCHANGE = 103
-    delta 90 In_CHANGE_CIPHER_SPEC = 3
-    delta 90 In_FINISHED = 11
-    delta 90 In_APPLICATION = 90
-    delta 90 In_CERTIFICATE = 11
-    delta 90 In_EMPTY_CERTIFICATE = 11
-    delta 90 In_CERTIFICATE_VERIFY = 75
-    delta 90 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 90 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 103 In_RSA_CLIENT_HELLO = 103
-    delta 103 In_RSA_CLIENT_KEY_EXCHANGE = 11
-    delta 103 In_CHANGE_CIPHER_SPEC = 3
-    delta 103 In_FINISHED = 11
-    delta 103 In_APPLICATION = 103
-    delta 103 In_CERTIFICATE = 11
-    delta 103 In_EMPTY_CERTIFICATE = 11
-    delta 103 In_CERTIFICATE_VERIFY = 47
-    delta 103 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 103 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 83 In_RSA_CLIENT_HELLO = 11
-    delta 83 In_RSA_CLIENT_KEY_EXCHANGE = 11
-    delta 83 In_CHANGE_CIPHER_SPEC = 35
-    delta 83 In_FINISHED = 11
-    delta 83 In_APPLICATION = 11
-    delta 83 In_CERTIFICATE = 92
-    delta 83 In_EMPTY_CERTIFICATE = 92
-    delta 83 In_CERTIFICATE_VERIFY = 11
-    delta 83 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 83 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 62 In_RSA_CLIENT_HELLO = 11
-    delta 62 In_RSA_CLIENT_KEY_EXCHANGE = 11
-    delta 62 In_CHANGE_CIPHER_SPEC = 39
-    delta 62 In_FINISHED = 11
-    delta 62 In_APPLICATION = 62
-    delta 62 In_CERTIFICATE = 95
-    delta 62 In_EMPTY_CERTIFICATE = 95
-    delta 62 In_CERTIFICATE_VERIFY = 11
-    delta 62 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 62 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 99 In_RSA_CLIENT_HELLO = 11
-    delta 99 In_RSA_CLIENT_KEY_EXCHANGE = 11
-    delta 99 In_CHANGE_CIPHER_SPEC = 39
-    delta 99 In_FINISHED = 11
-    delta 99 In_APPLICATION = 11
-    delta 99 In_CERTIFICATE = 104
-    delta 99 In_EMPTY_CERTIFICATE = 104
-    delta 99 In_CERTIFICATE_VERIFY = 11
-    delta 99 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 99 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 101 In_RSA_CLIENT_HELLO = 11
-    delta 101 In_RSA_CLIENT_KEY_EXCHANGE = 95
-    delta 101 In_CHANGE_CIPHER_SPEC = 39
-    delta 101 In_FINISHED = 11
-    delta 101 In_APPLICATION = 101
-    delta 101 In_CERTIFICATE = 11
-    delta 101 In_EMPTY_CERTIFICATE = 11
-    delta 101 In_CERTIFICATE_VERIFY = 11
-    delta 101 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 101 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 95 In_RSA_CLIENT_HELLO = 11
-    delta 95 In_RSA_CLIENT_KEY_EXCHANGE = 11
-    delta 95 In_CHANGE_CIPHER_SPEC = 39
-    delta 95 In_FINISHED = 11
-    delta 95 In_APPLICATION = 95
-    delta 95 In_CERTIFICATE = 11
-    delta 95 In_EMPTY_CERTIFICATE = 11
-    delta 95 In_CERTIFICATE_VERIFY = 11
-    delta 95 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 95 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 102 In_RSA_CLIENT_HELLO = 11
-    delta 102 In_RSA_CLIENT_KEY_EXCHANGE = 103
-    delta 102 In_CHANGE_CIPHER_SPEC = 3
-    delta 102 In_FINISHED = 11
-    delta 102 In_APPLICATION = 102
-    delta 102 In_CERTIFICATE = 11
-    delta 102 In_EMPTY_CERTIFICATE = 11
-    delta 102 In_CERTIFICATE_VERIFY = 98
-    delta 102 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 102 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 104 In_RSA_CLIENT_HELLO = 11
-    delta 104 In_RSA_CLIENT_KEY_EXCHANGE = 11
-    delta 104 In_CHANGE_CIPHER_SPEC = 39
-    delta 104 In_FINISHED = 11
-    delta 104 In_APPLICATION = 11
-    delta 104 In_CERTIFICATE = 11
-    delta 104 In_EMPTY_CERTIFICATE = 11
-    delta 104 In_CERTIFICATE_VERIFY = 11
-    delta 104 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 104 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 98 In_RSA_CLIENT_HELLO = 11
-    delta 98 In_RSA_CLIENT_KEY_EXCHANGE = 89
-    delta 98 In_CHANGE_CIPHER_SPEC = 35
-    delta 98 In_FINISHED = 11
-    delta 98 In_APPLICATION = 98
-    delta 98 In_CERTIFICATE = 11
-    delta 98 In_EMPTY_CERTIFICATE = 11
-    delta 98 In_CERTIFICATE_VERIFY = 11
-    delta 98 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 98 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 93 In_RSA_CLIENT_HELLO = 93
-    delta 93 In_RSA_CLIENT_KEY_EXCHANGE = 11
-    delta 93 In_CHANGE_CIPHER_SPEC = 3
-    delta 93 In_FINISHED = 103
-    delta 93 In_APPLICATION = 93
-    delta 93 In_CERTIFICATE = 11
-    delta 93 In_EMPTY_CERTIFICATE = 11
-    delta 93 In_CERTIFICATE_VERIFY = 45
-    delta 93 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 93 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 96 In_RSA_CLIENT_HELLO = 4
-    delta 96 In_RSA_CLIENT_KEY_EXCHANGE = 94
-    delta 96 In_CHANGE_CIPHER_SPEC = 24
-    delta 96 In_FINISHED = 4
-    delta 96 In_APPLICATION = 96
-    delta 96 In_CERTIFICATE = 4
-    delta 96 In_EMPTY_CERTIFICATE = 4
-    delta 96 In_CERTIFICATE_VERIFY = 76
-    delta 96 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 96 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 55 In_RSA_CLIENT_HELLO = 57
-    delta 55 In_RSA_CLIENT_KEY_EXCHANGE = 11
-    delta 55 In_CHANGE_CIPHER_SPEC = 35
-    delta 55 In_FINISHED = 58
-    delta 55 In_APPLICATION = 11
-    delta 55 In_CERTIFICATE = 11
-    delta 55 In_EMPTY_CERTIFICATE = 11
-    delta 55 In_CERTIFICATE_VERIFY = 87
-    delta 55 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 55 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 59 In_RSA_CLIENT_HELLO = 69
-    delta 59 In_RSA_CLIENT_KEY_EXCHANGE = 11
-    delta 59 In_CHANGE_CIPHER_SPEC = 35
-    delta 59 In_FINISHED = 58
-    delta 59 In_APPLICATION = 11
-    delta 59 In_CERTIFICATE = 11
-    delta 59 In_EMPTY_CERTIFICATE = 11
-    delta 59 In_CERTIFICATE_VERIFY = 11
-    delta 59 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 59 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 74 In_RSA_CLIENT_HELLO = 11
-    delta 74 In_RSA_CLIENT_KEY_EXCHANGE = 51
-    delta 74 In_CHANGE_CIPHER_SPEC = 35
-    delta 74 In_FINISHED = 11
-    delta 74 In_APPLICATION = 74
-    delta 74 In_CERTIFICATE = 11
-    delta 74 In_EMPTY_CERTIFICATE = 11
-    delta 74 In_CERTIFICATE_VERIFY = 98
-    delta 74 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 74 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 76 In_RSA_CLIENT_HELLO = 76
-    delta 76 In_RSA_CLIENT_KEY_EXCHANGE = 80
-    delta 76 In_CHANGE_CIPHER_SPEC = 24
-    delta 76 In_FINISHED = 4
-    delta 76 In_APPLICATION = 76
-    delta 76 In_CERTIFICATE = 4
-    delta 76 In_EMPTY_CERTIFICATE = 4
-    delta 76 In_CERTIFICATE_VERIFY = 4
-    delta 76 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 76 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta _ _ = error "haal-gen: undefined transition"
-    lambda 0 In_RSA_CLIENT_HELLO = Out_HELLO_VERIFY_REQUEST
-    lambda 0 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 0 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 0 In_FINISHED = Out_TIMEOUT
-    lambda 0 In_APPLICATION = Out_TIMEOUT
-    lambda 0 In_CERTIFICATE = Out_TIMEOUT
-    lambda 0 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 0 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 0 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 0 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 7 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 7 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 7 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 7 In_FINISHED = Out_TIMEOUT
-    lambda 7 In_APPLICATION = Out_TIMEOUT
-    lambda 7 In_CERTIFICATE = Out_TIMEOUT
-    lambda 7 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 7 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 7 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 7 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 1 In_RSA_CLIENT_HELLO = Out_SERVER_HELLO_CERTIFICATE_CERTIFICATE_REQUEST_SERVER_HELLO_DONE
-    lambda 1 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 1 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 1 In_FINISHED = Out_TIMEOUT
-    lambda 1 In_APPLICATION = Out_TIMEOUT
-    lambda 1 In_CERTIFICATE = Out_TIMEOUT
-    lambda 1 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 1 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 1 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 1 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 8 In_RSA_CLIENT_HELLO = Out_SOCKET_CLOSED
-    lambda 8 In_RSA_CLIENT_KEY_EXCHANGE = Out_SOCKET_CLOSED
-    lambda 8 In_CHANGE_CIPHER_SPEC = Out_SOCKET_CLOSED
-    lambda 8 In_FINISHED = Out_SOCKET_CLOSED
-    lambda 8 In_APPLICATION = Out_SOCKET_CLOSED
-    lambda 8 In_CERTIFICATE = Out_SOCKET_CLOSED
-    lambda 8 In_EMPTY_CERTIFICATE = Out_SOCKET_CLOSED
-    lambda 8 In_CERTIFICATE_VERIFY = Out_SOCKET_CLOSED
-    lambda 8 In_Alert_WARNING_CLOSE_NOTIFY = Out_SOCKET_CLOSED
-    lambda 8 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_SOCKET_CLOSED
-    lambda 9 In_RSA_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 9 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 9 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 9 In_FINISHED = Out_TIMEOUT
-    lambda 9 In_APPLICATION = Out_TIMEOUT
-    lambda 9 In_CERTIFICATE = Out_TIMEOUT
-    lambda 9 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 9 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 9 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 9 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 4 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 4 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 4 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 4 In_FINISHED = Out_TIMEOUT
-    lambda 4 In_APPLICATION = Out_TIMEOUT
-    lambda 4 In_CERTIFICATE = Out_TIMEOUT
-    lambda 4 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 4 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 4 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 4 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 3 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 3 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 3 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 3 In_FINISHED = Out_TIMEOUT
-    lambda 3 In_APPLICATION = Out_TIMEOUT
-    lambda 3 In_CERTIFICATE = Out_TIMEOUT
-    lambda 3 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 3 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 3 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 3 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 14 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 14 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 14 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 14 In_FINISHED = Out_TIMEOUT
-    lambda 14 In_APPLICATION = Out_TIMEOUT
-    lambda 14 In_CERTIFICATE = Out_TIMEOUT
-    lambda 14 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 14 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 14 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 14 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 2 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 2 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 2 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 2 In_FINISHED = Out_TIMEOUT
-    lambda 2 In_APPLICATION = Out_TIMEOUT
-    lambda 2 In_CERTIFICATE = Out_TIMEOUT
-    lambda 2 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 2 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 2 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 2 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 24 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 24 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 24 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 24 In_FINISHED = Out_TIMEOUT
-    lambda 24 In_APPLICATION = Out_TIMEOUT
-    lambda 24 In_CERTIFICATE = Out_TIMEOUT
-    lambda 24 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 24 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 24 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 24 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 6 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 6 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 6 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 6 In_FINISHED = Out_TIMEOUT
-    lambda 6 In_APPLICATION = Out_TIMEOUT
-    lambda 6 In_CERTIFICATE = Out_TIMEOUT
-    lambda 6 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 6 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 6 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 6 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 27 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 27 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 27 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 27 In_FINISHED = Out_TIMEOUT
-    lambda 27 In_APPLICATION = Out_TIMEOUT
-    lambda 27 In_CERTIFICATE = Out_TIMEOUT
-    lambda 27 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 27 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 27 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 27 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 19 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 19 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 19 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 19 In_FINISHED = Out_TIMEOUT
-    lambda 19 In_APPLICATION = Out_TIMEOUT
-    lambda 19 In_CERTIFICATE = Out_TIMEOUT
-    lambda 19 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 19 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 19 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 19 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 22 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 22 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 22 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 22 In_FINISHED = Out_TIMEOUT
-    lambda 22 In_APPLICATION = Out_TIMEOUT
-    lambda 22 In_CERTIFICATE = Out_TIMEOUT
-    lambda 22 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 22 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 22 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 22 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 39 In_RSA_CLIENT_HELLO = Out_Alert_FATAL_HANDSHAKE_FAILURE
-    lambda 39 In_RSA_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_HANDSHAKE_FAILURE
-    lambda 39 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 39 In_FINISHED = Out_Alert_FATAL_HANDSHAKE_FAILURE
-    lambda 39 In_APPLICATION = Out_TIMEOUT
-    lambda 39 In_CERTIFICATE = Out_Alert_FATAL_HANDSHAKE_FAILURE
-    lambda 39 In_EMPTY_CERTIFICATE = Out_Alert_FATAL_HANDSHAKE_FAILURE
-    lambda 39 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_HANDSHAKE_FAILURE
-    lambda 39 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 39 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 10 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 10 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 10 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 10 In_FINISHED = Out_TIMEOUT
-    lambda 10 In_APPLICATION = Out_TIMEOUT
-    lambda 10 In_CERTIFICATE = Out_TIMEOUT
-    lambda 10 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 10 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 10 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 10 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 11 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 11 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 11 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 11 In_FINISHED = Out_TIMEOUT
-    lambda 11 In_APPLICATION = Out_TIMEOUT
-    lambda 11 In_CERTIFICATE = Out_TIMEOUT
-    lambda 11 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 11 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 11 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 11 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 42 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 42 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 42 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 42 In_FINISHED = Out_TIMEOUT
-    lambda 42 In_APPLICATION = Out_TIMEOUT
-    lambda 42 In_CERTIFICATE = Out_TIMEOUT
-    lambda 42 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 42 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 42 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 42 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 35 In_RSA_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 35 In_RSA_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 35 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 35 In_FINISHED = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 35 In_APPLICATION = Out_TIMEOUT
-    lambda 35 In_CERTIFICATE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 35 In_EMPTY_CERTIFICATE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 35 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 35 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 35 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 45 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 45 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 45 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 45 In_FINISHED = Out_TIMEOUT
-    lambda 45 In_APPLICATION = Out_TIMEOUT
-    lambda 45 In_CERTIFICATE = Out_TIMEOUT
-    lambda 45 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 45 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 45 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 45 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 16 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 16 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 16 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 16 In_FINISHED = Out_TIMEOUT
-    lambda 16 In_APPLICATION = Out_TIMEOUT
-    lambda 16 In_CERTIFICATE = Out_TIMEOUT
-    lambda 16 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 16 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 16 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 16 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 36 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 36 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 36 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 36 In_FINISHED = Out_TIMEOUT
-    lambda 36 In_APPLICATION = Out_TIMEOUT
-    lambda 36 In_CERTIFICATE = Out_TIMEOUT
-    lambda 36 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 36 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 36 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 36 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 18 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 18 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 18 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 18 In_FINISHED = Out_CHANGE_CIPHER_SPEC_FINISHED_CHANGE_CIPHER_SPEC_FINISHED
-    lambda 18 In_APPLICATION = Out_TIMEOUT
-    lambda 18 In_CERTIFICATE = Out_TIMEOUT
-    lambda 18 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 18 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 18 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 18 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 54 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 54 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 54 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 54 In_FINISHED = Out_TIMEOUT
-    lambda 54 In_APPLICATION = Out_TIMEOUT
-    lambda 54 In_CERTIFICATE = Out_TIMEOUT
-    lambda 54 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 54 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 54 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 54 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 58 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 58 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 58 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 58 In_FINISHED = Out_TIMEOUT
-    lambda 58 In_APPLICATION = Out_TIMEOUT
-    lambda 58 In_CERTIFICATE = Out_TIMEOUT
-    lambda 58 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 58 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 58 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 58 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 60 In_RSA_CLIENT_HELLO = Out_CHANGE_CIPHER_SPEC_FINISHED_CHANGE_CIPHER_SPEC_FINISHED
-    lambda 60 In_RSA_CLIENT_KEY_EXCHANGE = Out_CHANGE_CIPHER_SPEC_UNKNOWN_MESSAGE_CHANGE_CIPHER_SPEC_UNKNOWN_MESSAGE
-    lambda 60 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 60 In_FINISHED = Out_CHANGE_CIPHER_SPEC_FINISHED_CHANGE_CIPHER_SPEC_FINISHED
-    lambda 60 In_APPLICATION = Out_TIMEOUT
-    lambda 60 In_CERTIFICATE = Out_CHANGE_CIPHER_SPEC_FINISHED_CHANGE_CIPHER_SPEC_FINISHED
-    lambda 60 In_EMPTY_CERTIFICATE = Out_CHANGE_CIPHER_SPEC_FINISHED_CHANGE_CIPHER_SPEC_FINISHED
-    lambda 60 In_CERTIFICATE_VERIFY = Out_CHANGE_CIPHER_SPEC_FINISHED_CHANGE_CIPHER_SPEC_FINISHED
-    lambda 60 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 60 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 50 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 50 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 50 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 50 In_FINISHED = Out_TIMEOUT
-    lambda 50 In_APPLICATION = Out_TIMEOUT
-    lambda 50 In_CERTIFICATE = Out_TIMEOUT
-    lambda 50 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 50 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 50 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 50 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 40 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 40 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 40 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 40 In_FINISHED = Out_TIMEOUT
-    lambda 40 In_APPLICATION = Out_TIMEOUT
-    lambda 40 In_CERTIFICATE = Out_TIMEOUT
-    lambda 40 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 40 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 40 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 40 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 5 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 5 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 5 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 5 In_FINISHED = Out_TIMEOUT
-    lambda 5 In_APPLICATION = Out_TIMEOUT
-    lambda 5 In_CERTIFICATE = Out_TIMEOUT
-    lambda 5 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 5 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 5 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 5 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 52 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 52 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 52 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 52 In_FINISHED = Out_TIMEOUT
-    lambda 52 In_APPLICATION = Out_TIMEOUT
-    lambda 52 In_CERTIFICATE = Out_TIMEOUT
-    lambda 52 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 52 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 52 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 52 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 57 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 57 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 57 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 57 In_FINISHED = Out_TIMEOUT
-    lambda 57 In_APPLICATION = Out_TIMEOUT
-    lambda 57 In_CERTIFICATE = Out_TIMEOUT
-    lambda 57 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 57 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 57 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 57 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 25 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 25 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 25 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 25 In_FINISHED = Out_TIMEOUT
-    lambda 25 In_APPLICATION = Out_TIMEOUT
-    lambda 25 In_CERTIFICATE = Out_TIMEOUT
-    lambda 25 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 25 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 25 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 25 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 53 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 53 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 53 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 53 In_FINISHED = Out_TIMEOUT
-    lambda 53 In_APPLICATION = Out_APPLICATION
-    lambda 53 In_CERTIFICATE = Out_TIMEOUT
-    lambda 53 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 53 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 53 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 53 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 17 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 17 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 17 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 17 In_FINISHED = Out_TIMEOUT
-    lambda 17 In_APPLICATION = Out_TIMEOUT
-    lambda 17 In_CERTIFICATE = Out_TIMEOUT
-    lambda 17 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 17 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 17 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 17 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 13 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 13 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 13 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 13 In_FINISHED = Out_TIMEOUT
-    lambda 13 In_APPLICATION = Out_TIMEOUT
-    lambda 13 In_CERTIFICATE = Out_TIMEOUT
-    lambda 13 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 13 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 13 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 13 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 49 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 49 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 49 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 49 In_FINISHED = Out_TIMEOUT
-    lambda 49 In_APPLICATION = Out_TIMEOUT
-    lambda 49 In_CERTIFICATE = Out_TIMEOUT
-    lambda 49 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 49 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 49 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 49 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 30 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 30 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 30 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 30 In_FINISHED = Out_TIMEOUT
-    lambda 30 In_APPLICATION = Out_TIMEOUT
-    lambda 30 In_CERTIFICATE = Out_TIMEOUT
-    lambda 30 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 30 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 30 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 30 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 72 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 72 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 72 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 72 In_FINISHED = Out_TIMEOUT
-    lambda 72 In_APPLICATION = Out_TIMEOUT
-    lambda 72 In_CERTIFICATE = Out_TIMEOUT
-    lambda 72 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 72 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 72 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 72 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 31 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 31 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 31 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 31 In_FINISHED = Out_TIMEOUT
-    lambda 31 In_APPLICATION = Out_TIMEOUT
-    lambda 31 In_CERTIFICATE = Out_TIMEOUT
-    lambda 31 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 31 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 31 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 31 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 33 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 33 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 33 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 33 In_FINISHED = Out_TIMEOUT
-    lambda 33 In_APPLICATION = Out_TIMEOUT
-    lambda 33 In_CERTIFICATE = Out_TIMEOUT
-    lambda 33 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 33 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 33 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 33 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 20 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 20 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 20 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 20 In_FINISHED = Out_TIMEOUT
-    lambda 20 In_APPLICATION = Out_TIMEOUT
-    lambda 20 In_CERTIFICATE = Out_TIMEOUT
-    lambda 20 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 20 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 20 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 20 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 81 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 81 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 81 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 81 In_FINISHED = Out_CHANGE_CIPHER_SPEC_FINISHED_CHANGE_CIPHER_SPEC_FINISHED
-    lambda 81 In_APPLICATION = Out_TIMEOUT
-    lambda 81 In_CERTIFICATE = Out_TIMEOUT
-    lambda 81 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 81 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 81 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 81 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 38 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 38 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 38 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 38 In_FINISHED = Out_TIMEOUT
-    lambda 38 In_APPLICATION = Out_TIMEOUT
-    lambda 38 In_CERTIFICATE = Out_TIMEOUT
-    lambda 38 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 38 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 38 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 38 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 43 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 43 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 43 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 43 In_FINISHED = Out_TIMEOUT
-    lambda 43 In_APPLICATION = Out_TIMEOUT
-    lambda 43 In_CERTIFICATE = Out_TIMEOUT
-    lambda 43 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 43 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 43 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 43 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 66 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 66 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 66 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 66 In_FINISHED = Out_TIMEOUT
-    lambda 66 In_APPLICATION = Out_TIMEOUT
-    lambda 66 In_CERTIFICATE = Out_TIMEOUT
-    lambda 66 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 66 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 66 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 66 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 48 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 48 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 48 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 48 In_FINISHED = Out_TIMEOUT
-    lambda 48 In_APPLICATION = Out_TIMEOUT
-    lambda 48 In_CERTIFICATE = Out_TIMEOUT
-    lambda 48 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 48 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 48 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 48 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 34 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 34 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 34 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 34 In_FINISHED = Out_TIMEOUT
-    lambda 34 In_APPLICATION = Out_TIMEOUT
-    lambda 34 In_CERTIFICATE = Out_TIMEOUT
-    lambda 34 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 34 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 34 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 34 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 56 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 56 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 56 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 56 In_FINISHED = Out_TIMEOUT
-    lambda 56 In_APPLICATION = Out_TIMEOUT
-    lambda 56 In_CERTIFICATE = Out_TIMEOUT
-    lambda 56 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 56 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 56 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 56 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 26 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 26 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 26 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 26 In_FINISHED = Out_TIMEOUT
-    lambda 26 In_APPLICATION = Out_TIMEOUT
-    lambda 26 In_CERTIFICATE = Out_TIMEOUT
-    lambda 26 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 26 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 26 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 26 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 41 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 41 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 41 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 41 In_FINISHED = Out_TIMEOUT
-    lambda 41 In_APPLICATION = Out_TIMEOUT
-    lambda 41 In_CERTIFICATE = Out_TIMEOUT
-    lambda 41 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 41 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 41 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 41 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 47 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 47 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 47 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 47 In_FINISHED = Out_TIMEOUT
-    lambda 47 In_APPLICATION = Out_TIMEOUT
-    lambda 47 In_CERTIFICATE = Out_TIMEOUT
-    lambda 47 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 47 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 47 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 47 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 15 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 15 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 15 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 15 In_FINISHED = Out_TIMEOUT
-    lambda 15 In_APPLICATION = Out_TIMEOUT
-    lambda 15 In_CERTIFICATE = Out_TIMEOUT
-    lambda 15 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 15 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 15 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 15 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 68 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 68 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 68 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 68 In_FINISHED = Out_TIMEOUT
-    lambda 68 In_APPLICATION = Out_TIMEOUT
-    lambda 68 In_CERTIFICATE = Out_TIMEOUT
-    lambda 68 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 68 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 68 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 68 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 21 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 21 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 21 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 21 In_FINISHED = Out_TIMEOUT
-    lambda 21 In_APPLICATION = Out_TIMEOUT
-    lambda 21 In_CERTIFICATE = Out_TIMEOUT
-    lambda 21 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 21 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 21 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 21 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 32 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 32 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 32 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 32 In_FINISHED = Out_TIMEOUT
-    lambda 32 In_APPLICATION = Out_TIMEOUT
-    lambda 32 In_CERTIFICATE = Out_TIMEOUT
-    lambda 32 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 32 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 32 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 32 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 44 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 44 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 44 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 44 In_FINISHED = Out_TIMEOUT
-    lambda 44 In_APPLICATION = Out_TIMEOUT
-    lambda 44 In_CERTIFICATE = Out_TIMEOUT
-    lambda 44 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 44 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 44 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 44 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 12 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 12 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 12 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 12 In_FINISHED = Out_TIMEOUT
-    lambda 12 In_APPLICATION = Out_TIMEOUT
-    lambda 12 In_CERTIFICATE = Out_TIMEOUT
-    lambda 12 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 12 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 12 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 12 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 73 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 73 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 73 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 73 In_FINISHED = Out_TIMEOUT
-    lambda 73 In_APPLICATION = Out_TIMEOUT
-    lambda 73 In_CERTIFICATE = Out_TIMEOUT
-    lambda 73 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 73 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 73 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 73 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 88 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 88 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 88 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 88 In_FINISHED = Out_TIMEOUT
-    lambda 88 In_APPLICATION = Out_TIMEOUT
-    lambda 88 In_CERTIFICATE = Out_TIMEOUT
-    lambda 88 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 88 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 88 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 88 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 63 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 63 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 63 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 63 In_FINISHED = Out_TIMEOUT
-    lambda 63 In_APPLICATION = Out_TIMEOUT
-    lambda 63 In_CERTIFICATE = Out_TIMEOUT
-    lambda 63 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 63 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 63 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 63 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 71 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 71 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 71 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 71 In_FINISHED = Out_TIMEOUT
-    lambda 71 In_APPLICATION = Out_TIMEOUT
-    lambda 71 In_CERTIFICATE = Out_TIMEOUT
-    lambda 71 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 71 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 71 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 71 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 51 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 51 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 51 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 51 In_FINISHED = Out_TIMEOUT
-    lambda 51 In_APPLICATION = Out_TIMEOUT
-    lambda 51 In_CERTIFICATE = Out_TIMEOUT
-    lambda 51 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 51 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 51 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 51 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 46 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 46 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 46 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 46 In_FINISHED = Out_TIMEOUT
-    lambda 46 In_APPLICATION = Out_TIMEOUT
-    lambda 46 In_CERTIFICATE = Out_TIMEOUT
-    lambda 46 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 46 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 46 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 46 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 29 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 29 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 29 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 29 In_FINISHED = Out_TIMEOUT
-    lambda 29 In_APPLICATION = Out_TIMEOUT
-    lambda 29 In_CERTIFICATE = Out_TIMEOUT
-    lambda 29 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 29 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 29 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 29 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 77 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 77 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 77 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 77 In_FINISHED = Out_TIMEOUT
-    lambda 77 In_APPLICATION = Out_TIMEOUT
-    lambda 77 In_CERTIFICATE = Out_TIMEOUT
-    lambda 77 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 77 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 77 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 77 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 79 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 79 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 79 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 79 In_FINISHED = Out_TIMEOUT
-    lambda 79 In_APPLICATION = Out_TIMEOUT
-    lambda 79 In_CERTIFICATE = Out_TIMEOUT
-    lambda 79 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 79 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 79 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 79 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 84 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 84 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 84 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 84 In_FINISHED = Out_TIMEOUT
-    lambda 84 In_APPLICATION = Out_TIMEOUT
-    lambda 84 In_CERTIFICATE = Out_TIMEOUT
-    lambda 84 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 84 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 84 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 84 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 91 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 91 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 91 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 91 In_FINISHED = Out_TIMEOUT
-    lambda 91 In_APPLICATION = Out_TIMEOUT
-    lambda 91 In_CERTIFICATE = Out_TIMEOUT
-    lambda 91 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 91 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 91 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 91 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 75 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 75 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 75 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 75 In_FINISHED = Out_TIMEOUT
-    lambda 75 In_APPLICATION = Out_TIMEOUT
-    lambda 75 In_CERTIFICATE = Out_TIMEOUT
-    lambda 75 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 75 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 75 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 75 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 69 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 69 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 69 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 69 In_FINISHED = Out_TIMEOUT
-    lambda 69 In_APPLICATION = Out_TIMEOUT
-    lambda 69 In_CERTIFICATE = Out_TIMEOUT
-    lambda 69 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 69 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 69 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 69 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 78 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 78 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 78 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 78 In_FINISHED = Out_TIMEOUT
-    lambda 78 In_APPLICATION = Out_TIMEOUT
-    lambda 78 In_CERTIFICATE = Out_TIMEOUT
-    lambda 78 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 78 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 78 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 78 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 97 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 97 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 97 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 97 In_FINISHED = Out_TIMEOUT
-    lambda 97 In_APPLICATION = Out_TIMEOUT
-    lambda 97 In_CERTIFICATE = Out_TIMEOUT
-    lambda 97 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 97 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 97 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 97 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 37 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 37 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 37 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 37 In_FINISHED = Out_TIMEOUT
-    lambda 37 In_APPLICATION = Out_TIMEOUT
-    lambda 37 In_CERTIFICATE = Out_TIMEOUT
-    lambda 37 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 37 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 37 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 37 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 85 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 85 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 85 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 85 In_FINISHED = Out_TIMEOUT
-    lambda 85 In_APPLICATION = Out_TIMEOUT
-    lambda 85 In_CERTIFICATE = Out_TIMEOUT
-    lambda 85 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 85 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 85 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 85 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 92 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 92 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 92 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 92 In_FINISHED = Out_TIMEOUT
-    lambda 92 In_APPLICATION = Out_TIMEOUT
-    lambda 92 In_CERTIFICATE = Out_TIMEOUT
-    lambda 92 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 92 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 92 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 92 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 67 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 67 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 67 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 67 In_FINISHED = Out_TIMEOUT
-    lambda 67 In_APPLICATION = Out_TIMEOUT
-    lambda 67 In_CERTIFICATE = Out_TIMEOUT
-    lambda 67 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 67 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 67 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 67 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 65 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 65 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 65 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 65 In_FINISHED = Out_TIMEOUT
-    lambda 65 In_APPLICATION = Out_TIMEOUT
-    lambda 65 In_CERTIFICATE = Out_TIMEOUT
-    lambda 65 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 65 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 65 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 65 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 61 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 61 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 61 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 61 In_FINISHED = Out_TIMEOUT
-    lambda 61 In_APPLICATION = Out_TIMEOUT
-    lambda 61 In_CERTIFICATE = Out_TIMEOUT
-    lambda 61 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 61 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 61 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 61 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 89 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 89 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 89 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 89 In_FINISHED = Out_TIMEOUT
-    lambda 89 In_APPLICATION = Out_TIMEOUT
-    lambda 89 In_CERTIFICATE = Out_TIMEOUT
-    lambda 89 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 89 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 89 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 89 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 87 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 87 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 87 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 87 In_FINISHED = Out_TIMEOUT
-    lambda 87 In_APPLICATION = Out_TIMEOUT
-    lambda 87 In_CERTIFICATE = Out_TIMEOUT
-    lambda 87 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 87 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 87 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 87 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 23 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 23 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 23 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 23 In_FINISHED = Out_TIMEOUT
-    lambda 23 In_APPLICATION = Out_TIMEOUT
-    lambda 23 In_CERTIFICATE = Out_TIMEOUT
-    lambda 23 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 23 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 23 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 23 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 82 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 82 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 82 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 82 In_FINISHED = Out_TIMEOUT
-    lambda 82 In_APPLICATION = Out_TIMEOUT
-    lambda 82 In_CERTIFICATE = Out_TIMEOUT
-    lambda 82 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 82 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 82 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 82 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 80 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 80 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 80 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 80 In_FINISHED = Out_TIMEOUT
-    lambda 80 In_APPLICATION = Out_TIMEOUT
-    lambda 80 In_CERTIFICATE = Out_TIMEOUT
-    lambda 80 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 80 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 80 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 80 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 94 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 94 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 94 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 94 In_FINISHED = Out_TIMEOUT
-    lambda 94 In_APPLICATION = Out_TIMEOUT
-    lambda 94 In_CERTIFICATE = Out_TIMEOUT
-    lambda 94 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 94 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 94 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 94 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 86 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 86 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 86 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 86 In_FINISHED = Out_TIMEOUT
-    lambda 86 In_APPLICATION = Out_TIMEOUT
-    lambda 86 In_CERTIFICATE = Out_TIMEOUT
-    lambda 86 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 86 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 86 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 86 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 64 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 64 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 64 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 64 In_FINISHED = Out_TIMEOUT
-    lambda 64 In_APPLICATION = Out_TIMEOUT
-    lambda 64 In_CERTIFICATE = Out_TIMEOUT
-    lambda 64 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 64 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 64 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 64 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 28 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 28 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 28 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 28 In_FINISHED = Out_TIMEOUT
-    lambda 28 In_APPLICATION = Out_TIMEOUT
-    lambda 28 In_CERTIFICATE = Out_TIMEOUT
-    lambda 28 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 28 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 28 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 28 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 70 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 70 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 70 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 70 In_FINISHED = Out_TIMEOUT
-    lambda 70 In_APPLICATION = Out_TIMEOUT
-    lambda 70 In_CERTIFICATE = Out_TIMEOUT
-    lambda 70 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 70 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 70 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 70 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 100 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 100 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 100 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 100 In_FINISHED = Out_TIMEOUT
-    lambda 100 In_APPLICATION = Out_TIMEOUT
-    lambda 100 In_CERTIFICATE = Out_TIMEOUT
-    lambda 100 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 100 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 100 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 100 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 90 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 90 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 90 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 90 In_FINISHED = Out_TIMEOUT
-    lambda 90 In_APPLICATION = Out_TIMEOUT
-    lambda 90 In_CERTIFICATE = Out_TIMEOUT
-    lambda 90 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 90 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 90 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 90 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 103 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 103 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 103 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 103 In_FINISHED = Out_TIMEOUT
-    lambda 103 In_APPLICATION = Out_TIMEOUT
-    lambda 103 In_CERTIFICATE = Out_TIMEOUT
-    lambda 103 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 103 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 103 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 103 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 83 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 83 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 83 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 83 In_FINISHED = Out_TIMEOUT
-    lambda 83 In_APPLICATION = Out_TIMEOUT
-    lambda 83 In_CERTIFICATE = Out_TIMEOUT
-    lambda 83 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 83 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 83 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 83 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 62 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 62 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 62 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 62 In_FINISHED = Out_TIMEOUT
-    lambda 62 In_APPLICATION = Out_TIMEOUT
-    lambda 62 In_CERTIFICATE = Out_TIMEOUT
-    lambda 62 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 62 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 62 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 62 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 99 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 99 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 99 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 99 In_FINISHED = Out_TIMEOUT
-    lambda 99 In_APPLICATION = Out_TIMEOUT
-    lambda 99 In_CERTIFICATE = Out_TIMEOUT
-    lambda 99 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 99 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 99 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 99 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 101 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 101 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 101 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 101 In_FINISHED = Out_TIMEOUT
-    lambda 101 In_APPLICATION = Out_TIMEOUT
-    lambda 101 In_CERTIFICATE = Out_TIMEOUT
-    lambda 101 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 101 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 101 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 101 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 95 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 95 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 95 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 95 In_FINISHED = Out_TIMEOUT
-    lambda 95 In_APPLICATION = Out_TIMEOUT
-    lambda 95 In_CERTIFICATE = Out_TIMEOUT
-    lambda 95 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 95 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 95 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 95 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 102 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 102 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 102 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 102 In_FINISHED = Out_TIMEOUT
-    lambda 102 In_APPLICATION = Out_TIMEOUT
-    lambda 102 In_CERTIFICATE = Out_TIMEOUT
-    lambda 102 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 102 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 102 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 102 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 104 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 104 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 104 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 104 In_FINISHED = Out_TIMEOUT
-    lambda 104 In_APPLICATION = Out_TIMEOUT
-    lambda 104 In_CERTIFICATE = Out_TIMEOUT
-    lambda 104 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 104 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 104 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 104 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 98 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 98 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 98 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 98 In_FINISHED = Out_TIMEOUT
-    lambda 98 In_APPLICATION = Out_TIMEOUT
-    lambda 98 In_CERTIFICATE = Out_TIMEOUT
-    lambda 98 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 98 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 98 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 98 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 93 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 93 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 93 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 93 In_FINISHED = Out_TIMEOUT
-    lambda 93 In_APPLICATION = Out_TIMEOUT
-    lambda 93 In_CERTIFICATE = Out_TIMEOUT
-    lambda 93 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 93 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 93 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 93 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 96 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 96 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 96 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 96 In_FINISHED = Out_TIMEOUT
-    lambda 96 In_APPLICATION = Out_TIMEOUT
-    lambda 96 In_CERTIFICATE = Out_TIMEOUT
-    lambda 96 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 96 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 96 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 96 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 55 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 55 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 55 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 55 In_FINISHED = Out_TIMEOUT
-    lambda 55 In_APPLICATION = Out_TIMEOUT
-    lambda 55 In_CERTIFICATE = Out_TIMEOUT
-    lambda 55 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 55 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 55 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 55 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 59 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 59 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 59 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 59 In_FINISHED = Out_TIMEOUT
-    lambda 59 In_APPLICATION = Out_TIMEOUT
-    lambda 59 In_CERTIFICATE = Out_TIMEOUT
-    lambda 59 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 59 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 59 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 59 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 74 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 74 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 74 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 74 In_FINISHED = Out_TIMEOUT
-    lambda 74 In_APPLICATION = Out_TIMEOUT
-    lambda 74 In_CERTIFICATE = Out_TIMEOUT
-    lambda 74 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 74 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 74 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 74 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 76 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 76 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 76 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 76 In_FINISHED = Out_TIMEOUT
-    lambda 76 In_APPLICATION = Out_TIMEOUT
-    lambda 76 In_CERTIFICATE = Out_TIMEOUT
-    lambda 76 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 76 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 76 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 76 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda _ _ = error "haal-gen: undefined transition"
+import Haal.Automaton.MealyAutomaton (MealyAutomaton, mkMealyAutomatonTable)
+
+data JsseV12RsaCertNreqInput
+    = In_RSA_CLIENT_HELLO
+    | In_RSA_CLIENT_KEY_EXCHANGE
+    | In_CHANGE_CIPHER_SPEC
+    | In_FINISHED
+    | In_APPLICATION
+    | In_CERTIFICATE
+    | In_EMPTY_CERTIFICATE
+    | In_CERTIFICATE_VERIFY
+    | In_Alert_WARNING_CLOSE_NOTIFY
+    | In_Alert_FATAL_UNEXPECTED_MESSAGE
+    deriving (Show, Eq, Ord, Enum, Bounded)
+
+data JsseV12RsaCertNreqOutput
+    = Out_HELLO_VERIFY_REQUEST
+    | Out_TIMEOUT
+    | Out_SERVER_HELLO_CERTIFICATE_CERTIFICATE_REQUEST_SERVER_HELLO_DONE
+    | Out_Alert_WARNING_CLOSE_NOTIFY
+    | Out_SOCKET_CLOSED
+    | Out_Alert_FATAL_UNEXPECTED_MESSAGE
+    | Out_Alert_FATAL_HANDSHAKE_FAILURE
+    | Out_CHANGE_CIPHER_SPEC_FINISHED_CHANGE_CIPHER_SPEC_FINISHED
+    | Out_CHANGE_CIPHER_SPEC_UNKNOWN_MESSAGE_CHANGE_CIPHER_SPEC_UNKNOWN_MESSAGE
+    | Out_APPLICATION
+    deriving (Show, Eq, Ord, Enum, Bounded)
+
+{- Transitions (state  input -> next state / output):
+    0     In_RSA_CLIENT_HELLO                -> 1 / Out_HELLO_VERIFY_REQUEST
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 2 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 4 / Out_TIMEOUT
+          In_APPLICATION                     -> 0 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 5 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 6 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 4 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    1     In_RSA_CLIENT_HELLO                -> 9 / Out_SERVER_HELLO_CERTIFICATE_CERTIFICATE_REQUEST_SERVER_HELLO_DONE
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 10 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 11 / Out_TIMEOUT
+          In_APPLICATION                     -> 1 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 12 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 13 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 11 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    2     In_RSA_CLIENT_HELLO                -> 23 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 4 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 24 / Out_TIMEOUT
+          In_FINISHED                        -> 25 / Out_TIMEOUT
+          In_APPLICATION                     -> 2 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 26 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 26 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 27 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    3     In_RSA_CLIENT_HELLO                -> 3 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 3 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 3 / Out_TIMEOUT
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 3 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 3 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 3 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 3 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 3 / Out_TIMEOUT
+    4     In_RSA_CLIENT_HELLO                -> 4 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 4 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 4 / Out_TIMEOUT
+          In_APPLICATION                     -> 4 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 4 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 4 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 4 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    5     In_RSA_CLIENT_HELLO                -> 64 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 65 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 5 / Out_TIMEOUT
+          In_APPLICATION                     -> 5 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 4 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 4 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 30 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    6     In_RSA_CLIENT_HELLO                -> 28 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 26 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 24 / Out_TIMEOUT
+          In_FINISHED                        -> 29 / Out_TIMEOUT
+          In_APPLICATION                     -> 6 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 4 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 4 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 30 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    7     In_RSA_CLIENT_HELLO                -> 8 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 8 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 8 / Out_TIMEOUT
+          In_FINISHED                        -> 8 / Out_TIMEOUT
+          In_APPLICATION                     -> 8 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 8 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 8 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 8 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 8 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 8 / Out_TIMEOUT
+    8     In_RSA_CLIENT_HELLO                -> 8 / Out_SOCKET_CLOSED
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 8 / Out_SOCKET_CLOSED
+          In_CHANGE_CIPHER_SPEC              -> 8 / Out_SOCKET_CLOSED
+          In_FINISHED                        -> 8 / Out_SOCKET_CLOSED
+          In_APPLICATION                     -> 8 / Out_SOCKET_CLOSED
+          In_CERTIFICATE                     -> 8 / Out_SOCKET_CLOSED
+          In_EMPTY_CERTIFICATE               -> 8 / Out_SOCKET_CLOSED
+          In_CERTIFICATE_VERIFY              -> 8 / Out_SOCKET_CLOSED
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 8 / Out_SOCKET_CLOSED
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 8 / Out_SOCKET_CLOSED
+    9     In_RSA_CLIENT_HELLO                -> 7 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 14 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 11 / Out_TIMEOUT
+          In_APPLICATION                     -> 9 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 15 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 16 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 11 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    10    In_RSA_CLIENT_HELLO                -> 17 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 11 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 35 / Out_TIMEOUT
+          In_FINISHED                        -> 19 / Out_TIMEOUT
+          In_APPLICATION                     -> 10 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 42 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 42 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 43 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    11    In_RSA_CLIENT_HELLO                -> 11 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 11 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 11 / Out_TIMEOUT
+          In_APPLICATION                     -> 11 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 11 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 11 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 11 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    12    In_RSA_CLIENT_HELLO                -> 12 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 93 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 90 / Out_TIMEOUT
+          In_APPLICATION                     -> 12 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 11 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 11 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 73 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    13    In_RSA_CLIENT_HELLO                -> 48 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 42 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 35 / Out_TIMEOUT
+          In_FINISHED                        -> 49 / Out_TIMEOUT
+          In_APPLICATION                     -> 13 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 11 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 11 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 73 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    14    In_RSA_CLIENT_HELLO                -> 17 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 11 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 18 / Out_TIMEOUT
+          In_FINISHED                        -> 19 / Out_TIMEOUT
+          In_APPLICATION                     -> 14 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 20 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 21 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 22 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    15    In_RSA_CLIENT_HELLO                -> 12 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 11 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 90 / Out_TIMEOUT
+          In_APPLICATION                     -> 15 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 11 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 11 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 91 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    16    In_RSA_CLIENT_HELLO                -> 48 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 21 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 35 / Out_TIMEOUT
+          In_FINISHED                        -> 49 / Out_TIMEOUT
+          In_APPLICATION                     -> 16 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 11 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 11 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 50 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    17    In_RSA_CLIENT_HELLO                -> 11 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 11 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 35 / Out_TIMEOUT
+          In_FINISHED                        -> 34 / Out_TIMEOUT
+          In_APPLICATION                     -> 17 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 44 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 44 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 72 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    18    In_RSA_CLIENT_HELLO                -> 52 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 11 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 53 / Out_CHANGE_CIPHER_SPEC_FINISHED_CHANGE_CIPHER_SPEC_FINISHED
+          In_APPLICATION                     -> 18 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 54 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 55 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 56 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 18 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 18 / Out_TIMEOUT
+    19    In_RSA_CLIENT_HELLO                -> 34 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 11 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 35 / Out_TIMEOUT
+          In_FINISHED                        -> 11 / Out_TIMEOUT
+          In_APPLICATION                     -> 19 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 36 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 36 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 37 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    20    In_RSA_CLIENT_HELLO                -> 44 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 11 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 81 / Out_TIMEOUT
+          In_FINISHED                        -> 36 / Out_TIMEOUT
+          In_APPLICATION                     -> 20 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 11 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 11 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 20 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    21    In_RSA_CLIENT_HELLO                -> 44 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 11 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 81 / Out_TIMEOUT
+          In_FINISHED                        -> 36 / Out_TIMEOUT
+          In_APPLICATION                     -> 21 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 11 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 11 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 41 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    22    In_RSA_CLIENT_HELLO                -> 38 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 11 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 39 / Out_TIMEOUT
+          In_FINISHED                        -> 40 / Out_TIMEOUT
+          In_APPLICATION                     -> 22 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 41 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 41 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 11 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    23    In_RSA_CLIENT_HELLO                -> 4 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 4 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 24 / Out_TIMEOUT
+          In_FINISHED                        -> 70 / Out_TIMEOUT
+          In_APPLICATION                     -> 23 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 88 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 88 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 31 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    24    In_RSA_CLIENT_HELLO                -> 7 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 7 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 7 / Out_TIMEOUT
+          In_APPLICATION                     -> 24 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 7 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 7 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 7 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 24 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 24 / Out_TIMEOUT
+    25    In_RSA_CLIENT_HELLO                -> 70 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 4 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 24 / Out_TIMEOUT
+          In_FINISHED                        -> 4 / Out_TIMEOUT
+          In_APPLICATION                     -> 25 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 71 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 71 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 32 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    26    In_RSA_CLIENT_HELLO                -> 88 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 4 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 24 / Out_TIMEOUT
+          In_FINISHED                        -> 71 / Out_TIMEOUT
+          In_APPLICATION                     -> 26 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 4 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 4 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 33 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    27    In_RSA_CLIENT_HELLO                -> 31 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 4 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 24 / Out_TIMEOUT
+          In_FINISHED                        -> 32 / Out_TIMEOUT
+          In_APPLICATION                     -> 27 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 33 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 33 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 4 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    28    In_RSA_CLIENT_HELLO                -> 4 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 88 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 24 / Out_TIMEOUT
+          In_FINISHED                        -> 96 / Out_TIMEOUT
+          In_APPLICATION                     -> 28 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 4 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 4 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 30 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    29    In_RSA_CLIENT_HELLO                -> 96 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 71 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 24 / Out_TIMEOUT
+          In_FINISHED                        -> 4 / Out_TIMEOUT
+          In_APPLICATION                     -> 29 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 4 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 4 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 76 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    30    In_RSA_CLIENT_HELLO                -> 30 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 33 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 24 / Out_TIMEOUT
+          In_FINISHED                        -> 76 / Out_TIMEOUT
+          In_APPLICATION                     -> 30 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 4 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 4 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 4 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    31    In_RSA_CLIENT_HELLO                -> 4 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 4 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 24 / Out_TIMEOUT
+          In_FINISHED                        -> 78 / Out_TIMEOUT
+          In_APPLICATION                     -> 31 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 79 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 79 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 4 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    32    In_RSA_CLIENT_HELLO                -> 78 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 4 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 24 / Out_TIMEOUT
+          In_FINISHED                        -> 4 / Out_TIMEOUT
+          In_APPLICATION                     -> 32 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 80 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 80 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 4 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    33    In_RSA_CLIENT_HELLO                -> 79 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 4 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 24 / Out_TIMEOUT
+          In_FINISHED                        -> 80 / Out_TIMEOUT
+          In_APPLICATION                     -> 33 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 4 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 4 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 4 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    34    In_RSA_CLIENT_HELLO                -> 11 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 11 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 35 / Out_TIMEOUT
+          In_FINISHED                        -> 11 / Out_TIMEOUT
+          In_APPLICATION                     -> 34 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 51 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 51 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 77 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    35    In_RSA_CLIENT_HELLO                -> 7 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 7 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 7 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_APPLICATION                     -> 35 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 7 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_EMPTY_CERTIFICATE               -> 7 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CERTIFICATE_VERIFY              -> 7 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 35 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 35 / Out_TIMEOUT
+    36    In_RSA_CLIENT_HELLO                -> 51 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 11 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 35 / Out_TIMEOUT
+          In_FINISHED                        -> 11 / Out_TIMEOUT
+          In_APPLICATION                     -> 36 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 11 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 11 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 47 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    37    In_RSA_CLIENT_HELLO                -> 77 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 11 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 35 / Out_TIMEOUT
+          In_FINISHED                        -> 11 / Out_TIMEOUT
+          In_APPLICATION                     -> 37 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 47 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 47 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 11 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    38    In_RSA_CLIENT_HELLO                -> 11 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 11 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 39 / Out_TIMEOUT
+          In_FINISHED                        -> 62 / Out_TIMEOUT
+          In_APPLICATION                     -> 38 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 82 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 82 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 11 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    39    In_RSA_CLIENT_HELLO                -> 7 / Out_Alert_FATAL_HANDSHAKE_FAILURE
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 7 / Out_Alert_FATAL_HANDSHAKE_FAILURE
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 7 / Out_Alert_FATAL_HANDSHAKE_FAILURE
+          In_APPLICATION                     -> 39 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 7 / Out_Alert_FATAL_HANDSHAKE_FAILURE
+          In_EMPTY_CERTIFICATE               -> 7 / Out_Alert_FATAL_HANDSHAKE_FAILURE
+          In_CERTIFICATE_VERIFY              -> 7 / Out_Alert_FATAL_HANDSHAKE_FAILURE
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 39 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 39 / Out_TIMEOUT
+    40    In_RSA_CLIENT_HELLO                -> 62 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 11 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 39 / Out_TIMEOUT
+          In_FINISHED                        -> 11 / Out_TIMEOUT
+          In_APPLICATION                     -> 40 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 63 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 63 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 11 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    41    In_RSA_CLIENT_HELLO                -> 82 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 11 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 39 / Out_TIMEOUT
+          In_FINISHED                        -> 63 / Out_TIMEOUT
+          In_APPLICATION                     -> 41 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 11 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 11 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 11 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    42    In_RSA_CLIENT_HELLO                -> 44 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 11 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 35 / Out_TIMEOUT
+          In_FINISHED                        -> 36 / Out_TIMEOUT
+          In_APPLICATION                     -> 42 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 11 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 11 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 45 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    43    In_RSA_CLIENT_HELLO                -> 72 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 11 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 35 / Out_TIMEOUT
+          In_FINISHED                        -> 37 / Out_TIMEOUT
+          In_APPLICATION                     -> 43 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 45 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 45 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 11 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    44    In_RSA_CLIENT_HELLO                -> 11 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 11 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 35 / Out_TIMEOUT
+          In_FINISHED                        -> 51 / Out_TIMEOUT
+          In_APPLICATION                     -> 44 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 11 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 11 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 46 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    45    In_RSA_CLIENT_HELLO                -> 46 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 11 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 35 / Out_TIMEOUT
+          In_FINISHED                        -> 47 / Out_TIMEOUT
+          In_APPLICATION                     -> 45 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 11 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 11 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 11 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    46    In_RSA_CLIENT_HELLO                -> 11 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 11 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 35 / Out_TIMEOUT
+          In_FINISHED                        -> 89 / Out_TIMEOUT
+          In_APPLICATION                     -> 46 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 11 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 11 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 11 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    47    In_RSA_CLIENT_HELLO                -> 89 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 11 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 35 / Out_TIMEOUT
+          In_FINISHED                        -> 11 / Out_TIMEOUT
+          In_APPLICATION                     -> 47 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 11 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 11 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 11 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    48    In_RSA_CLIENT_HELLO                -> 11 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 44 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 35 / Out_TIMEOUT
+          In_FINISHED                        -> 74 / Out_TIMEOUT
+          In_APPLICATION                     -> 48 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 11 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 11 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 84 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    49    In_RSA_CLIENT_HELLO                -> 74 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 36 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 35 / Out_TIMEOUT
+          In_FINISHED                        -> 11 / Out_TIMEOUT
+          In_APPLICATION                     -> 49 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 11 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 11 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 75 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    50    In_RSA_CLIENT_HELLO                -> 61 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 41 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 39 / Out_TIMEOUT
+          In_FINISHED                        -> 50 / Out_TIMEOUT
+          In_APPLICATION                     -> 50 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 11 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 11 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 11 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    51    In_RSA_CLIENT_HELLO                -> 11 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 11 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 35 / Out_TIMEOUT
+          In_FINISHED                        -> 11 / Out_TIMEOUT
+          In_APPLICATION                     -> 51 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 11 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 11 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 89 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    52    In_RSA_CLIENT_HELLO                -> 11 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 11 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 35 / Out_TIMEOUT
+          In_FINISHED                        -> 66 / Out_TIMEOUT
+          In_APPLICATION                     -> 11 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 57 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 57 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 67 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    53    In_RSA_CLIENT_HELLO                -> 53 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 53 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 53 / Out_TIMEOUT
+          In_APPLICATION                     -> 7 / Out_APPLICATION
+          In_CERTIFICATE                     -> 53 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 53 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 53 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    54    In_RSA_CLIENT_HELLO                -> 57 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 11 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 35 / Out_TIMEOUT
+          In_FINISHED                        -> 58 / Out_TIMEOUT
+          In_APPLICATION                     -> 11 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 11 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 11 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 59 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    55    In_RSA_CLIENT_HELLO                -> 57 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 11 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 35 / Out_TIMEOUT
+          In_FINISHED                        -> 58 / Out_TIMEOUT
+          In_APPLICATION                     -> 11 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 11 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 11 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 87 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    56    In_RSA_CLIENT_HELLO                -> 85 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 11 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 39 / Out_TIMEOUT
+          In_FINISHED                        -> 86 / Out_TIMEOUT
+          In_APPLICATION                     -> 11 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 87 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 87 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 11 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    57    In_RSA_CLIENT_HELLO                -> 11 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 11 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 35 / Out_TIMEOUT
+          In_FINISHED                        -> 68 / Out_TIMEOUT
+          In_APPLICATION                     -> 11 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 11 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 11 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 69 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    58    In_RSA_CLIENT_HELLO                -> 58 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 11 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 60 / Out_TIMEOUT
+          In_FINISHED                        -> 11 / Out_TIMEOUT
+          In_APPLICATION                     -> 11 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 11 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 11 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 58 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    59    In_RSA_CLIENT_HELLO                -> 69 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 11 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 35 / Out_TIMEOUT
+          In_FINISHED                        -> 58 / Out_TIMEOUT
+          In_APPLICATION                     -> 11 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 11 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 11 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 11 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    60    In_RSA_CLIENT_HELLO                -> 3 / Out_CHANGE_CIPHER_SPEC_FINISHED_CHANGE_CIPHER_SPEC_FINISHED
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 3 / Out_CHANGE_CIPHER_SPEC_UNKNOWN_MESSAGE_CHANGE_CIPHER_SPEC_UNKNOWN_MESSAGE
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 3 / Out_CHANGE_CIPHER_SPEC_FINISHED_CHANGE_CIPHER_SPEC_FINISHED
+          In_APPLICATION                     -> 60 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 3 / Out_CHANGE_CIPHER_SPEC_FINISHED_CHANGE_CIPHER_SPEC_FINISHED
+          In_EMPTY_CERTIFICATE               -> 3 / Out_CHANGE_CIPHER_SPEC_FINISHED_CHANGE_CIPHER_SPEC_FINISHED
+          In_CERTIFICATE_VERIFY              -> 3 / Out_CHANGE_CIPHER_SPEC_FINISHED_CHANGE_CIPHER_SPEC_FINISHED
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 60 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 60 / Out_TIMEOUT
+    61    In_RSA_CLIENT_HELLO                -> 11 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 82 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 39 / Out_TIMEOUT
+          In_FINISHED                        -> 101 / Out_TIMEOUT
+          In_APPLICATION                     -> 61 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 11 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 11 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 11 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    62    In_RSA_CLIENT_HELLO                -> 11 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 11 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 39 / Out_TIMEOUT
+          In_FINISHED                        -> 11 / Out_TIMEOUT
+          In_APPLICATION                     -> 62 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 95 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 95 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 11 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    63    In_RSA_CLIENT_HELLO                -> 95 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 11 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 39 / Out_TIMEOUT
+          In_FINISHED                        -> 11 / Out_TIMEOUT
+          In_APPLICATION                     -> 63 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 11 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 11 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 11 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    64    In_RSA_CLIENT_HELLO                -> 4 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 65 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 64 / Out_TIMEOUT
+          In_APPLICATION                     -> 64 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 4 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 4 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 30 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    65    In_RSA_CLIENT_HELLO                -> 65 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 4 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 100 / Out_TIMEOUT
+          In_APPLICATION                     -> 65 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 4 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 4 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 33 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    66    In_RSA_CLIENT_HELLO                -> 11 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 11 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 35 / Out_TIMEOUT
+          In_FINISHED                        -> 11 / Out_TIMEOUT
+          In_APPLICATION                     -> 11 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 68 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 68 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 83 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    67    In_RSA_CLIENT_HELLO                -> 11 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 11 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 35 / Out_TIMEOUT
+          In_FINISHED                        -> 83 / Out_TIMEOUT
+          In_APPLICATION                     -> 11 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 69 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 69 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 11 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    68    In_RSA_CLIENT_HELLO                -> 11 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 11 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 35 / Out_TIMEOUT
+          In_FINISHED                        -> 11 / Out_TIMEOUT
+          In_APPLICATION                     -> 11 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 11 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 11 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 92 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    69    In_RSA_CLIENT_HELLO                -> 11 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 11 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 35 / Out_TIMEOUT
+          In_FINISHED                        -> 92 / Out_TIMEOUT
+          In_APPLICATION                     -> 11 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 11 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 11 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 11 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    70    In_RSA_CLIENT_HELLO                -> 4 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 4 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 24 / Out_TIMEOUT
+          In_FINISHED                        -> 4 / Out_TIMEOUT
+          In_APPLICATION                     -> 70 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 94 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 94 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 78 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    71    In_RSA_CLIENT_HELLO                -> 94 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 4 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 24 / Out_TIMEOUT
+          In_FINISHED                        -> 4 / Out_TIMEOUT
+          In_APPLICATION                     -> 71 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 4 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 4 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 80 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    72    In_RSA_CLIENT_HELLO                -> 11 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 11 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 35 / Out_TIMEOUT
+          In_FINISHED                        -> 77 / Out_TIMEOUT
+          In_APPLICATION                     -> 72 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 46 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 46 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 11 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    73    In_RSA_CLIENT_HELLO                -> 84 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 45 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 35 / Out_TIMEOUT
+          In_FINISHED                        -> 75 / Out_TIMEOUT
+          In_APPLICATION                     -> 73 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 11 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 11 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 11 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    74    In_RSA_CLIENT_HELLO                -> 11 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 51 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 35 / Out_TIMEOUT
+          In_FINISHED                        -> 11 / Out_TIMEOUT
+          In_APPLICATION                     -> 74 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 11 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 11 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 98 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    75    In_RSA_CLIENT_HELLO                -> 98 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 47 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 35 / Out_TIMEOUT
+          In_FINISHED                        -> 11 / Out_TIMEOUT
+          In_APPLICATION                     -> 75 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 11 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 11 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 11 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    76    In_RSA_CLIENT_HELLO                -> 76 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 80 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 24 / Out_TIMEOUT
+          In_FINISHED                        -> 4 / Out_TIMEOUT
+          In_APPLICATION                     -> 76 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 4 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 4 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 4 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    77    In_RSA_CLIENT_HELLO                -> 11 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 11 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 35 / Out_TIMEOUT
+          In_FINISHED                        -> 11 / Out_TIMEOUT
+          In_APPLICATION                     -> 77 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 89 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 89 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 11 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    78    In_RSA_CLIENT_HELLO                -> 4 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 4 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 24 / Out_TIMEOUT
+          In_FINISHED                        -> 4 / Out_TIMEOUT
+          In_APPLICATION                     -> 78 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 97 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 97 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 4 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    79    In_RSA_CLIENT_HELLO                -> 4 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 4 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 24 / Out_TIMEOUT
+          In_FINISHED                        -> 97 / Out_TIMEOUT
+          In_APPLICATION                     -> 79 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 4 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 4 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 4 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    80    In_RSA_CLIENT_HELLO                -> 97 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 4 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 24 / Out_TIMEOUT
+          In_FINISHED                        -> 4 / Out_TIMEOUT
+          In_APPLICATION                     -> 80 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 4 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 4 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 4 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    81    In_RSA_CLIENT_HELLO                -> 11 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 11 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 53 / Out_CHANGE_CIPHER_SPEC_FINISHED_CHANGE_CIPHER_SPEC_FINISHED
+          In_APPLICATION                     -> 81 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 11 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 11 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 11 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 81 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 81 / Out_TIMEOUT
+    82    In_RSA_CLIENT_HELLO                -> 11 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 11 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 39 / Out_TIMEOUT
+          In_FINISHED                        -> 95 / Out_TIMEOUT
+          In_APPLICATION                     -> 82 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 11 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 11 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 11 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    83    In_RSA_CLIENT_HELLO                -> 11 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 11 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 35 / Out_TIMEOUT
+          In_FINISHED                        -> 11 / Out_TIMEOUT
+          In_APPLICATION                     -> 11 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 92 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 92 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 11 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    84    In_RSA_CLIENT_HELLO                -> 11 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 46 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 35 / Out_TIMEOUT
+          In_FINISHED                        -> 98 / Out_TIMEOUT
+          In_APPLICATION                     -> 84 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 11 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 11 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 11 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    85    In_RSA_CLIENT_HELLO                -> 11 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 11 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 39 / Out_TIMEOUT
+          In_FINISHED                        -> 99 / Out_TIMEOUT
+          In_APPLICATION                     -> 11 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 85 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 85 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 11 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    86    In_RSA_CLIENT_HELLO                -> 99 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 11 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 39 / Out_TIMEOUT
+          In_FINISHED                        -> 11 / Out_TIMEOUT
+          In_APPLICATION                     -> 11 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 63 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 63 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 11 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    87    In_RSA_CLIENT_HELLO                -> 85 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 11 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 39 / Out_TIMEOUT
+          In_FINISHED                        -> 63 / Out_TIMEOUT
+          In_APPLICATION                     -> 11 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 11 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 11 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 11 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    88    In_RSA_CLIENT_HELLO                -> 4 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 4 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 24 / Out_TIMEOUT
+          In_FINISHED                        -> 94 / Out_TIMEOUT
+          In_APPLICATION                     -> 88 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 4 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 4 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 79 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    89    In_RSA_CLIENT_HELLO                -> 11 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 11 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 35 / Out_TIMEOUT
+          In_FINISHED                        -> 11 / Out_TIMEOUT
+          In_APPLICATION                     -> 89 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 11 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 11 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 11 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    90    In_RSA_CLIENT_HELLO                -> 102 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 103 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 11 / Out_TIMEOUT
+          In_APPLICATION                     -> 90 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 11 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 11 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 75 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    91    In_RSA_CLIENT_HELLO                -> 84 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 20 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 35 / Out_TIMEOUT
+          In_FINISHED                        -> 75 / Out_TIMEOUT
+          In_APPLICATION                     -> 91 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 11 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 11 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 11 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    92    In_RSA_CLIENT_HELLO                -> 11 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 11 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 35 / Out_TIMEOUT
+          In_FINISHED                        -> 11 / Out_TIMEOUT
+          In_APPLICATION                     -> 11 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 11 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 11 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 11 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    93    In_RSA_CLIENT_HELLO                -> 93 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 11 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 103 / Out_TIMEOUT
+          In_APPLICATION                     -> 93 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 11 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 11 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 45 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    94    In_RSA_CLIENT_HELLO                -> 4 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 4 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 24 / Out_TIMEOUT
+          In_FINISHED                        -> 4 / Out_TIMEOUT
+          In_APPLICATION                     -> 94 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 4 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 4 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 97 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    95    In_RSA_CLIENT_HELLO                -> 11 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 11 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 39 / Out_TIMEOUT
+          In_FINISHED                        -> 11 / Out_TIMEOUT
+          In_APPLICATION                     -> 95 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 11 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 11 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 11 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    96    In_RSA_CLIENT_HELLO                -> 4 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 94 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 24 / Out_TIMEOUT
+          In_FINISHED                        -> 4 / Out_TIMEOUT
+          In_APPLICATION                     -> 96 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 4 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 4 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 76 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    97    In_RSA_CLIENT_HELLO                -> 4 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 4 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 24 / Out_TIMEOUT
+          In_FINISHED                        -> 4 / Out_TIMEOUT
+          In_APPLICATION                     -> 97 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 4 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 4 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 4 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    98    In_RSA_CLIENT_HELLO                -> 11 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 89 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 35 / Out_TIMEOUT
+          In_FINISHED                        -> 11 / Out_TIMEOUT
+          In_APPLICATION                     -> 98 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 11 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 11 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 11 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    99    In_RSA_CLIENT_HELLO                -> 11 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 11 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 39 / Out_TIMEOUT
+          In_FINISHED                        -> 11 / Out_TIMEOUT
+          In_APPLICATION                     -> 11 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 104 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 104 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 11 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    100   In_RSA_CLIENT_HELLO                -> 100 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 4 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 4 / Out_TIMEOUT
+          In_APPLICATION                     -> 100 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 4 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 4 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 80 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    101   In_RSA_CLIENT_HELLO                -> 11 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 95 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 39 / Out_TIMEOUT
+          In_FINISHED                        -> 11 / Out_TIMEOUT
+          In_APPLICATION                     -> 101 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 11 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 11 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 11 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    102   In_RSA_CLIENT_HELLO                -> 11 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 103 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 11 / Out_TIMEOUT
+          In_APPLICATION                     -> 102 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 11 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 11 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 98 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    103   In_RSA_CLIENT_HELLO                -> 103 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 11 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 11 / Out_TIMEOUT
+          In_APPLICATION                     -> 103 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 11 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 11 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 47 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    104   In_RSA_CLIENT_HELLO                -> 11 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 11 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 39 / Out_TIMEOUT
+          In_FINISHED                        -> 11 / Out_TIMEOUT
+          In_APPLICATION                     -> 11 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 11 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 11 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 11 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+-}
+jsseV12RsaCertNreq :: MealyAutomaton Int JsseV12RsaCertNreqInput JsseV12RsaCertNreqOutput
+jsseV12RsaCertNreq =
+    case mkMealyAutomatonTable 105 0 deltaTable lambdaTable of
+        Right m -> m
+        Left err -> error ("haal-gen: invalid transition table: " ++ err)
+  where
+    deltaTable =
+        "\1\2\3\4\0\5\6\4\7\7\
+        \\9\10\3\11\1\12\13\11\7\7\
+        \\23\4\24\25\2\26\26\27\7\7\
+        \\3\3\3\3\3\3\3\3\3\3\
+        \\4\4\3\4\4\4\4\4\7\7\
+        \\64\65\3\5\5\4\4\30\7\7\
+        \\28\26\24\29\6\4\4\30\7\7\
+        \\8\8\8\8\8\8\8\8\8\8\
+        \\8\8\8\8\8\8\8\8\8\8\
+        \\7\14\3\11\9\15\16\11\7\7\
+        \\17\11\35\19\10\42\42\43\7\7\
+        \\11\11\3\11\11\11\11\11\7\7\
+        \\12\93\3\90\12\11\11\73\7\7\
+        \\48\42\35\49\13\11\11\73\7\7\
+        \\17\11\18\19\14\20\21\22\7\7\
+        \\12\11\3\90\15\11\11\91\7\7\
+        \\48\21\35\49\16\11\11\50\7\7\
+        \\11\11\35\34\17\44\44\72\7\7\
+        \\52\11\3\53\18\54\55\56\18\18\
+        \\34\11\35\11\19\36\36\37\7\7\
+        \\44\11\81\36\20\11\11\20\7\7\
+        \\44\11\81\36\21\11\11\41\7\7\
+        \\38\11\39\40\22\41\41\11\7\7\
+        \\4\4\24\70\23\88\88\31\7\7\
+        \\7\7\3\7\24\7\7\7\24\24\
+        \\70\4\24\4\25\71\71\32\7\7\
+        \\88\4\24\71\26\4\4\33\7\7\
+        \\31\4\24\32\27\33\33\4\7\7\
+        \\4\88\24\96\28\4\4\30\7\7\
+        \\96\71\24\4\29\4\4\76\7\7\
+        \\30\33\24\76\30\4\4\4\7\7\
+        \\4\4\24\78\31\79\79\4\7\7\
+        \\78\4\24\4\32\80\80\4\7\7\
+        \\79\4\24\80\33\4\4\4\7\7\
+        \\11\11\35\11\34\51\51\77\7\7\
+        \\7\7\3\7\35\7\7\7\35\35\
+        \\51\11\35\11\36\11\11\47\7\7\
+        \\77\11\35\11\37\47\47\11\7\7\
+        \\11\11\39\62\38\82\82\11\7\7\
+        \\7\7\3\7\39\7\7\7\39\39\
+        \\62\11\39\11\40\63\63\11\7\7\
+        \\82\11\39\63\41\11\11\11\7\7\
+        \\44\11\35\36\42\11\11\45\7\7\
+        \\72\11\35\37\43\45\45\11\7\7\
+        \\11\11\35\51\44\11\11\46\7\7\
+        \\46\11\35\47\45\11\11\11\7\7\
+        \\11\11\35\89\46\11\11\11\7\7\
+        \\89\11\35\11\47\11\11\11\7\7\
+        \\11\44\35\74\48\11\11\84\7\7\
+        \\74\36\35\11\49\11\11\75\7\7\
+        \\61\41\39\50\50\11\11\11\7\7\
+        \\11\11\35\11\51\11\11\89\7\7\
+        \\11\11\35\66\11\57\57\67\7\7\
+        \\53\53\3\53\7\53\53\53\7\7\
+        \\57\11\35\58\11\11\11\59\7\7\
+        \\57\11\35\58\11\11\11\87\7\7\
+        \\85\11\39\86\11\87\87\11\7\7\
+        \\11\11\35\68\11\11\11\69\7\7\
+        \\58\11\60\11\11\11\11\58\7\7\
+        \\69\11\35\58\11\11\11\11\7\7\
+        \\3\3\3\3\60\3\3\3\60\60\
+        \\11\82\39\101\61\11\11\11\7\7\
+        \\11\11\39\11\62\95\95\11\7\7\
+        \\95\11\39\11\63\11\11\11\7\7\
+        \\4\65\3\64\64\4\4\30\7\7\
+        \\65\4\3\100\65\4\4\33\7\7\
+        \\11\11\35\11\11\68\68\83\7\7\
+        \\11\11\35\83\11\69\69\11\7\7\
+        \\11\11\35\11\11\11\11\92\7\7\
+        \\11\11\35\92\11\11\11\11\7\7\
+        \\4\4\24\4\70\94\94\78\7\7\
+        \\94\4\24\4\71\4\4\80\7\7\
+        \\11\11\35\77\72\46\46\11\7\7\
+        \\84\45\35\75\73\11\11\11\7\7\
+        \\11\51\35\11\74\11\11\98\7\7\
+        \\98\47\35\11\75\11\11\11\7\7\
+        \\76\80\24\4\76\4\4\4\7\7\
+        \\11\11\35\11\77\89\89\11\7\7\
+        \\4\4\24\4\78\97\97\4\7\7\
+        \\4\4\24\97\79\4\4\4\7\7\
+        \\97\4\24\4\80\4\4\4\7\7\
+        \\11\11\3\53\81\11\11\11\81\81\
+        \\11\11\39\95\82\11\11\11\7\7\
+        \\11\11\35\11\11\92\92\11\7\7\
+        \\11\46\35\98\84\11\11\11\7\7\
+        \\11\11\39\99\11\85\85\11\7\7\
+        \\99\11\39\11\11\63\63\11\7\7\
+        \\85\11\39\63\11\11\11\11\7\7\
+        \\4\4\24\94\88\4\4\79\7\7\
+        \\11\11\35\11\89\11\11\11\7\7\
+        \\102\103\3\11\90\11\11\75\7\7\
+        \\84\20\35\75\91\11\11\11\7\7\
+        \\11\11\35\11\11\11\11\11\7\7\
+        \\93\11\3\103\93\11\11\45\7\7\
+        \\4\4\24\4\94\4\4\97\7\7\
+        \\11\11\39\11\95\11\11\11\7\7\
+        \\4\94\24\4\96\4\4\76\7\7\
+        \\4\4\24\4\97\4\4\4\7\7\
+        \\11\89\35\11\98\11\11\11\7\7\
+        \\11\11\39\11\11\104\104\11\7\7\
+        \\100\4\3\4\100\4\4\80\7\7\
+        \\11\95\39\11\101\11\11\11\7\7\
+        \\11\103\3\11\102\11\11\98\7\7\
+        \\103\11\3\11\103\11\11\47\7\7\
+        \\11\11\39\11\11\11\11\11\7\7"
+    lambdaTable =
+        "\0\1\1\1\1\1\1\1\1\1\
+        \\2\1\1\1\1\1\1\1\3\1\
+        \\1\1\1\1\1\1\1\1\1\1\
+        \\1\1\1\1\1\1\1\1\1\1\
+        \\1\1\1\1\1\1\1\1\1\1\
+        \\1\1\1\1\1\1\1\1\1\1\
+        \\1\1\1\1\1\1\1\1\1\1\
+        \\1\1\1\1\1\1\1\1\1\1\
+        \\4\4\4\4\4\4\4\4\4\4\
+        \\5\1\1\1\1\1\1\1\3\1\
+        \\1\1\1\1\1\1\1\1\3\1\
+        \\1\1\1\1\1\1\1\1\3\1\
+        \\1\1\1\1\1\1\1\1\3\1\
+        \\1\1\1\1\1\1\1\1\3\1\
+        \\1\1\1\1\1\1\1\1\3\1\
+        \\1\1\1\1\1\1\1\1\3\1\
+        \\1\1\1\1\1\1\1\1\3\1\
+        \\1\1\1\1\1\1\1\1\3\1\
+        \\1\1\1\7\1\1\1\1\1\1\
+        \\1\1\1\1\1\1\1\1\3\1\
+        \\1\1\1\1\1\1\1\1\3\1\
+        \\1\1\1\1\1\1\1\1\3\1\
+        \\1\1\1\1\1\1\1\1\3\1\
+        \\1\1\1\1\1\1\1\1\1\1\
+        \\1\1\1\1\1\1\1\1\1\1\
+        \\1\1\1\1\1\1\1\1\1\1\
+        \\1\1\1\1\1\1\1\1\1\1\
+        \\1\1\1\1\1\1\1\1\1\1\
+        \\1\1\1\1\1\1\1\1\1\1\
+        \\1\1\1\1\1\1\1\1\1\1\
+        \\1\1\1\1\1\1\1\1\1\1\
+        \\1\1\1\1\1\1\1\1\1\1\
+        \\1\1\1\1\1\1\1\1\1\1\
+        \\1\1\1\1\1\1\1\1\1\1\
+        \\1\1\1\1\1\1\1\1\3\1\
+        \\5\5\1\5\1\5\5\5\1\1\
+        \\1\1\1\1\1\1\1\1\3\1\
+        \\1\1\1\1\1\1\1\1\3\1\
+        \\1\1\1\1\1\1\1\1\3\1\
+        \\6\6\1\6\1\6\6\6\1\1\
+        \\1\1\1\1\1\1\1\1\3\1\
+        \\1\1\1\1\1\1\1\1\3\1\
+        \\1\1\1\1\1\1\1\1\3\1\
+        \\1\1\1\1\1\1\1\1\3\1\
+        \\1\1\1\1\1\1\1\1\3\1\
+        \\1\1\1\1\1\1\1\1\3\1\
+        \\1\1\1\1\1\1\1\1\3\1\
+        \\1\1\1\1\1\1\1\1\3\1\
+        \\1\1\1\1\1\1\1\1\3\1\
+        \\1\1\1\1\1\1\1\1\3\1\
+        \\1\1\1\1\1\1\1\1\3\1\
+        \\1\1\1\1\1\1\1\1\3\1\
+        \\1\1\1\1\1\1\1\1\3\1\
+        \\1\1\1\1\9\1\1\1\1\1\
+        \\1\1\1\1\1\1\1\1\3\1\
+        \\1\1\1\1\1\1\1\1\3\1\
+        \\1\1\1\1\1\1\1\1\3\1\
+        \\1\1\1\1\1\1\1\1\3\1\
+        \\1\1\1\1\1\1\1\1\3\1\
+        \\1\1\1\1\1\1\1\1\3\1\
+        \\7\8\1\7\1\7\7\7\1\1\
+        \\1\1\1\1\1\1\1\1\3\1\
+        \\1\1\1\1\1\1\1\1\3\1\
+        \\1\1\1\1\1\1\1\1\3\1\
+        \\1\1\1\1\1\1\1\1\1\1\
+        \\1\1\1\1\1\1\1\1\1\1\
+        \\1\1\1\1\1\1\1\1\3\1\
+        \\1\1\1\1\1\1\1\1\3\1\
+        \\1\1\1\1\1\1\1\1\3\1\
+        \\1\1\1\1\1\1\1\1\3\1\
+        \\1\1\1\1\1\1\1\1\1\1\
+        \\1\1\1\1\1\1\1\1\1\1\
+        \\1\1\1\1\1\1\1\1\3\1\
+        \\1\1\1\1\1\1\1\1\3\1\
+        \\1\1\1\1\1\1\1\1\3\1\
+        \\1\1\1\1\1\1\1\1\3\1\
+        \\1\1\1\1\1\1\1\1\1\1\
+        \\1\1\1\1\1\1\1\1\3\1\
+        \\1\1\1\1\1\1\1\1\1\1\
+        \\1\1\1\1\1\1\1\1\1\1\
+        \\1\1\1\1\1\1\1\1\1\1\
+        \\1\1\1\7\1\1\1\1\1\1\
+        \\1\1\1\1\1\1\1\1\3\1\
+        \\1\1\1\1\1\1\1\1\3\1\
+        \\1\1\1\1\1\1\1\1\3\1\
+        \\1\1\1\1\1\1\1\1\3\1\
+        \\1\1\1\1\1\1\1\1\3\1\
+        \\1\1\1\1\1\1\1\1\3\1\
+        \\1\1\1\1\1\1\1\1\1\1\
+        \\1\1\1\1\1\1\1\1\3\1\
+        \\1\1\1\1\1\1\1\1\3\1\
+        \\1\1\1\1\1\1\1\1\3\1\
+        \\1\1\1\1\1\1\1\1\3\1\
+        \\1\1\1\1\1\1\1\1\3\1\
+        \\1\1\1\1\1\1\1\1\1\1\
+        \\1\1\1\1\1\1\1\1\3\1\
+        \\1\1\1\1\1\1\1\1\1\1\
+        \\1\1\1\1\1\1\1\1\1\1\
+        \\1\1\1\1\1\1\1\1\3\1\
+        \\1\1\1\1\1\1\1\1\3\1\
+        \\1\1\1\1\1\1\1\1\1\1\
+        \\1\1\1\1\1\1\1\1\3\1\
+        \\1\1\1\1\1\1\1\1\3\1\
+        \\1\1\1\1\1\1\1\1\3\1\
+        \\1\1\1\1\1\1\1\1\3\1"
diff --git a/src/Haal/Models/DTLS/JsseV12RsaCertReq.hs b/src/Haal/Models/DTLS/JsseV12RsaCertReq.hs
--- a/src/Haal/Models/DTLS/JsseV12RsaCertReq.hs
+++ b/src/Haal/Models/DTLS/JsseV12RsaCertReq.hs
@@ -5,2298 +5,1398 @@
     , jsseV12RsaCertReq
     ) where
 
-import qualified Data.Set as Set
-import Haal.Automaton.MealyAutomaton (MealyAutomaton, mkMealyAutomaton)
-
-data JsseV12RsaCertReqInput
-    = In_RSA_CLIENT_HELLO
-    | In_RSA_CLIENT_KEY_EXCHANGE
-    | In_CHANGE_CIPHER_SPEC
-    | In_FINISHED
-    | In_APPLICATION
-    | In_CERTIFICATE
-    | In_EMPTY_CERTIFICATE
-    | In_CERTIFICATE_VERIFY
-    | In_Alert_WARNING_CLOSE_NOTIFY
-    | In_Alert_FATAL_UNEXPECTED_MESSAGE
-    deriving (Show, Eq, Ord, Enum, Bounded)
-
-data JsseV12RsaCertReqOutput
-    = Out_HELLO_VERIFY_REQUEST
-    | Out_TIMEOUT
-    | Out_SERVER_HELLO_CERTIFICATE_CERTIFICATE_REQUEST_SERVER_HELLO_DONE
-    | Out_Alert_WARNING_CLOSE_NOTIFY
-    | Out_SOCKET_CLOSED
-    | Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    | Out_Alert_FATAL_BAD_CERTIFICATE
-    | Out_Alert_FATAL_HANDSHAKE_FAILURE
-    | Out_CHANGE_CIPHER_SPEC_FINISHED_CHANGE_CIPHER_SPEC_FINISHED
-    | Out_CHANGE_CIPHER_SPEC_UNKNOWN_MESSAGE_CHANGE_CIPHER_SPEC_UNKNOWN_MESSAGE
-    | Out_APPLICATION
-    deriving (Show, Eq, Ord, Enum, Bounded)
-
-jsseV12RsaCertReq :: MealyAutomaton Int JsseV12RsaCertReqInput JsseV12RsaCertReqOutput
-jsseV12RsaCertReq = mkMealyAutomaton delta lambda (Set.fromList [0..112]) 0
-  where
-    delta 0 In_RSA_CLIENT_HELLO = 1
-    delta 0 In_RSA_CLIENT_KEY_EXCHANGE = 2
-    delta 0 In_CHANGE_CIPHER_SPEC = 3
-    delta 0 In_FINISHED = 4
-    delta 0 In_APPLICATION = 0
-    delta 0 In_CERTIFICATE = 5
-    delta 0 In_EMPTY_CERTIFICATE = 6
-    delta 0 In_CERTIFICATE_VERIFY = 4
-    delta 0 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 0 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 7 In_RSA_CLIENT_HELLO = 8
-    delta 7 In_RSA_CLIENT_KEY_EXCHANGE = 8
-    delta 7 In_CHANGE_CIPHER_SPEC = 8
-    delta 7 In_FINISHED = 8
-    delta 7 In_APPLICATION = 8
-    delta 7 In_CERTIFICATE = 8
-    delta 7 In_EMPTY_CERTIFICATE = 8
-    delta 7 In_CERTIFICATE_VERIFY = 8
-    delta 7 In_Alert_WARNING_CLOSE_NOTIFY = 8
-    delta 7 In_Alert_FATAL_UNEXPECTED_MESSAGE = 8
-    delta 1 In_RSA_CLIENT_HELLO = 9
-    delta 1 In_RSA_CLIENT_KEY_EXCHANGE = 10
-    delta 1 In_CHANGE_CIPHER_SPEC = 3
-    delta 1 In_FINISHED = 11
-    delta 1 In_APPLICATION = 1
-    delta 1 In_CERTIFICATE = 12
-    delta 1 In_EMPTY_CERTIFICATE = 13
-    delta 1 In_CERTIFICATE_VERIFY = 11
-    delta 1 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 1 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 8 In_RSA_CLIENT_HELLO = 8
-    delta 8 In_RSA_CLIENT_KEY_EXCHANGE = 8
-    delta 8 In_CHANGE_CIPHER_SPEC = 8
-    delta 8 In_FINISHED = 8
-    delta 8 In_APPLICATION = 8
-    delta 8 In_CERTIFICATE = 8
-    delta 8 In_EMPTY_CERTIFICATE = 8
-    delta 8 In_CERTIFICATE_VERIFY = 8
-    delta 8 In_Alert_WARNING_CLOSE_NOTIFY = 8
-    delta 8 In_Alert_FATAL_UNEXPECTED_MESSAGE = 8
-    delta 9 In_RSA_CLIENT_HELLO = 7
-    delta 9 In_RSA_CLIENT_KEY_EXCHANGE = 14
-    delta 9 In_CHANGE_CIPHER_SPEC = 3
-    delta 9 In_FINISHED = 11
-    delta 9 In_APPLICATION = 9
-    delta 9 In_CERTIFICATE = 15
-    delta 9 In_EMPTY_CERTIFICATE = 16
-    delta 9 In_CERTIFICATE_VERIFY = 11
-    delta 9 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 9 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 4 In_RSA_CLIENT_HELLO = 4
-    delta 4 In_RSA_CLIENT_KEY_EXCHANGE = 4
-    delta 4 In_CHANGE_CIPHER_SPEC = 3
-    delta 4 In_FINISHED = 4
-    delta 4 In_APPLICATION = 4
-    delta 4 In_CERTIFICATE = 4
-    delta 4 In_EMPTY_CERTIFICATE = 4
-    delta 4 In_CERTIFICATE_VERIFY = 4
-    delta 4 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 4 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 3 In_RSA_CLIENT_HELLO = 3
-    delta 3 In_RSA_CLIENT_KEY_EXCHANGE = 3
-    delta 3 In_CHANGE_CIPHER_SPEC = 3
-    delta 3 In_FINISHED = 3
-    delta 3 In_APPLICATION = 3
-    delta 3 In_CERTIFICATE = 3
-    delta 3 In_EMPTY_CERTIFICATE = 3
-    delta 3 In_CERTIFICATE_VERIFY = 3
-    delta 3 In_Alert_WARNING_CLOSE_NOTIFY = 3
-    delta 3 In_Alert_FATAL_UNEXPECTED_MESSAGE = 3
-    delta 14 In_RSA_CLIENT_HELLO = 17
-    delta 14 In_RSA_CLIENT_KEY_EXCHANGE = 11
-    delta 14 In_CHANGE_CIPHER_SPEC = 18
-    delta 14 In_FINISHED = 19
-    delta 14 In_APPLICATION = 14
-    delta 14 In_CERTIFICATE = 20
-    delta 14 In_EMPTY_CERTIFICATE = 21
-    delta 14 In_CERTIFICATE_VERIFY = 22
-    delta 14 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 14 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 2 In_RSA_CLIENT_HELLO = 23
-    delta 2 In_RSA_CLIENT_KEY_EXCHANGE = 4
-    delta 2 In_CHANGE_CIPHER_SPEC = 24
-    delta 2 In_FINISHED = 25
-    delta 2 In_APPLICATION = 2
-    delta 2 In_CERTIFICATE = 26
-    delta 2 In_EMPTY_CERTIFICATE = 26
-    delta 2 In_CERTIFICATE_VERIFY = 27
-    delta 2 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 2 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 24 In_RSA_CLIENT_HELLO = 7
-    delta 24 In_RSA_CLIENT_KEY_EXCHANGE = 7
-    delta 24 In_CHANGE_CIPHER_SPEC = 3
-    delta 24 In_FINISHED = 7
-    delta 24 In_APPLICATION = 24
-    delta 24 In_CERTIFICATE = 7
-    delta 24 In_EMPTY_CERTIFICATE = 7
-    delta 24 In_CERTIFICATE_VERIFY = 7
-    delta 24 In_Alert_WARNING_CLOSE_NOTIFY = 24
-    delta 24 In_Alert_FATAL_UNEXPECTED_MESSAGE = 24
-    delta 6 In_RSA_CLIENT_HELLO = 28
-    delta 6 In_RSA_CLIENT_KEY_EXCHANGE = 26
-    delta 6 In_CHANGE_CIPHER_SPEC = 24
-    delta 6 In_FINISHED = 29
-    delta 6 In_APPLICATION = 6
-    delta 6 In_CERTIFICATE = 4
-    delta 6 In_EMPTY_CERTIFICATE = 4
-    delta 6 In_CERTIFICATE_VERIFY = 30
-    delta 6 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 6 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 27 In_RSA_CLIENT_HELLO = 31
-    delta 27 In_RSA_CLIENT_KEY_EXCHANGE = 4
-    delta 27 In_CHANGE_CIPHER_SPEC = 24
-    delta 27 In_FINISHED = 32
-    delta 27 In_APPLICATION = 27
-    delta 27 In_CERTIFICATE = 33
-    delta 27 In_EMPTY_CERTIFICATE = 33
-    delta 27 In_CERTIFICATE_VERIFY = 4
-    delta 27 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 27 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 19 In_RSA_CLIENT_HELLO = 34
-    delta 19 In_RSA_CLIENT_KEY_EXCHANGE = 11
-    delta 19 In_CHANGE_CIPHER_SPEC = 35
-    delta 19 In_FINISHED = 11
-    delta 19 In_APPLICATION = 19
-    delta 19 In_CERTIFICATE = 36
-    delta 19 In_EMPTY_CERTIFICATE = 36
-    delta 19 In_CERTIFICATE_VERIFY = 37
-    delta 19 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 19 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 16 In_RSA_CLIENT_HELLO = 38
-    delta 16 In_RSA_CLIENT_KEY_EXCHANGE = 21
-    delta 16 In_CHANGE_CIPHER_SPEC = 39
-    delta 16 In_FINISHED = 40
-    delta 16 In_APPLICATION = 16
-    delta 16 In_CERTIFICATE = 11
-    delta 16 In_EMPTY_CERTIFICATE = 11
-    delta 16 In_CERTIFICATE_VERIFY = 41
-    delta 16 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 16 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 22 In_RSA_CLIENT_HELLO = 22
-    delta 22 In_RSA_CLIENT_KEY_EXCHANGE = 11
-    delta 22 In_CHANGE_CIPHER_SPEC = 42
-    delta 22 In_FINISHED = 43
-    delta 22 In_APPLICATION = 22
-    delta 22 In_CERTIFICATE = 44
-    delta 22 In_EMPTY_CERTIFICATE = 44
-    delta 22 In_CERTIFICATE_VERIFY = 11
-    delta 22 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 22 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 39 In_RSA_CLIENT_HELLO = 7
-    delta 39 In_RSA_CLIENT_KEY_EXCHANGE = 7
-    delta 39 In_CHANGE_CIPHER_SPEC = 3
-    delta 39 In_FINISHED = 7
-    delta 39 In_APPLICATION = 39
-    delta 39 In_CERTIFICATE = 7
-    delta 39 In_EMPTY_CERTIFICATE = 7
-    delta 39 In_CERTIFICATE_VERIFY = 7
-    delta 39 In_Alert_WARNING_CLOSE_NOTIFY = 39
-    delta 39 In_Alert_FATAL_UNEXPECTED_MESSAGE = 39
-    delta 42 In_RSA_CLIENT_HELLO = 7
-    delta 42 In_RSA_CLIENT_KEY_EXCHANGE = 7
-    delta 42 In_CHANGE_CIPHER_SPEC = 3
-    delta 42 In_FINISHED = 7
-    delta 42 In_APPLICATION = 42
-    delta 42 In_CERTIFICATE = 7
-    delta 42 In_EMPTY_CERTIFICATE = 7
-    delta 42 In_CERTIFICATE_VERIFY = 7
-    delta 42 In_Alert_WARNING_CLOSE_NOTIFY = 42
-    delta 42 In_Alert_FATAL_UNEXPECTED_MESSAGE = 42
-    delta 10 In_RSA_CLIENT_HELLO = 17
-    delta 10 In_RSA_CLIENT_KEY_EXCHANGE = 11
-    delta 10 In_CHANGE_CIPHER_SPEC = 35
-    delta 10 In_FINISHED = 19
-    delta 10 In_APPLICATION = 10
-    delta 10 In_CERTIFICATE = 45
-    delta 10 In_EMPTY_CERTIFICATE = 45
-    delta 10 In_CERTIFICATE_VERIFY = 46
-    delta 10 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 10 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 12 In_RSA_CLIENT_HELLO = 12
-    delta 12 In_RSA_CLIENT_KEY_EXCHANGE = 47
-    delta 12 In_CHANGE_CIPHER_SPEC = 3
-    delta 12 In_FINISHED = 48
-    delta 12 In_APPLICATION = 12
-    delta 12 In_CERTIFICATE = 11
-    delta 12 In_EMPTY_CERTIFICATE = 11
-    delta 12 In_CERTIFICATE_VERIFY = 49
-    delta 12 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 12 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 35 In_RSA_CLIENT_HELLO = 7
-    delta 35 In_RSA_CLIENT_KEY_EXCHANGE = 7
-    delta 35 In_CHANGE_CIPHER_SPEC = 3
-    delta 35 In_FINISHED = 7
-    delta 35 In_APPLICATION = 35
-    delta 35 In_CERTIFICATE = 7
-    delta 35 In_EMPTY_CERTIFICATE = 7
-    delta 35 In_CERTIFICATE_VERIFY = 7
-    delta 35 In_Alert_WARNING_CLOSE_NOTIFY = 35
-    delta 35 In_Alert_FATAL_UNEXPECTED_MESSAGE = 35
-    delta 23 In_RSA_CLIENT_HELLO = 4
-    delta 23 In_RSA_CLIENT_KEY_EXCHANGE = 4
-    delta 23 In_CHANGE_CIPHER_SPEC = 24
-    delta 23 In_FINISHED = 50
-    delta 23 In_APPLICATION = 23
-    delta 23 In_CERTIFICATE = 51
-    delta 23 In_EMPTY_CERTIFICATE = 51
-    delta 23 In_CERTIFICATE_VERIFY = 31
-    delta 23 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 23 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 13 In_RSA_CLIENT_HELLO = 52
-    delta 13 In_RSA_CLIENT_KEY_EXCHANGE = 45
-    delta 13 In_CHANGE_CIPHER_SPEC = 35
-    delta 13 In_FINISHED = 53
-    delta 13 In_APPLICATION = 13
-    delta 13 In_CERTIFICATE = 11
-    delta 13 In_EMPTY_CERTIFICATE = 11
-    delta 13 In_CERTIFICATE_VERIFY = 49
-    delta 13 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 13 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 53 In_RSA_CLIENT_HELLO = 54
-    delta 53 In_RSA_CLIENT_KEY_EXCHANGE = 36
-    delta 53 In_CHANGE_CIPHER_SPEC = 35
-    delta 53 In_FINISHED = 11
-    delta 53 In_APPLICATION = 53
-    delta 53 In_CERTIFICATE = 11
-    delta 53 In_EMPTY_CERTIFICATE = 11
-    delta 53 In_CERTIFICATE_VERIFY = 55
-    delta 53 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 53 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 49 In_RSA_CLIENT_HELLO = 56
-    delta 49 In_RSA_CLIENT_KEY_EXCHANGE = 57
-    delta 49 In_CHANGE_CIPHER_SPEC = 35
-    delta 49 In_FINISHED = 55
-    delta 49 In_APPLICATION = 49
-    delta 49 In_CERTIFICATE = 11
-    delta 49 In_EMPTY_CERTIFICATE = 11
-    delta 49 In_CERTIFICATE_VERIFY = 11
-    delta 49 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 49 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 43 In_RSA_CLIENT_HELLO = 58
-    delta 43 In_RSA_CLIENT_KEY_EXCHANGE = 11
-    delta 43 In_CHANGE_CIPHER_SPEC = 42
-    delta 43 In_FINISHED = 11
-    delta 43 In_APPLICATION = 43
-    delta 43 In_CERTIFICATE = 59
-    delta 43 In_EMPTY_CERTIFICATE = 59
-    delta 43 In_CERTIFICATE_VERIFY = 11
-    delta 43 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 43 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 5 In_RSA_CLIENT_HELLO = 5
-    delta 5 In_RSA_CLIENT_KEY_EXCHANGE = 5
-    delta 5 In_CHANGE_CIPHER_SPEC = 3
-    delta 5 In_FINISHED = 60
-    delta 5 In_APPLICATION = 5
-    delta 5 In_CERTIFICATE = 4
-    delta 5 In_EMPTY_CERTIFICATE = 4
-    delta 5 In_CERTIFICATE_VERIFY = 30
-    delta 5 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 5 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 47 In_RSA_CLIENT_HELLO = 47
-    delta 47 In_RSA_CLIENT_KEY_EXCHANGE = 11
-    delta 47 In_CHANGE_CIPHER_SPEC = 3
-    delta 47 In_FINISHED = 61
-    delta 47 In_APPLICATION = 47
-    delta 47 In_CERTIFICATE = 11
-    delta 47 In_EMPTY_CERTIFICATE = 11
-    delta 47 In_CERTIFICATE_VERIFY = 57
-    delta 47 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 47 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 57 In_RSA_CLIENT_HELLO = 62
-    delta 57 In_RSA_CLIENT_KEY_EXCHANGE = 11
-    delta 57 In_CHANGE_CIPHER_SPEC = 35
-    delta 57 In_FINISHED = 63
-    delta 57 In_APPLICATION = 57
-    delta 57 In_CERTIFICATE = 11
-    delta 57 In_EMPTY_CERTIFICATE = 11
-    delta 57 In_CERTIFICATE_VERIFY = 11
-    delta 57 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 57 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 41 In_RSA_CLIENT_HELLO = 64
-    delta 41 In_RSA_CLIENT_KEY_EXCHANGE = 65
-    delta 41 In_CHANGE_CIPHER_SPEC = 39
-    delta 41 In_FINISHED = 66
-    delta 41 In_APPLICATION = 41
-    delta 41 In_CERTIFICATE = 11
-    delta 41 In_EMPTY_CERTIFICATE = 11
-    delta 41 In_CERTIFICATE_VERIFY = 11
-    delta 41 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 41 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 11 In_RSA_CLIENT_HELLO = 11
-    delta 11 In_RSA_CLIENT_KEY_EXCHANGE = 11
-    delta 11 In_CHANGE_CIPHER_SPEC = 3
-    delta 11 In_FINISHED = 11
-    delta 11 In_APPLICATION = 11
-    delta 11 In_CERTIFICATE = 11
-    delta 11 In_EMPTY_CERTIFICATE = 11
-    delta 11 In_CERTIFICATE_VERIFY = 11
-    delta 11 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 11 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 18 In_RSA_CLIENT_HELLO = 67
-    delta 18 In_RSA_CLIENT_KEY_EXCHANGE = 11
-    delta 18 In_CHANGE_CIPHER_SPEC = 3
-    delta 18 In_FINISHED = 68
-    delta 18 In_APPLICATION = 18
-    delta 18 In_CERTIFICATE = 69
-    delta 18 In_EMPTY_CERTIFICATE = 70
-    delta 18 In_CERTIFICATE_VERIFY = 71
-    delta 18 In_Alert_WARNING_CLOSE_NOTIFY = 18
-    delta 18 In_Alert_FATAL_UNEXPECTED_MESSAGE = 18
-    delta 69 In_RSA_CLIENT_HELLO = 72
-    delta 69 In_RSA_CLIENT_KEY_EXCHANGE = 11
-    delta 69 In_CHANGE_CIPHER_SPEC = 35
-    delta 69 In_FINISHED = 73
-    delta 69 In_APPLICATION = 11
-    delta 69 In_CERTIFICATE = 11
-    delta 69 In_EMPTY_CERTIFICATE = 11
-    delta 69 In_CERTIFICATE_VERIFY = 69
-    delta 69 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 69 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 73 In_RSA_CLIENT_HELLO = 73
-    delta 73 In_RSA_CLIENT_KEY_EXCHANGE = 11
-    delta 73 In_CHANGE_CIPHER_SPEC = 74
-    delta 73 In_FINISHED = 11
-    delta 73 In_APPLICATION = 11
-    delta 73 In_CERTIFICATE = 11
-    delta 73 In_EMPTY_CERTIFICATE = 11
-    delta 73 In_CERTIFICATE_VERIFY = 75
-    delta 73 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 73 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 74 In_RSA_CLIENT_HELLO = 3
-    delta 74 In_RSA_CLIENT_KEY_EXCHANGE = 3
-    delta 74 In_CHANGE_CIPHER_SPEC = 3
-    delta 74 In_FINISHED = 3
-    delta 74 In_APPLICATION = 74
-    delta 74 In_CERTIFICATE = 3
-    delta 74 In_EMPTY_CERTIFICATE = 3
-    delta 74 In_CERTIFICATE_VERIFY = 3
-    delta 74 In_Alert_WARNING_CLOSE_NOTIFY = 74
-    delta 74 In_Alert_FATAL_UNEXPECTED_MESSAGE = 74
-    delta 64 In_RSA_CLIENT_HELLO = 11
-    delta 64 In_RSA_CLIENT_KEY_EXCHANGE = 76
-    delta 64 In_CHANGE_CIPHER_SPEC = 39
-    delta 64 In_FINISHED = 77
-    delta 64 In_APPLICATION = 64
-    delta 64 In_CERTIFICATE = 11
-    delta 64 In_EMPTY_CERTIFICATE = 11
-    delta 64 In_CERTIFICATE_VERIFY = 11
-    delta 64 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 64 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 21 In_RSA_CLIENT_HELLO = 78
-    delta 21 In_RSA_CLIENT_KEY_EXCHANGE = 11
-    delta 21 In_CHANGE_CIPHER_SPEC = 39
-    delta 21 In_FINISHED = 79
-    delta 21 In_APPLICATION = 21
-    delta 21 In_CERTIFICATE = 11
-    delta 21 In_EMPTY_CERTIFICATE = 11
-    delta 21 In_CERTIFICATE_VERIFY = 65
-    delta 21 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 21 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 32 In_RSA_CLIENT_HELLO = 80
-    delta 32 In_RSA_CLIENT_KEY_EXCHANGE = 4
-    delta 32 In_CHANGE_CIPHER_SPEC = 24
-    delta 32 In_FINISHED = 4
-    delta 32 In_APPLICATION = 32
-    delta 32 In_CERTIFICATE = 81
-    delta 32 In_EMPTY_CERTIFICATE = 81
-    delta 32 In_CERTIFICATE_VERIFY = 4
-    delta 32 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 32 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 26 In_RSA_CLIENT_HELLO = 51
-    delta 26 In_RSA_CLIENT_KEY_EXCHANGE = 4
-    delta 26 In_CHANGE_CIPHER_SPEC = 24
-    delta 26 In_FINISHED = 82
-    delta 26 In_APPLICATION = 26
-    delta 26 In_CERTIFICATE = 4
-    delta 26 In_EMPTY_CERTIFICATE = 4
-    delta 26 In_CERTIFICATE_VERIFY = 33
-    delta 26 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 26 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 28 In_RSA_CLIENT_HELLO = 4
-    delta 28 In_RSA_CLIENT_KEY_EXCHANGE = 51
-    delta 28 In_CHANGE_CIPHER_SPEC = 24
-    delta 28 In_FINISHED = 83
-    delta 28 In_APPLICATION = 28
-    delta 28 In_CERTIFICATE = 4
-    delta 28 In_EMPTY_CERTIFICATE = 4
-    delta 28 In_CERTIFICATE_VERIFY = 84
-    delta 28 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 28 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 67 In_RSA_CLIENT_HELLO = 11
-    delta 67 In_RSA_CLIENT_KEY_EXCHANGE = 11
-    delta 67 In_CHANGE_CIPHER_SPEC = 35
-    delta 67 In_FINISHED = 85
-    delta 67 In_APPLICATION = 11
-    delta 67 In_CERTIFICATE = 72
-    delta 67 In_EMPTY_CERTIFICATE = 72
-    delta 67 In_CERTIFICATE_VERIFY = 67
-    delta 67 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 67 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 45 In_RSA_CLIENT_HELLO = 86
-    delta 45 In_RSA_CLIENT_KEY_EXCHANGE = 11
-    delta 45 In_CHANGE_CIPHER_SPEC = 35
-    delta 45 In_FINISHED = 36
-    delta 45 In_APPLICATION = 45
-    delta 45 In_CERTIFICATE = 11
-    delta 45 In_EMPTY_CERTIFICATE = 11
-    delta 45 In_CERTIFICATE_VERIFY = 57
-    delta 45 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 45 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 80 In_RSA_CLIENT_HELLO = 4
-    delta 80 In_RSA_CLIENT_KEY_EXCHANGE = 4
-    delta 80 In_CHANGE_CIPHER_SPEC = 24
-    delta 80 In_FINISHED = 4
-    delta 80 In_APPLICATION = 80
-    delta 80 In_CERTIFICATE = 87
-    delta 80 In_EMPTY_CERTIFICATE = 87
-    delta 80 In_CERTIFICATE_VERIFY = 4
-    delta 80 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 80 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 36 In_RSA_CLIENT_HELLO = 88
-    delta 36 In_RSA_CLIENT_KEY_EXCHANGE = 11
-    delta 36 In_CHANGE_CIPHER_SPEC = 35
-    delta 36 In_FINISHED = 11
-    delta 36 In_APPLICATION = 36
-    delta 36 In_CERTIFICATE = 11
-    delta 36 In_EMPTY_CERTIFICATE = 11
-    delta 36 In_CERTIFICATE_VERIFY = 63
-    delta 36 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 36 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 31 In_RSA_CLIENT_HELLO = 4
-    delta 31 In_RSA_CLIENT_KEY_EXCHANGE = 4
-    delta 31 In_CHANGE_CIPHER_SPEC = 24
-    delta 31 In_FINISHED = 80
-    delta 31 In_APPLICATION = 31
-    delta 31 In_CERTIFICATE = 89
-    delta 31 In_EMPTY_CERTIFICATE = 89
-    delta 31 In_CERTIFICATE_VERIFY = 4
-    delta 31 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 31 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 54 In_RSA_CLIENT_HELLO = 11
-    delta 54 In_RSA_CLIENT_KEY_EXCHANGE = 88
-    delta 54 In_CHANGE_CIPHER_SPEC = 35
-    delta 54 In_FINISHED = 11
-    delta 54 In_APPLICATION = 54
-    delta 54 In_CERTIFICATE = 11
-    delta 54 In_EMPTY_CERTIFICATE = 11
-    delta 54 In_CERTIFICATE_VERIFY = 90
-    delta 54 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 54 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 17 In_RSA_CLIENT_HELLO = 11
-    delta 17 In_RSA_CLIENT_KEY_EXCHANGE = 11
-    delta 17 In_CHANGE_CIPHER_SPEC = 35
-    delta 17 In_FINISHED = 34
-    delta 17 In_APPLICATION = 17
-    delta 17 In_CERTIFICATE = 86
-    delta 17 In_EMPTY_CERTIFICATE = 86
-    delta 17 In_CERTIFICATE_VERIFY = 91
-    delta 17 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 17 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 58 In_RSA_CLIENT_HELLO = 11
-    delta 58 In_RSA_CLIENT_KEY_EXCHANGE = 11
-    delta 58 In_CHANGE_CIPHER_SPEC = 42
-    delta 58 In_FINISHED = 11
-    delta 58 In_APPLICATION = 58
-    delta 58 In_CERTIFICATE = 92
-    delta 58 In_EMPTY_CERTIFICATE = 92
-    delta 58 In_CERTIFICATE_VERIFY = 11
-    delta 58 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 58 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 68 In_RSA_CLIENT_HELLO = 68
-    delta 68 In_RSA_CLIENT_KEY_EXCHANGE = 68
-    delta 68 In_CHANGE_CIPHER_SPEC = 3
-    delta 68 In_FINISHED = 68
-    delta 68 In_APPLICATION = 7
-    delta 68 In_CERTIFICATE = 68
-    delta 68 In_EMPTY_CERTIFICATE = 68
-    delta 68 In_CERTIFICATE_VERIFY = 68
-    delta 68 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 68 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 15 In_RSA_CLIENT_HELLO = 12
-    delta 15 In_RSA_CLIENT_KEY_EXCHANGE = 93
-    delta 15 In_CHANGE_CIPHER_SPEC = 3
-    delta 15 In_FINISHED = 48
-    delta 15 In_APPLICATION = 15
-    delta 15 In_CERTIFICATE = 11
-    delta 15 In_EMPTY_CERTIFICATE = 11
-    delta 15 In_CERTIFICATE_VERIFY = 94
-    delta 15 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 15 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 93 In_RSA_CLIENT_HELLO = 47
-    delta 93 In_RSA_CLIENT_KEY_EXCHANGE = 11
-    delta 93 In_CHANGE_CIPHER_SPEC = 3
-    delta 93 In_FINISHED = 61
-    delta 93 In_APPLICATION = 93
-    delta 93 In_CERTIFICATE = 11
-    delta 93 In_EMPTY_CERTIFICATE = 11
-    delta 93 In_CERTIFICATE_VERIFY = 95
-    delta 93 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 93 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 34 In_RSA_CLIENT_HELLO = 11
-    delta 34 In_RSA_CLIENT_KEY_EXCHANGE = 11
-    delta 34 In_CHANGE_CIPHER_SPEC = 35
-    delta 34 In_FINISHED = 11
-    delta 34 In_APPLICATION = 34
-    delta 34 In_CERTIFICATE = 88
-    delta 34 In_EMPTY_CERTIFICATE = 88
-    delta 34 In_CERTIFICATE_VERIFY = 96
-    delta 34 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 34 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 88 In_RSA_CLIENT_HELLO = 11
-    delta 88 In_RSA_CLIENT_KEY_EXCHANGE = 11
-    delta 88 In_CHANGE_CIPHER_SPEC = 35
-    delta 88 In_FINISHED = 11
-    delta 88 In_APPLICATION = 88
-    delta 88 In_CERTIFICATE = 11
-    delta 88 In_EMPTY_CERTIFICATE = 11
-    delta 88 In_CERTIFICATE_VERIFY = 97
-    delta 88 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 88 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 90 In_RSA_CLIENT_HELLO = 11
-    delta 90 In_RSA_CLIENT_KEY_EXCHANGE = 97
-    delta 90 In_CHANGE_CIPHER_SPEC = 35
-    delta 90 In_FINISHED = 11
-    delta 90 In_APPLICATION = 90
-    delta 90 In_CERTIFICATE = 11
-    delta 90 In_EMPTY_CERTIFICATE = 11
-    delta 90 In_CERTIFICATE_VERIFY = 11
-    delta 90 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 90 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 86 In_RSA_CLIENT_HELLO = 11
-    delta 86 In_RSA_CLIENT_KEY_EXCHANGE = 11
-    delta 86 In_CHANGE_CIPHER_SPEC = 35
-    delta 86 In_FINISHED = 88
-    delta 86 In_APPLICATION = 86
-    delta 86 In_CERTIFICATE = 11
-    delta 86 In_EMPTY_CERTIFICATE = 11
-    delta 86 In_CERTIFICATE_VERIFY = 62
-    delta 86 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 86 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 20 In_RSA_CLIENT_HELLO = 86
-    delta 20 In_RSA_CLIENT_KEY_EXCHANGE = 11
-    delta 20 In_CHANGE_CIPHER_SPEC = 98
-    delta 20 In_FINISHED = 36
-    delta 20 In_APPLICATION = 20
-    delta 20 In_CERTIFICATE = 11
-    delta 20 In_EMPTY_CERTIFICATE = 11
-    delta 20 In_CERTIFICATE_VERIFY = 95
-    delta 20 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 20 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 59 In_RSA_CLIENT_HELLO = 92
-    delta 59 In_RSA_CLIENT_KEY_EXCHANGE = 11
-    delta 59 In_CHANGE_CIPHER_SPEC = 42
-    delta 59 In_FINISHED = 11
-    delta 59 In_APPLICATION = 59
-    delta 59 In_CERTIFICATE = 11
-    delta 59 In_EMPTY_CERTIFICATE = 11
-    delta 59 In_CERTIFICATE_VERIFY = 11
-    delta 59 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 59 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 92 In_RSA_CLIENT_HELLO = 11
-    delta 92 In_RSA_CLIENT_KEY_EXCHANGE = 11
-    delta 92 In_CHANGE_CIPHER_SPEC = 42
-    delta 92 In_FINISHED = 11
-    delta 92 In_APPLICATION = 92
-    delta 92 In_CERTIFICATE = 11
-    delta 92 In_EMPTY_CERTIFICATE = 11
-    delta 92 In_CERTIFICATE_VERIFY = 11
-    delta 92 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 92 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 55 In_RSA_CLIENT_HELLO = 90
-    delta 55 In_RSA_CLIENT_KEY_EXCHANGE = 63
-    delta 55 In_CHANGE_CIPHER_SPEC = 35
-    delta 55 In_FINISHED = 11
-    delta 55 In_APPLICATION = 55
-    delta 55 In_CERTIFICATE = 11
-    delta 55 In_EMPTY_CERTIFICATE = 11
-    delta 55 In_CERTIFICATE_VERIFY = 11
-    delta 55 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 55 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 56 In_RSA_CLIENT_HELLO = 11
-    delta 56 In_RSA_CLIENT_KEY_EXCHANGE = 62
-    delta 56 In_CHANGE_CIPHER_SPEC = 35
-    delta 56 In_FINISHED = 90
-    delta 56 In_APPLICATION = 56
-    delta 56 In_CERTIFICATE = 11
-    delta 56 In_EMPTY_CERTIFICATE = 11
-    delta 56 In_CERTIFICATE_VERIFY = 11
-    delta 56 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 56 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 70 In_RSA_CLIENT_HELLO = 99
-    delta 70 In_RSA_CLIENT_KEY_EXCHANGE = 11
-    delta 70 In_CHANGE_CIPHER_SPEC = 39
-    delta 70 In_FINISHED = 100
-    delta 70 In_APPLICATION = 11
-    delta 70 In_CERTIFICATE = 11
-    delta 70 In_EMPTY_CERTIFICATE = 11
-    delta 70 In_CERTIFICATE_VERIFY = 101
-    delta 70 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 70 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 38 In_RSA_CLIENT_HELLO = 11
-    delta 38 In_RSA_CLIENT_KEY_EXCHANGE = 78
-    delta 38 In_CHANGE_CIPHER_SPEC = 39
-    delta 38 In_FINISHED = 102
-    delta 38 In_APPLICATION = 38
-    delta 38 In_CERTIFICATE = 11
-    delta 38 In_EMPTY_CERTIFICATE = 11
-    delta 38 In_CERTIFICATE_VERIFY = 64
-    delta 38 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 38 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 25 In_RSA_CLIENT_HELLO = 50
-    delta 25 In_RSA_CLIENT_KEY_EXCHANGE = 4
-    delta 25 In_CHANGE_CIPHER_SPEC = 24
-    delta 25 In_FINISHED = 4
-    delta 25 In_APPLICATION = 25
-    delta 25 In_CERTIFICATE = 82
-    delta 25 In_EMPTY_CERTIFICATE = 82
-    delta 25 In_CERTIFICATE_VERIFY = 32
-    delta 25 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 25 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 82 In_RSA_CLIENT_HELLO = 103
-    delta 82 In_RSA_CLIENT_KEY_EXCHANGE = 4
-    delta 82 In_CHANGE_CIPHER_SPEC = 24
-    delta 82 In_FINISHED = 4
-    delta 82 In_APPLICATION = 82
-    delta 82 In_CERTIFICATE = 4
-    delta 82 In_EMPTY_CERTIFICATE = 4
-    delta 82 In_CERTIFICATE_VERIFY = 81
-    delta 82 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 82 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 50 In_RSA_CLIENT_HELLO = 4
-    delta 50 In_RSA_CLIENT_KEY_EXCHANGE = 4
-    delta 50 In_CHANGE_CIPHER_SPEC = 24
-    delta 50 In_FINISHED = 4
-    delta 50 In_APPLICATION = 50
-    delta 50 In_CERTIFICATE = 103
-    delta 50 In_EMPTY_CERTIFICATE = 103
-    delta 50 In_CERTIFICATE_VERIFY = 80
-    delta 50 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 50 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 83 In_RSA_CLIENT_HELLO = 4
-    delta 83 In_RSA_CLIENT_KEY_EXCHANGE = 103
-    delta 83 In_CHANGE_CIPHER_SPEC = 24
-    delta 83 In_FINISHED = 4
-    delta 83 In_APPLICATION = 83
-    delta 83 In_CERTIFICATE = 4
-    delta 83 In_EMPTY_CERTIFICATE = 4
-    delta 83 In_CERTIFICATE_VERIFY = 83
-    delta 83 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 83 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 79 In_RSA_CLIENT_HELLO = 104
-    delta 79 In_RSA_CLIENT_KEY_EXCHANGE = 11
-    delta 79 In_CHANGE_CIPHER_SPEC = 39
-    delta 79 In_FINISHED = 11
-    delta 79 In_APPLICATION = 79
-    delta 79 In_CERTIFICATE = 11
-    delta 79 In_EMPTY_CERTIFICATE = 11
-    delta 79 In_CERTIFICATE_VERIFY = 105
-    delta 79 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 79 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 63 In_RSA_CLIENT_HELLO = 97
-    delta 63 In_RSA_CLIENT_KEY_EXCHANGE = 11
-    delta 63 In_CHANGE_CIPHER_SPEC = 35
-    delta 63 In_FINISHED = 11
-    delta 63 In_APPLICATION = 63
-    delta 63 In_CERTIFICATE = 11
-    delta 63 In_EMPTY_CERTIFICATE = 11
-    delta 63 In_CERTIFICATE_VERIFY = 11
-    delta 63 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 63 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 46 In_RSA_CLIENT_HELLO = 91
-    delta 46 In_RSA_CLIENT_KEY_EXCHANGE = 11
-    delta 46 In_CHANGE_CIPHER_SPEC = 35
-    delta 46 In_FINISHED = 37
-    delta 46 In_APPLICATION = 46
-    delta 46 In_CERTIFICATE = 57
-    delta 46 In_EMPTY_CERTIFICATE = 57
-    delta 46 In_CERTIFICATE_VERIFY = 11
-    delta 46 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 46 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 105 In_RSA_CLIENT_HELLO = 106
-    delta 105 In_RSA_CLIENT_KEY_EXCHANGE = 11
-    delta 105 In_CHANGE_CIPHER_SPEC = 39
-    delta 105 In_FINISHED = 11
-    delta 105 In_APPLICATION = 105
-    delta 105 In_CERTIFICATE = 11
-    delta 105 In_EMPTY_CERTIFICATE = 11
-    delta 105 In_CERTIFICATE_VERIFY = 11
-    delta 105 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 105 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 61 In_RSA_CLIENT_HELLO = 61
-    delta 61 In_RSA_CLIENT_KEY_EXCHANGE = 11
-    delta 61 In_CHANGE_CIPHER_SPEC = 3
-    delta 61 In_FINISHED = 11
-    delta 61 In_APPLICATION = 61
-    delta 61 In_CERTIFICATE = 11
-    delta 61 In_EMPTY_CERTIFICATE = 11
-    delta 61 In_CERTIFICATE_VERIFY = 63
-    delta 61 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 61 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 65 In_RSA_CLIENT_HELLO = 76
-    delta 65 In_RSA_CLIENT_KEY_EXCHANGE = 11
-    delta 65 In_CHANGE_CIPHER_SPEC = 39
-    delta 65 In_FINISHED = 105
-    delta 65 In_APPLICATION = 65
-    delta 65 In_CERTIFICATE = 11
-    delta 65 In_EMPTY_CERTIFICATE = 11
-    delta 65 In_CERTIFICATE_VERIFY = 11
-    delta 65 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 65 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 97 In_RSA_CLIENT_HELLO = 11
-    delta 97 In_RSA_CLIENT_KEY_EXCHANGE = 11
-    delta 97 In_CHANGE_CIPHER_SPEC = 35
-    delta 97 In_FINISHED = 11
-    delta 97 In_APPLICATION = 97
-    delta 97 In_CERTIFICATE = 11
-    delta 97 In_EMPTY_CERTIFICATE = 11
-    delta 97 In_CERTIFICATE_VERIFY = 11
-    delta 97 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 97 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 81 In_RSA_CLIENT_HELLO = 87
-    delta 81 In_RSA_CLIENT_KEY_EXCHANGE = 4
-    delta 81 In_CHANGE_CIPHER_SPEC = 24
-    delta 81 In_FINISHED = 4
-    delta 81 In_APPLICATION = 81
-    delta 81 In_CERTIFICATE = 4
-    delta 81 In_EMPTY_CERTIFICATE = 4
-    delta 81 In_CERTIFICATE_VERIFY = 4
-    delta 81 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 81 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 62 In_RSA_CLIENT_HELLO = 11
-    delta 62 In_RSA_CLIENT_KEY_EXCHANGE = 11
-    delta 62 In_CHANGE_CIPHER_SPEC = 35
-    delta 62 In_FINISHED = 97
-    delta 62 In_APPLICATION = 62
-    delta 62 In_CERTIFICATE = 11
-    delta 62 In_EMPTY_CERTIFICATE = 11
-    delta 62 In_CERTIFICATE_VERIFY = 11
-    delta 62 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 62 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 78 In_RSA_CLIENT_HELLO = 11
-    delta 78 In_RSA_CLIENT_KEY_EXCHANGE = 11
-    delta 78 In_CHANGE_CIPHER_SPEC = 39
-    delta 78 In_FINISHED = 104
-    delta 78 In_APPLICATION = 78
-    delta 78 In_CERTIFICATE = 11
-    delta 78 In_EMPTY_CERTIFICATE = 11
-    delta 78 In_CERTIFICATE_VERIFY = 76
-    delta 78 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 78 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 51 In_RSA_CLIENT_HELLO = 4
-    delta 51 In_RSA_CLIENT_KEY_EXCHANGE = 4
-    delta 51 In_CHANGE_CIPHER_SPEC = 24
-    delta 51 In_FINISHED = 103
-    delta 51 In_APPLICATION = 51
-    delta 51 In_CERTIFICATE = 4
-    delta 51 In_EMPTY_CERTIFICATE = 4
-    delta 51 In_CERTIFICATE_VERIFY = 89
-    delta 51 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 51 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 103 In_RSA_CLIENT_HELLO = 4
-    delta 103 In_RSA_CLIENT_KEY_EXCHANGE = 4
-    delta 103 In_CHANGE_CIPHER_SPEC = 24
-    delta 103 In_FINISHED = 4
-    delta 103 In_APPLICATION = 103
-    delta 103 In_CERTIFICATE = 4
-    delta 103 In_EMPTY_CERTIFICATE = 4
-    delta 103 In_CERTIFICATE_VERIFY = 87
-    delta 103 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 103 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 94 In_RSA_CLIENT_HELLO = 56
-    delta 94 In_RSA_CLIENT_KEY_EXCHANGE = 95
-    delta 94 In_CHANGE_CIPHER_SPEC = 35
-    delta 94 In_FINISHED = 55
-    delta 94 In_APPLICATION = 94
-    delta 94 In_CERTIFICATE = 11
-    delta 94 In_EMPTY_CERTIFICATE = 11
-    delta 94 In_CERTIFICATE_VERIFY = 11
-    delta 94 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 94 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 29 In_RSA_CLIENT_HELLO = 83
-    delta 29 In_RSA_CLIENT_KEY_EXCHANGE = 82
-    delta 29 In_CHANGE_CIPHER_SPEC = 24
-    delta 29 In_FINISHED = 4
-    delta 29 In_APPLICATION = 29
-    delta 29 In_CERTIFICATE = 4
-    delta 29 In_EMPTY_CERTIFICATE = 4
-    delta 29 In_CERTIFICATE_VERIFY = 107
-    delta 29 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 29 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 66 In_RSA_CLIENT_HELLO = 77
-    delta 66 In_RSA_CLIENT_KEY_EXCHANGE = 105
-    delta 66 In_CHANGE_CIPHER_SPEC = 39
-    delta 66 In_FINISHED = 11
-    delta 66 In_APPLICATION = 66
-    delta 66 In_CERTIFICATE = 11
-    delta 66 In_EMPTY_CERTIFICATE = 11
-    delta 66 In_CERTIFICATE_VERIFY = 11
-    delta 66 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 66 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 33 In_RSA_CLIENT_HELLO = 89
-    delta 33 In_RSA_CLIENT_KEY_EXCHANGE = 4
-    delta 33 In_CHANGE_CIPHER_SPEC = 24
-    delta 33 In_FINISHED = 81
-    delta 33 In_APPLICATION = 33
-    delta 33 In_CERTIFICATE = 4
-    delta 33 In_EMPTY_CERTIFICATE = 4
-    delta 33 In_CERTIFICATE_VERIFY = 4
-    delta 33 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 33 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 44 In_RSA_CLIENT_HELLO = 44
-    delta 44 In_RSA_CLIENT_KEY_EXCHANGE = 11
-    delta 44 In_CHANGE_CIPHER_SPEC = 42
-    delta 44 In_FINISHED = 59
-    delta 44 In_APPLICATION = 44
-    delta 44 In_CERTIFICATE = 11
-    delta 44 In_EMPTY_CERTIFICATE = 11
-    delta 44 In_CERTIFICATE_VERIFY = 11
-    delta 44 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 44 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 87 In_RSA_CLIENT_HELLO = 4
-    delta 87 In_RSA_CLIENT_KEY_EXCHANGE = 4
-    delta 87 In_CHANGE_CIPHER_SPEC = 24
-    delta 87 In_FINISHED = 4
-    delta 87 In_APPLICATION = 87
-    delta 87 In_CERTIFICATE = 4
-    delta 87 In_EMPTY_CERTIFICATE = 4
-    delta 87 In_CERTIFICATE_VERIFY = 4
-    delta 87 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 87 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 75 In_RSA_CLIENT_HELLO = 108
-    delta 75 In_RSA_CLIENT_KEY_EXCHANGE = 11
-    delta 75 In_CHANGE_CIPHER_SPEC = 74
-    delta 75 In_FINISHED = 11
-    delta 75 In_APPLICATION = 11
-    delta 75 In_CERTIFICATE = 11
-    delta 75 In_EMPTY_CERTIFICATE = 11
-    delta 75 In_CERTIFICATE_VERIFY = 11
-    delta 75 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 75 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 72 In_RSA_CLIENT_HELLO = 11
-    delta 72 In_RSA_CLIENT_KEY_EXCHANGE = 11
-    delta 72 In_CHANGE_CIPHER_SPEC = 35
-    delta 72 In_FINISHED = 88
-    delta 72 In_APPLICATION = 11
-    delta 72 In_CERTIFICATE = 11
-    delta 72 In_EMPTY_CERTIFICATE = 11
-    delta 72 In_CERTIFICATE_VERIFY = 109
-    delta 72 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 72 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 109 In_RSA_CLIENT_HELLO = 11
-    delta 109 In_RSA_CLIENT_KEY_EXCHANGE = 11
-    delta 109 In_CHANGE_CIPHER_SPEC = 35
-    delta 109 In_FINISHED = 97
-    delta 109 In_APPLICATION = 11
-    delta 109 In_CERTIFICATE = 11
-    delta 109 In_EMPTY_CERTIFICATE = 11
-    delta 109 In_CERTIFICATE_VERIFY = 11
-    delta 109 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 109 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 98 In_RSA_CLIENT_HELLO = 11
-    delta 98 In_RSA_CLIENT_KEY_EXCHANGE = 11
-    delta 98 In_CHANGE_CIPHER_SPEC = 3
-    delta 98 In_FINISHED = 68
-    delta 98 In_APPLICATION = 98
-    delta 98 In_CERTIFICATE = 11
-    delta 98 In_EMPTY_CERTIFICATE = 11
-    delta 98 In_CERTIFICATE_VERIFY = 11
-    delta 98 In_Alert_WARNING_CLOSE_NOTIFY = 98
-    delta 98 In_Alert_FATAL_UNEXPECTED_MESSAGE = 98
-    delta 40 In_RSA_CLIENT_HELLO = 102
-    delta 40 In_RSA_CLIENT_KEY_EXCHANGE = 79
-    delta 40 In_CHANGE_CIPHER_SPEC = 39
-    delta 40 In_FINISHED = 11
-    delta 40 In_APPLICATION = 40
-    delta 40 In_CERTIFICATE = 11
-    delta 40 In_EMPTY_CERTIFICATE = 11
-    delta 40 In_CERTIFICATE_VERIFY = 66
-    delta 40 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 40 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 102 In_RSA_CLIENT_HELLO = 11
-    delta 102 In_RSA_CLIENT_KEY_EXCHANGE = 104
-    delta 102 In_CHANGE_CIPHER_SPEC = 39
-    delta 102 In_FINISHED = 11
-    delta 102 In_APPLICATION = 102
-    delta 102 In_CERTIFICATE = 11
-    delta 102 In_EMPTY_CERTIFICATE = 11
-    delta 102 In_CERTIFICATE_VERIFY = 77
-    delta 102 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 102 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 30 In_RSA_CLIENT_HELLO = 84
-    delta 30 In_RSA_CLIENT_KEY_EXCHANGE = 33
-    delta 30 In_CHANGE_CIPHER_SPEC = 24
-    delta 30 In_FINISHED = 107
-    delta 30 In_APPLICATION = 30
-    delta 30 In_CERTIFICATE = 4
-    delta 30 In_EMPTY_CERTIFICATE = 4
-    delta 30 In_CERTIFICATE_VERIFY = 4
-    delta 30 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 30 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 91 In_RSA_CLIENT_HELLO = 11
-    delta 91 In_RSA_CLIENT_KEY_EXCHANGE = 11
-    delta 91 In_CHANGE_CIPHER_SPEC = 35
-    delta 91 In_FINISHED = 96
-    delta 91 In_APPLICATION = 91
-    delta 91 In_CERTIFICATE = 62
-    delta 91 In_EMPTY_CERTIFICATE = 62
-    delta 91 In_CERTIFICATE_VERIFY = 11
-    delta 91 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 91 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 84 In_RSA_CLIENT_HELLO = 4
-    delta 84 In_RSA_CLIENT_KEY_EXCHANGE = 89
-    delta 84 In_CHANGE_CIPHER_SPEC = 24
-    delta 84 In_FINISHED = 83
-    delta 84 In_APPLICATION = 84
-    delta 84 In_CERTIFICATE = 4
-    delta 84 In_EMPTY_CERTIFICATE = 4
-    delta 84 In_CERTIFICATE_VERIFY = 4
-    delta 84 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 84 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 89 In_RSA_CLIENT_HELLO = 4
-    delta 89 In_RSA_CLIENT_KEY_EXCHANGE = 4
-    delta 89 In_CHANGE_CIPHER_SPEC = 24
-    delta 89 In_FINISHED = 87
-    delta 89 In_APPLICATION = 89
-    delta 89 In_CERTIFICATE = 4
-    delta 89 In_EMPTY_CERTIFICATE = 4
-    delta 89 In_CERTIFICATE_VERIFY = 4
-    delta 89 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 89 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 104 In_RSA_CLIENT_HELLO = 11
-    delta 104 In_RSA_CLIENT_KEY_EXCHANGE = 11
-    delta 104 In_CHANGE_CIPHER_SPEC = 39
-    delta 104 In_FINISHED = 11
-    delta 104 In_APPLICATION = 104
-    delta 104 In_CERTIFICATE = 11
-    delta 104 In_EMPTY_CERTIFICATE = 11
-    delta 104 In_CERTIFICATE_VERIFY = 106
-    delta 104 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 104 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 52 In_RSA_CLIENT_HELLO = 11
-    delta 52 In_RSA_CLIENT_KEY_EXCHANGE = 86
-    delta 52 In_CHANGE_CIPHER_SPEC = 35
-    delta 52 In_FINISHED = 54
-    delta 52 In_APPLICATION = 52
-    delta 52 In_CERTIFICATE = 11
-    delta 52 In_EMPTY_CERTIFICATE = 11
-    delta 52 In_CERTIFICATE_VERIFY = 56
-    delta 52 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 52 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 76 In_RSA_CLIENT_HELLO = 11
-    delta 76 In_RSA_CLIENT_KEY_EXCHANGE = 11
-    delta 76 In_CHANGE_CIPHER_SPEC = 39
-    delta 76 In_FINISHED = 106
-    delta 76 In_APPLICATION = 76
-    delta 76 In_CERTIFICATE = 11
-    delta 76 In_EMPTY_CERTIFICATE = 11
-    delta 76 In_CERTIFICATE_VERIFY = 11
-    delta 76 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 76 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 95 In_RSA_CLIENT_HELLO = 62
-    delta 95 In_RSA_CLIENT_KEY_EXCHANGE = 11
-    delta 95 In_CHANGE_CIPHER_SPEC = 98
-    delta 95 In_FINISHED = 63
-    delta 95 In_APPLICATION = 95
-    delta 95 In_CERTIFICATE = 11
-    delta 95 In_EMPTY_CERTIFICATE = 11
-    delta 95 In_CERTIFICATE_VERIFY = 11
-    delta 95 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 95 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 77 In_RSA_CLIENT_HELLO = 11
-    delta 77 In_RSA_CLIENT_KEY_EXCHANGE = 106
-    delta 77 In_CHANGE_CIPHER_SPEC = 39
-    delta 77 In_FINISHED = 11
-    delta 77 In_APPLICATION = 77
-    delta 77 In_CERTIFICATE = 11
-    delta 77 In_EMPTY_CERTIFICATE = 11
-    delta 77 In_CERTIFICATE_VERIFY = 11
-    delta 77 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 77 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 106 In_RSA_CLIENT_HELLO = 11
-    delta 106 In_RSA_CLIENT_KEY_EXCHANGE = 11
-    delta 106 In_CHANGE_CIPHER_SPEC = 39
-    delta 106 In_FINISHED = 11
-    delta 106 In_APPLICATION = 106
-    delta 106 In_CERTIFICATE = 11
-    delta 106 In_EMPTY_CERTIFICATE = 11
-    delta 106 In_CERTIFICATE_VERIFY = 11
-    delta 106 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 106 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 37 In_RSA_CLIENT_HELLO = 96
-    delta 37 In_RSA_CLIENT_KEY_EXCHANGE = 11
-    delta 37 In_CHANGE_CIPHER_SPEC = 35
-    delta 37 In_FINISHED = 11
-    delta 37 In_APPLICATION = 37
-    delta 37 In_CERTIFICATE = 63
-    delta 37 In_EMPTY_CERTIFICATE = 63
-    delta 37 In_CERTIFICATE_VERIFY = 11
-    delta 37 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 37 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 71 In_RSA_CLIENT_HELLO = 71
-    delta 71 In_RSA_CLIENT_KEY_EXCHANGE = 11
-    delta 71 In_CHANGE_CIPHER_SPEC = 42
-    delta 71 In_FINISHED = 110
-    delta 71 In_APPLICATION = 11
-    delta 71 In_CERTIFICATE = 111
-    delta 71 In_EMPTY_CERTIFICATE = 111
-    delta 71 In_CERTIFICATE_VERIFY = 11
-    delta 71 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 71 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 85 In_RSA_CLIENT_HELLO = 11
-    delta 85 In_RSA_CLIENT_KEY_EXCHANGE = 11
-    delta 85 In_CHANGE_CIPHER_SPEC = 35
-    delta 85 In_FINISHED = 11
-    delta 85 In_APPLICATION = 11
-    delta 85 In_CERTIFICATE = 88
-    delta 85 In_EMPTY_CERTIFICATE = 88
-    delta 85 In_CERTIFICATE_VERIFY = 85
-    delta 85 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 85 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 48 In_RSA_CLIENT_HELLO = 112
-    delta 48 In_RSA_CLIENT_KEY_EXCHANGE = 61
-    delta 48 In_CHANGE_CIPHER_SPEC = 3
-    delta 48 In_FINISHED = 11
-    delta 48 In_APPLICATION = 48
-    delta 48 In_CERTIFICATE = 11
-    delta 48 In_EMPTY_CERTIFICATE = 11
-    delta 48 In_CERTIFICATE_VERIFY = 55
-    delta 48 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 48 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 111 In_RSA_CLIENT_HELLO = 111
-    delta 111 In_RSA_CLIENT_KEY_EXCHANGE = 11
-    delta 111 In_CHANGE_CIPHER_SPEC = 42
-    delta 111 In_FINISHED = 59
-    delta 111 In_APPLICATION = 11
-    delta 111 In_CERTIFICATE = 11
-    delta 111 In_EMPTY_CERTIFICATE = 11
-    delta 111 In_CERTIFICATE_VERIFY = 11
-    delta 111 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 111 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 107 In_RSA_CLIENT_HELLO = 83
-    delta 107 In_RSA_CLIENT_KEY_EXCHANGE = 81
-    delta 107 In_CHANGE_CIPHER_SPEC = 24
-    delta 107 In_FINISHED = 4
-    delta 107 In_APPLICATION = 107
-    delta 107 In_CERTIFICATE = 4
-    delta 107 In_EMPTY_CERTIFICATE = 4
-    delta 107 In_CERTIFICATE_VERIFY = 4
-    delta 107 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 107 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 110 In_RSA_CLIENT_HELLO = 58
-    delta 110 In_RSA_CLIENT_KEY_EXCHANGE = 11
-    delta 110 In_CHANGE_CIPHER_SPEC = 42
-    delta 110 In_FINISHED = 11
-    delta 110 In_APPLICATION = 11
-    delta 110 In_CERTIFICATE = 59
-    delta 110 In_EMPTY_CERTIFICATE = 59
-    delta 110 In_CERTIFICATE_VERIFY = 11
-    delta 110 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 110 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 112 In_RSA_CLIENT_HELLO = 11
-    delta 112 In_RSA_CLIENT_KEY_EXCHANGE = 61
-    delta 112 In_CHANGE_CIPHER_SPEC = 3
-    delta 112 In_FINISHED = 11
-    delta 112 In_APPLICATION = 112
-    delta 112 In_CERTIFICATE = 11
-    delta 112 In_EMPTY_CERTIFICATE = 11
-    delta 112 In_CERTIFICATE_VERIFY = 90
-    delta 112 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 112 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 100 In_RSA_CLIENT_HELLO = 100
-    delta 100 In_RSA_CLIENT_KEY_EXCHANGE = 11
-    delta 100 In_CHANGE_CIPHER_SPEC = 39
-    delta 100 In_FINISHED = 11
-    delta 100 In_APPLICATION = 11
-    delta 100 In_CERTIFICATE = 11
-    delta 100 In_EMPTY_CERTIFICATE = 11
-    delta 100 In_CERTIFICATE_VERIFY = 105
-    delta 100 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 100 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 108 In_RSA_CLIENT_HELLO = 11
-    delta 108 In_RSA_CLIENT_KEY_EXCHANGE = 11
-    delta 108 In_CHANGE_CIPHER_SPEC = 74
-    delta 108 In_FINISHED = 11
-    delta 108 In_APPLICATION = 11
-    delta 108 In_CERTIFICATE = 11
-    delta 108 In_EMPTY_CERTIFICATE = 11
-    delta 108 In_CERTIFICATE_VERIFY = 11
-    delta 108 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 108 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 96 In_RSA_CLIENT_HELLO = 11
-    delta 96 In_RSA_CLIENT_KEY_EXCHANGE = 11
-    delta 96 In_CHANGE_CIPHER_SPEC = 35
-    delta 96 In_FINISHED = 11
-    delta 96 In_APPLICATION = 96
-    delta 96 In_CERTIFICATE = 97
-    delta 96 In_EMPTY_CERTIFICATE = 97
-    delta 96 In_CERTIFICATE_VERIFY = 11
-    delta 96 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 96 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 101 In_RSA_CLIENT_HELLO = 76
-    delta 101 In_RSA_CLIENT_KEY_EXCHANGE = 11
-    delta 101 In_CHANGE_CIPHER_SPEC = 39
-    delta 101 In_FINISHED = 105
-    delta 101 In_APPLICATION = 11
-    delta 101 In_CERTIFICATE = 11
-    delta 101 In_EMPTY_CERTIFICATE = 11
-    delta 101 In_CERTIFICATE_VERIFY = 11
-    delta 101 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 101 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 99 In_RSA_CLIENT_HELLO = 11
-    delta 99 In_RSA_CLIENT_KEY_EXCHANGE = 11
-    delta 99 In_CHANGE_CIPHER_SPEC = 39
-    delta 99 In_FINISHED = 100
-    delta 99 In_APPLICATION = 11
-    delta 99 In_CERTIFICATE = 11
-    delta 99 In_EMPTY_CERTIFICATE = 11
-    delta 99 In_CERTIFICATE_VERIFY = 76
-    delta 99 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 99 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta 60 In_RSA_CLIENT_HELLO = 60
-    delta 60 In_RSA_CLIENT_KEY_EXCHANGE = 60
-    delta 60 In_CHANGE_CIPHER_SPEC = 3
-    delta 60 In_FINISHED = 4
-    delta 60 In_APPLICATION = 60
-    delta 60 In_CERTIFICATE = 4
-    delta 60 In_EMPTY_CERTIFICATE = 4
-    delta 60 In_CERTIFICATE_VERIFY = 107
-    delta 60 In_Alert_WARNING_CLOSE_NOTIFY = 7
-    delta 60 In_Alert_FATAL_UNEXPECTED_MESSAGE = 7
-    delta _ _ = error "haal-gen: undefined transition"
-    lambda 0 In_RSA_CLIENT_HELLO = Out_HELLO_VERIFY_REQUEST
-    lambda 0 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 0 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 0 In_FINISHED = Out_TIMEOUT
-    lambda 0 In_APPLICATION = Out_TIMEOUT
-    lambda 0 In_CERTIFICATE = Out_TIMEOUT
-    lambda 0 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 0 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 0 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 0 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 7 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 7 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 7 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 7 In_FINISHED = Out_TIMEOUT
-    lambda 7 In_APPLICATION = Out_TIMEOUT
-    lambda 7 In_CERTIFICATE = Out_TIMEOUT
-    lambda 7 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 7 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 7 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 7 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 1 In_RSA_CLIENT_HELLO = Out_SERVER_HELLO_CERTIFICATE_CERTIFICATE_REQUEST_SERVER_HELLO_DONE
-    lambda 1 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 1 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 1 In_FINISHED = Out_TIMEOUT
-    lambda 1 In_APPLICATION = Out_TIMEOUT
-    lambda 1 In_CERTIFICATE = Out_TIMEOUT
-    lambda 1 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 1 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 1 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 1 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 8 In_RSA_CLIENT_HELLO = Out_SOCKET_CLOSED
-    lambda 8 In_RSA_CLIENT_KEY_EXCHANGE = Out_SOCKET_CLOSED
-    lambda 8 In_CHANGE_CIPHER_SPEC = Out_SOCKET_CLOSED
-    lambda 8 In_FINISHED = Out_SOCKET_CLOSED
-    lambda 8 In_APPLICATION = Out_SOCKET_CLOSED
-    lambda 8 In_CERTIFICATE = Out_SOCKET_CLOSED
-    lambda 8 In_EMPTY_CERTIFICATE = Out_SOCKET_CLOSED
-    lambda 8 In_CERTIFICATE_VERIFY = Out_SOCKET_CLOSED
-    lambda 8 In_Alert_WARNING_CLOSE_NOTIFY = Out_SOCKET_CLOSED
-    lambda 8 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_SOCKET_CLOSED
-    lambda 9 In_RSA_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 9 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 9 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 9 In_FINISHED = Out_TIMEOUT
-    lambda 9 In_APPLICATION = Out_TIMEOUT
-    lambda 9 In_CERTIFICATE = Out_TIMEOUT
-    lambda 9 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 9 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 9 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 9 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 4 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 4 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 4 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 4 In_FINISHED = Out_TIMEOUT
-    lambda 4 In_APPLICATION = Out_TIMEOUT
-    lambda 4 In_CERTIFICATE = Out_TIMEOUT
-    lambda 4 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 4 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 4 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 4 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 3 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 3 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 3 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 3 In_FINISHED = Out_TIMEOUT
-    lambda 3 In_APPLICATION = Out_TIMEOUT
-    lambda 3 In_CERTIFICATE = Out_TIMEOUT
-    lambda 3 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 3 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 3 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 3 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 14 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 14 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 14 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 14 In_FINISHED = Out_TIMEOUT
-    lambda 14 In_APPLICATION = Out_TIMEOUT
-    lambda 14 In_CERTIFICATE = Out_TIMEOUT
-    lambda 14 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 14 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 14 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 14 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 2 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 2 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 2 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 2 In_FINISHED = Out_TIMEOUT
-    lambda 2 In_APPLICATION = Out_TIMEOUT
-    lambda 2 In_CERTIFICATE = Out_TIMEOUT
-    lambda 2 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 2 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 2 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 2 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 24 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 24 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 24 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 24 In_FINISHED = Out_TIMEOUT
-    lambda 24 In_APPLICATION = Out_TIMEOUT
-    lambda 24 In_CERTIFICATE = Out_TIMEOUT
-    lambda 24 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 24 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 24 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 24 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 6 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 6 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 6 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 6 In_FINISHED = Out_TIMEOUT
-    lambda 6 In_APPLICATION = Out_TIMEOUT
-    lambda 6 In_CERTIFICATE = Out_TIMEOUT
-    lambda 6 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 6 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 6 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 6 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 27 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 27 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 27 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 27 In_FINISHED = Out_TIMEOUT
-    lambda 27 In_APPLICATION = Out_TIMEOUT
-    lambda 27 In_CERTIFICATE = Out_TIMEOUT
-    lambda 27 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 27 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 27 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 27 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 19 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 19 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 19 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 19 In_FINISHED = Out_TIMEOUT
-    lambda 19 In_APPLICATION = Out_TIMEOUT
-    lambda 19 In_CERTIFICATE = Out_TIMEOUT
-    lambda 19 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 19 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 19 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 19 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 16 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 16 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 16 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 16 In_FINISHED = Out_TIMEOUT
-    lambda 16 In_APPLICATION = Out_TIMEOUT
-    lambda 16 In_CERTIFICATE = Out_TIMEOUT
-    lambda 16 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 16 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 16 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 16 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 22 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 22 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 22 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 22 In_FINISHED = Out_TIMEOUT
-    lambda 22 In_APPLICATION = Out_TIMEOUT
-    lambda 22 In_CERTIFICATE = Out_TIMEOUT
-    lambda 22 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 22 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 22 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 22 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 39 In_RSA_CLIENT_HELLO = Out_Alert_FATAL_BAD_CERTIFICATE
-    lambda 39 In_RSA_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_BAD_CERTIFICATE
-    lambda 39 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 39 In_FINISHED = Out_Alert_FATAL_BAD_CERTIFICATE
-    lambda 39 In_APPLICATION = Out_TIMEOUT
-    lambda 39 In_CERTIFICATE = Out_Alert_FATAL_BAD_CERTIFICATE
-    lambda 39 In_EMPTY_CERTIFICATE = Out_Alert_FATAL_BAD_CERTIFICATE
-    lambda 39 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_BAD_CERTIFICATE
-    lambda 39 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 39 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 42 In_RSA_CLIENT_HELLO = Out_Alert_FATAL_HANDSHAKE_FAILURE
-    lambda 42 In_RSA_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_HANDSHAKE_FAILURE
-    lambda 42 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 42 In_FINISHED = Out_Alert_FATAL_HANDSHAKE_FAILURE
-    lambda 42 In_APPLICATION = Out_TIMEOUT
-    lambda 42 In_CERTIFICATE = Out_Alert_FATAL_HANDSHAKE_FAILURE
-    lambda 42 In_EMPTY_CERTIFICATE = Out_Alert_FATAL_HANDSHAKE_FAILURE
-    lambda 42 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_HANDSHAKE_FAILURE
-    lambda 42 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 42 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 10 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 10 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 10 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 10 In_FINISHED = Out_TIMEOUT
-    lambda 10 In_APPLICATION = Out_TIMEOUT
-    lambda 10 In_CERTIFICATE = Out_TIMEOUT
-    lambda 10 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 10 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 10 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 10 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 12 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 12 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 12 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 12 In_FINISHED = Out_TIMEOUT
-    lambda 12 In_APPLICATION = Out_TIMEOUT
-    lambda 12 In_CERTIFICATE = Out_TIMEOUT
-    lambda 12 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 12 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 12 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 12 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 35 In_RSA_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 35 In_RSA_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 35 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 35 In_FINISHED = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 35 In_APPLICATION = Out_TIMEOUT
-    lambda 35 In_CERTIFICATE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 35 In_EMPTY_CERTIFICATE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 35 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 35 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 35 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 23 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 23 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 23 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 23 In_FINISHED = Out_TIMEOUT
-    lambda 23 In_APPLICATION = Out_TIMEOUT
-    lambda 23 In_CERTIFICATE = Out_TIMEOUT
-    lambda 23 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 23 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 23 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 23 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 13 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 13 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 13 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 13 In_FINISHED = Out_TIMEOUT
-    lambda 13 In_APPLICATION = Out_TIMEOUT
-    lambda 13 In_CERTIFICATE = Out_TIMEOUT
-    lambda 13 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 13 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 13 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 13 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 53 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 53 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 53 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 53 In_FINISHED = Out_TIMEOUT
-    lambda 53 In_APPLICATION = Out_TIMEOUT
-    lambda 53 In_CERTIFICATE = Out_TIMEOUT
-    lambda 53 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 53 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 53 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 53 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 49 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 49 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 49 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 49 In_FINISHED = Out_TIMEOUT
-    lambda 49 In_APPLICATION = Out_TIMEOUT
-    lambda 49 In_CERTIFICATE = Out_TIMEOUT
-    lambda 49 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 49 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 49 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 49 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 43 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 43 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 43 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 43 In_FINISHED = Out_TIMEOUT
-    lambda 43 In_APPLICATION = Out_TIMEOUT
-    lambda 43 In_CERTIFICATE = Out_TIMEOUT
-    lambda 43 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 43 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 43 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 43 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 5 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 5 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 5 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 5 In_FINISHED = Out_TIMEOUT
-    lambda 5 In_APPLICATION = Out_TIMEOUT
-    lambda 5 In_CERTIFICATE = Out_TIMEOUT
-    lambda 5 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 5 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 5 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 5 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 47 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 47 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 47 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 47 In_FINISHED = Out_TIMEOUT
-    lambda 47 In_APPLICATION = Out_TIMEOUT
-    lambda 47 In_CERTIFICATE = Out_TIMEOUT
-    lambda 47 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 47 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 47 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 47 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 57 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 57 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 57 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 57 In_FINISHED = Out_TIMEOUT
-    lambda 57 In_APPLICATION = Out_TIMEOUT
-    lambda 57 In_CERTIFICATE = Out_TIMEOUT
-    lambda 57 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 57 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 57 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 57 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 41 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 41 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 41 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 41 In_FINISHED = Out_TIMEOUT
-    lambda 41 In_APPLICATION = Out_TIMEOUT
-    lambda 41 In_CERTIFICATE = Out_TIMEOUT
-    lambda 41 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 41 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 41 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 41 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 11 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 11 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 11 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 11 In_FINISHED = Out_TIMEOUT
-    lambda 11 In_APPLICATION = Out_TIMEOUT
-    lambda 11 In_CERTIFICATE = Out_TIMEOUT
-    lambda 11 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 11 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 11 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 11 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 18 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 18 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 18 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 18 In_FINISHED = Out_CHANGE_CIPHER_SPEC_FINISHED_CHANGE_CIPHER_SPEC_FINISHED
-    lambda 18 In_APPLICATION = Out_TIMEOUT
-    lambda 18 In_CERTIFICATE = Out_TIMEOUT
-    lambda 18 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 18 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 18 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 18 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 69 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 69 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 69 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 69 In_FINISHED = Out_TIMEOUT
-    lambda 69 In_APPLICATION = Out_TIMEOUT
-    lambda 69 In_CERTIFICATE = Out_TIMEOUT
-    lambda 69 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 69 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 69 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 69 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 73 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 73 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 73 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 73 In_FINISHED = Out_TIMEOUT
-    lambda 73 In_APPLICATION = Out_TIMEOUT
-    lambda 73 In_CERTIFICATE = Out_TIMEOUT
-    lambda 73 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 73 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 73 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 73 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 74 In_RSA_CLIENT_HELLO = Out_CHANGE_CIPHER_SPEC_FINISHED_CHANGE_CIPHER_SPEC_FINISHED
-    lambda 74 In_RSA_CLIENT_KEY_EXCHANGE = Out_CHANGE_CIPHER_SPEC_UNKNOWN_MESSAGE_CHANGE_CIPHER_SPEC_UNKNOWN_MESSAGE
-    lambda 74 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 74 In_FINISHED = Out_CHANGE_CIPHER_SPEC_FINISHED_CHANGE_CIPHER_SPEC_FINISHED
-    lambda 74 In_APPLICATION = Out_TIMEOUT
-    lambda 74 In_CERTIFICATE = Out_CHANGE_CIPHER_SPEC_FINISHED_CHANGE_CIPHER_SPEC_FINISHED
-    lambda 74 In_EMPTY_CERTIFICATE = Out_CHANGE_CIPHER_SPEC_FINISHED_CHANGE_CIPHER_SPEC_FINISHED
-    lambda 74 In_CERTIFICATE_VERIFY = Out_CHANGE_CIPHER_SPEC_FINISHED_CHANGE_CIPHER_SPEC_FINISHED
-    lambda 74 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 74 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 64 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 64 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 64 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 64 In_FINISHED = Out_TIMEOUT
-    lambda 64 In_APPLICATION = Out_TIMEOUT
-    lambda 64 In_CERTIFICATE = Out_TIMEOUT
-    lambda 64 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 64 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 64 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 64 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 21 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 21 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 21 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 21 In_FINISHED = Out_TIMEOUT
-    lambda 21 In_APPLICATION = Out_TIMEOUT
-    lambda 21 In_CERTIFICATE = Out_TIMEOUT
-    lambda 21 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 21 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 21 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 21 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 32 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 32 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 32 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 32 In_FINISHED = Out_TIMEOUT
-    lambda 32 In_APPLICATION = Out_TIMEOUT
-    lambda 32 In_CERTIFICATE = Out_TIMEOUT
-    lambda 32 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 32 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 32 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 32 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 26 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 26 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 26 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 26 In_FINISHED = Out_TIMEOUT
-    lambda 26 In_APPLICATION = Out_TIMEOUT
-    lambda 26 In_CERTIFICATE = Out_TIMEOUT
-    lambda 26 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 26 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 26 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 26 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 28 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 28 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 28 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 28 In_FINISHED = Out_TIMEOUT
-    lambda 28 In_APPLICATION = Out_TIMEOUT
-    lambda 28 In_CERTIFICATE = Out_TIMEOUT
-    lambda 28 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 28 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 28 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 28 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 67 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 67 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 67 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 67 In_FINISHED = Out_TIMEOUT
-    lambda 67 In_APPLICATION = Out_TIMEOUT
-    lambda 67 In_CERTIFICATE = Out_TIMEOUT
-    lambda 67 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 67 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 67 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 67 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 45 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 45 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 45 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 45 In_FINISHED = Out_TIMEOUT
-    lambda 45 In_APPLICATION = Out_TIMEOUT
-    lambda 45 In_CERTIFICATE = Out_TIMEOUT
-    lambda 45 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 45 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 45 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 45 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 80 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 80 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 80 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 80 In_FINISHED = Out_TIMEOUT
-    lambda 80 In_APPLICATION = Out_TIMEOUT
-    lambda 80 In_CERTIFICATE = Out_TIMEOUT
-    lambda 80 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 80 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 80 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 80 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 36 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 36 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 36 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 36 In_FINISHED = Out_TIMEOUT
-    lambda 36 In_APPLICATION = Out_TIMEOUT
-    lambda 36 In_CERTIFICATE = Out_TIMEOUT
-    lambda 36 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 36 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 36 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 36 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 31 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 31 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 31 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 31 In_FINISHED = Out_TIMEOUT
-    lambda 31 In_APPLICATION = Out_TIMEOUT
-    lambda 31 In_CERTIFICATE = Out_TIMEOUT
-    lambda 31 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 31 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 31 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 31 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 54 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 54 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 54 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 54 In_FINISHED = Out_TIMEOUT
-    lambda 54 In_APPLICATION = Out_TIMEOUT
-    lambda 54 In_CERTIFICATE = Out_TIMEOUT
-    lambda 54 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 54 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 54 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 54 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 17 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 17 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 17 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 17 In_FINISHED = Out_TIMEOUT
-    lambda 17 In_APPLICATION = Out_TIMEOUT
-    lambda 17 In_CERTIFICATE = Out_TIMEOUT
-    lambda 17 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 17 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 17 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 17 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 58 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 58 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 58 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 58 In_FINISHED = Out_TIMEOUT
-    lambda 58 In_APPLICATION = Out_TIMEOUT
-    lambda 58 In_CERTIFICATE = Out_TIMEOUT
-    lambda 58 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 58 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 58 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 58 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 68 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 68 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 68 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 68 In_FINISHED = Out_TIMEOUT
-    lambda 68 In_APPLICATION = Out_APPLICATION
-    lambda 68 In_CERTIFICATE = Out_TIMEOUT
-    lambda 68 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 68 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 68 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 68 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 15 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 15 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 15 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 15 In_FINISHED = Out_TIMEOUT
-    lambda 15 In_APPLICATION = Out_TIMEOUT
-    lambda 15 In_CERTIFICATE = Out_TIMEOUT
-    lambda 15 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 15 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 15 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 15 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 93 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 93 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 93 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 93 In_FINISHED = Out_TIMEOUT
-    lambda 93 In_APPLICATION = Out_TIMEOUT
-    lambda 93 In_CERTIFICATE = Out_TIMEOUT
-    lambda 93 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 93 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 93 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 93 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 34 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 34 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 34 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 34 In_FINISHED = Out_TIMEOUT
-    lambda 34 In_APPLICATION = Out_TIMEOUT
-    lambda 34 In_CERTIFICATE = Out_TIMEOUT
-    lambda 34 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 34 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 34 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 34 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 88 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 88 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 88 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 88 In_FINISHED = Out_TIMEOUT
-    lambda 88 In_APPLICATION = Out_TIMEOUT
-    lambda 88 In_CERTIFICATE = Out_TIMEOUT
-    lambda 88 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 88 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 88 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 88 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 90 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 90 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 90 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 90 In_FINISHED = Out_TIMEOUT
-    lambda 90 In_APPLICATION = Out_TIMEOUT
-    lambda 90 In_CERTIFICATE = Out_TIMEOUT
-    lambda 90 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 90 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 90 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 90 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 86 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 86 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 86 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 86 In_FINISHED = Out_TIMEOUT
-    lambda 86 In_APPLICATION = Out_TIMEOUT
-    lambda 86 In_CERTIFICATE = Out_TIMEOUT
-    lambda 86 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 86 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 86 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 86 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 20 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 20 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 20 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 20 In_FINISHED = Out_TIMEOUT
-    lambda 20 In_APPLICATION = Out_TIMEOUT
-    lambda 20 In_CERTIFICATE = Out_TIMEOUT
-    lambda 20 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 20 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 20 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 20 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 59 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 59 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 59 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 59 In_FINISHED = Out_TIMEOUT
-    lambda 59 In_APPLICATION = Out_TIMEOUT
-    lambda 59 In_CERTIFICATE = Out_TIMEOUT
-    lambda 59 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 59 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 59 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 59 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 92 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 92 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 92 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 92 In_FINISHED = Out_TIMEOUT
-    lambda 92 In_APPLICATION = Out_TIMEOUT
-    lambda 92 In_CERTIFICATE = Out_TIMEOUT
-    lambda 92 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 92 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 92 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 92 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 55 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 55 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 55 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 55 In_FINISHED = Out_TIMEOUT
-    lambda 55 In_APPLICATION = Out_TIMEOUT
-    lambda 55 In_CERTIFICATE = Out_TIMEOUT
-    lambda 55 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 55 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 55 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 55 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 56 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 56 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 56 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 56 In_FINISHED = Out_TIMEOUT
-    lambda 56 In_APPLICATION = Out_TIMEOUT
-    lambda 56 In_CERTIFICATE = Out_TIMEOUT
-    lambda 56 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 56 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 56 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 56 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 70 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 70 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 70 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 70 In_FINISHED = Out_TIMEOUT
-    lambda 70 In_APPLICATION = Out_TIMEOUT
-    lambda 70 In_CERTIFICATE = Out_TIMEOUT
-    lambda 70 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 70 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 70 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 70 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 38 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 38 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 38 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 38 In_FINISHED = Out_TIMEOUT
-    lambda 38 In_APPLICATION = Out_TIMEOUT
-    lambda 38 In_CERTIFICATE = Out_TIMEOUT
-    lambda 38 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 38 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 38 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 38 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 25 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 25 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 25 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 25 In_FINISHED = Out_TIMEOUT
-    lambda 25 In_APPLICATION = Out_TIMEOUT
-    lambda 25 In_CERTIFICATE = Out_TIMEOUT
-    lambda 25 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 25 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 25 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 25 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 82 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 82 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 82 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 82 In_FINISHED = Out_TIMEOUT
-    lambda 82 In_APPLICATION = Out_TIMEOUT
-    lambda 82 In_CERTIFICATE = Out_TIMEOUT
-    lambda 82 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 82 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 82 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 82 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 50 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 50 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 50 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 50 In_FINISHED = Out_TIMEOUT
-    lambda 50 In_APPLICATION = Out_TIMEOUT
-    lambda 50 In_CERTIFICATE = Out_TIMEOUT
-    lambda 50 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 50 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 50 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 50 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 83 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 83 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 83 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 83 In_FINISHED = Out_TIMEOUT
-    lambda 83 In_APPLICATION = Out_TIMEOUT
-    lambda 83 In_CERTIFICATE = Out_TIMEOUT
-    lambda 83 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 83 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 83 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 83 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 79 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 79 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 79 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 79 In_FINISHED = Out_TIMEOUT
-    lambda 79 In_APPLICATION = Out_TIMEOUT
-    lambda 79 In_CERTIFICATE = Out_TIMEOUT
-    lambda 79 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 79 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 79 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 79 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 63 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 63 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 63 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 63 In_FINISHED = Out_TIMEOUT
-    lambda 63 In_APPLICATION = Out_TIMEOUT
-    lambda 63 In_CERTIFICATE = Out_TIMEOUT
-    lambda 63 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 63 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 63 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 63 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 46 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 46 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 46 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 46 In_FINISHED = Out_TIMEOUT
-    lambda 46 In_APPLICATION = Out_TIMEOUT
-    lambda 46 In_CERTIFICATE = Out_TIMEOUT
-    lambda 46 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 46 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 46 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 46 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 105 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 105 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 105 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 105 In_FINISHED = Out_TIMEOUT
-    lambda 105 In_APPLICATION = Out_TIMEOUT
-    lambda 105 In_CERTIFICATE = Out_TIMEOUT
-    lambda 105 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 105 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 105 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 105 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 61 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 61 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 61 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 61 In_FINISHED = Out_TIMEOUT
-    lambda 61 In_APPLICATION = Out_TIMEOUT
-    lambda 61 In_CERTIFICATE = Out_TIMEOUT
-    lambda 61 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 61 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 61 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 61 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 65 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 65 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 65 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 65 In_FINISHED = Out_TIMEOUT
-    lambda 65 In_APPLICATION = Out_TIMEOUT
-    lambda 65 In_CERTIFICATE = Out_TIMEOUT
-    lambda 65 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 65 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 65 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 65 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 97 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 97 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 97 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 97 In_FINISHED = Out_TIMEOUT
-    lambda 97 In_APPLICATION = Out_TIMEOUT
-    lambda 97 In_CERTIFICATE = Out_TIMEOUT
-    lambda 97 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 97 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 97 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 97 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 81 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 81 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 81 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 81 In_FINISHED = Out_TIMEOUT
-    lambda 81 In_APPLICATION = Out_TIMEOUT
-    lambda 81 In_CERTIFICATE = Out_TIMEOUT
-    lambda 81 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 81 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 81 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 81 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 62 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 62 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 62 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 62 In_FINISHED = Out_TIMEOUT
-    lambda 62 In_APPLICATION = Out_TIMEOUT
-    lambda 62 In_CERTIFICATE = Out_TIMEOUT
-    lambda 62 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 62 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 62 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 62 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 78 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 78 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 78 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 78 In_FINISHED = Out_TIMEOUT
-    lambda 78 In_APPLICATION = Out_TIMEOUT
-    lambda 78 In_CERTIFICATE = Out_TIMEOUT
-    lambda 78 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 78 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 78 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 78 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 51 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 51 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 51 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 51 In_FINISHED = Out_TIMEOUT
-    lambda 51 In_APPLICATION = Out_TIMEOUT
-    lambda 51 In_CERTIFICATE = Out_TIMEOUT
-    lambda 51 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 51 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 51 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 51 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 103 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 103 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 103 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 103 In_FINISHED = Out_TIMEOUT
-    lambda 103 In_APPLICATION = Out_TIMEOUT
-    lambda 103 In_CERTIFICATE = Out_TIMEOUT
-    lambda 103 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 103 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 103 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 103 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 94 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 94 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 94 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 94 In_FINISHED = Out_TIMEOUT
-    lambda 94 In_APPLICATION = Out_TIMEOUT
-    lambda 94 In_CERTIFICATE = Out_TIMEOUT
-    lambda 94 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 94 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 94 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 94 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 29 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 29 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 29 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 29 In_FINISHED = Out_TIMEOUT
-    lambda 29 In_APPLICATION = Out_TIMEOUT
-    lambda 29 In_CERTIFICATE = Out_TIMEOUT
-    lambda 29 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 29 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 29 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 29 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 66 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 66 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 66 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 66 In_FINISHED = Out_TIMEOUT
-    lambda 66 In_APPLICATION = Out_TIMEOUT
-    lambda 66 In_CERTIFICATE = Out_TIMEOUT
-    lambda 66 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 66 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 66 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 66 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 33 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 33 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 33 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 33 In_FINISHED = Out_TIMEOUT
-    lambda 33 In_APPLICATION = Out_TIMEOUT
-    lambda 33 In_CERTIFICATE = Out_TIMEOUT
-    lambda 33 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 33 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 33 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 33 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 44 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 44 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 44 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 44 In_FINISHED = Out_TIMEOUT
-    lambda 44 In_APPLICATION = Out_TIMEOUT
-    lambda 44 In_CERTIFICATE = Out_TIMEOUT
-    lambda 44 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 44 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 44 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 44 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 87 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 87 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 87 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 87 In_FINISHED = Out_TIMEOUT
-    lambda 87 In_APPLICATION = Out_TIMEOUT
-    lambda 87 In_CERTIFICATE = Out_TIMEOUT
-    lambda 87 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 87 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 87 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 87 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 75 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 75 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 75 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 75 In_FINISHED = Out_TIMEOUT
-    lambda 75 In_APPLICATION = Out_TIMEOUT
-    lambda 75 In_CERTIFICATE = Out_TIMEOUT
-    lambda 75 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 75 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 75 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 75 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 72 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 72 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 72 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 72 In_FINISHED = Out_TIMEOUT
-    lambda 72 In_APPLICATION = Out_TIMEOUT
-    lambda 72 In_CERTIFICATE = Out_TIMEOUT
-    lambda 72 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 72 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 72 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 72 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 109 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 109 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 109 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 109 In_FINISHED = Out_TIMEOUT
-    lambda 109 In_APPLICATION = Out_TIMEOUT
-    lambda 109 In_CERTIFICATE = Out_TIMEOUT
-    lambda 109 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 109 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 109 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 109 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 98 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 98 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 98 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 98 In_FINISHED = Out_CHANGE_CIPHER_SPEC_FINISHED_CHANGE_CIPHER_SPEC_FINISHED
-    lambda 98 In_APPLICATION = Out_TIMEOUT
-    lambda 98 In_CERTIFICATE = Out_TIMEOUT
-    lambda 98 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 98 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 98 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 98 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 40 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 40 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 40 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 40 In_FINISHED = Out_TIMEOUT
-    lambda 40 In_APPLICATION = Out_TIMEOUT
-    lambda 40 In_CERTIFICATE = Out_TIMEOUT
-    lambda 40 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 40 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 40 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 40 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 102 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 102 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 102 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 102 In_FINISHED = Out_TIMEOUT
-    lambda 102 In_APPLICATION = Out_TIMEOUT
-    lambda 102 In_CERTIFICATE = Out_TIMEOUT
-    lambda 102 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 102 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 102 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 102 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 30 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 30 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 30 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 30 In_FINISHED = Out_TIMEOUT
-    lambda 30 In_APPLICATION = Out_TIMEOUT
-    lambda 30 In_CERTIFICATE = Out_TIMEOUT
-    lambda 30 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 30 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 30 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 30 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 91 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 91 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 91 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 91 In_FINISHED = Out_TIMEOUT
-    lambda 91 In_APPLICATION = Out_TIMEOUT
-    lambda 91 In_CERTIFICATE = Out_TIMEOUT
-    lambda 91 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 91 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 91 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 91 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 84 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 84 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 84 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 84 In_FINISHED = Out_TIMEOUT
-    lambda 84 In_APPLICATION = Out_TIMEOUT
-    lambda 84 In_CERTIFICATE = Out_TIMEOUT
-    lambda 84 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 84 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 84 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 84 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 89 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 89 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 89 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 89 In_FINISHED = Out_TIMEOUT
-    lambda 89 In_APPLICATION = Out_TIMEOUT
-    lambda 89 In_CERTIFICATE = Out_TIMEOUT
-    lambda 89 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 89 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 89 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 89 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 104 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 104 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 104 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 104 In_FINISHED = Out_TIMEOUT
-    lambda 104 In_APPLICATION = Out_TIMEOUT
-    lambda 104 In_CERTIFICATE = Out_TIMEOUT
-    lambda 104 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 104 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 104 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 104 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 52 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 52 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 52 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 52 In_FINISHED = Out_TIMEOUT
-    lambda 52 In_APPLICATION = Out_TIMEOUT
-    lambda 52 In_CERTIFICATE = Out_TIMEOUT
-    lambda 52 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 52 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 52 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 52 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 76 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 76 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 76 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 76 In_FINISHED = Out_TIMEOUT
-    lambda 76 In_APPLICATION = Out_TIMEOUT
-    lambda 76 In_CERTIFICATE = Out_TIMEOUT
-    lambda 76 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 76 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 76 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 76 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 95 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 95 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 95 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 95 In_FINISHED = Out_TIMEOUT
-    lambda 95 In_APPLICATION = Out_TIMEOUT
-    lambda 95 In_CERTIFICATE = Out_TIMEOUT
-    lambda 95 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 95 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 95 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 95 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 77 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 77 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 77 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 77 In_FINISHED = Out_TIMEOUT
-    lambda 77 In_APPLICATION = Out_TIMEOUT
-    lambda 77 In_CERTIFICATE = Out_TIMEOUT
-    lambda 77 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 77 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 77 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 77 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 106 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 106 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 106 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 106 In_FINISHED = Out_TIMEOUT
-    lambda 106 In_APPLICATION = Out_TIMEOUT
-    lambda 106 In_CERTIFICATE = Out_TIMEOUT
-    lambda 106 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 106 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 106 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 106 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 37 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 37 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 37 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 37 In_FINISHED = Out_TIMEOUT
-    lambda 37 In_APPLICATION = Out_TIMEOUT
-    lambda 37 In_CERTIFICATE = Out_TIMEOUT
-    lambda 37 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 37 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 37 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 37 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 71 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 71 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 71 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 71 In_FINISHED = Out_TIMEOUT
-    lambda 71 In_APPLICATION = Out_TIMEOUT
-    lambda 71 In_CERTIFICATE = Out_TIMEOUT
-    lambda 71 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 71 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 71 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 71 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 85 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 85 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 85 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 85 In_FINISHED = Out_TIMEOUT
-    lambda 85 In_APPLICATION = Out_TIMEOUT
-    lambda 85 In_CERTIFICATE = Out_TIMEOUT
-    lambda 85 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 85 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 85 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 85 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 48 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 48 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 48 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 48 In_FINISHED = Out_TIMEOUT
-    lambda 48 In_APPLICATION = Out_TIMEOUT
-    lambda 48 In_CERTIFICATE = Out_TIMEOUT
-    lambda 48 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 48 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 48 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 48 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 111 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 111 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 111 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 111 In_FINISHED = Out_TIMEOUT
-    lambda 111 In_APPLICATION = Out_TIMEOUT
-    lambda 111 In_CERTIFICATE = Out_TIMEOUT
-    lambda 111 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 111 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 111 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 111 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 107 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 107 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 107 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 107 In_FINISHED = Out_TIMEOUT
-    lambda 107 In_APPLICATION = Out_TIMEOUT
-    lambda 107 In_CERTIFICATE = Out_TIMEOUT
-    lambda 107 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 107 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 107 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 107 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 110 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 110 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 110 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 110 In_FINISHED = Out_TIMEOUT
-    lambda 110 In_APPLICATION = Out_TIMEOUT
-    lambda 110 In_CERTIFICATE = Out_TIMEOUT
-    lambda 110 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 110 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 110 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 110 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 112 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 112 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 112 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 112 In_FINISHED = Out_TIMEOUT
-    lambda 112 In_APPLICATION = Out_TIMEOUT
-    lambda 112 In_CERTIFICATE = Out_TIMEOUT
-    lambda 112 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 112 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 112 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 112 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 100 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 100 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 100 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 100 In_FINISHED = Out_TIMEOUT
-    lambda 100 In_APPLICATION = Out_TIMEOUT
-    lambda 100 In_CERTIFICATE = Out_TIMEOUT
-    lambda 100 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 100 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 100 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 100 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 108 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 108 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 108 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 108 In_FINISHED = Out_TIMEOUT
-    lambda 108 In_APPLICATION = Out_TIMEOUT
-    lambda 108 In_CERTIFICATE = Out_TIMEOUT
-    lambda 108 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 108 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 108 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 108 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 96 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 96 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 96 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 96 In_FINISHED = Out_TIMEOUT
-    lambda 96 In_APPLICATION = Out_TIMEOUT
-    lambda 96 In_CERTIFICATE = Out_TIMEOUT
-    lambda 96 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 96 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 96 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 96 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 101 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 101 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 101 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 101 In_FINISHED = Out_TIMEOUT
-    lambda 101 In_APPLICATION = Out_TIMEOUT
-    lambda 101 In_CERTIFICATE = Out_TIMEOUT
-    lambda 101 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 101 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 101 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 101 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 99 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 99 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 99 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 99 In_FINISHED = Out_TIMEOUT
-    lambda 99 In_APPLICATION = Out_TIMEOUT
-    lambda 99 In_CERTIFICATE = Out_TIMEOUT
-    lambda 99 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 99 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 99 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 99 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 60 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 60 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 60 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 60 In_FINISHED = Out_TIMEOUT
-    lambda 60 In_APPLICATION = Out_TIMEOUT
-    lambda 60 In_CERTIFICATE = Out_TIMEOUT
-    lambda 60 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 60 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 60 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 60 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda _ _ = error "haal-gen: undefined transition"
+import Haal.Automaton.MealyAutomaton (MealyAutomaton, mkMealyAutomatonTable)
+
+data JsseV12RsaCertReqInput
+    = In_RSA_CLIENT_HELLO
+    | In_RSA_CLIENT_KEY_EXCHANGE
+    | In_CHANGE_CIPHER_SPEC
+    | In_FINISHED
+    | In_APPLICATION
+    | In_CERTIFICATE
+    | In_EMPTY_CERTIFICATE
+    | In_CERTIFICATE_VERIFY
+    | In_Alert_WARNING_CLOSE_NOTIFY
+    | In_Alert_FATAL_UNEXPECTED_MESSAGE
+    deriving (Show, Eq, Ord, Enum, Bounded)
+
+data JsseV12RsaCertReqOutput
+    = Out_HELLO_VERIFY_REQUEST
+    | Out_TIMEOUT
+    | Out_SERVER_HELLO_CERTIFICATE_CERTIFICATE_REQUEST_SERVER_HELLO_DONE
+    | Out_Alert_WARNING_CLOSE_NOTIFY
+    | Out_SOCKET_CLOSED
+    | Out_Alert_FATAL_UNEXPECTED_MESSAGE
+    | Out_Alert_FATAL_BAD_CERTIFICATE
+    | Out_Alert_FATAL_HANDSHAKE_FAILURE
+    | Out_CHANGE_CIPHER_SPEC_FINISHED_CHANGE_CIPHER_SPEC_FINISHED
+    | Out_CHANGE_CIPHER_SPEC_UNKNOWN_MESSAGE_CHANGE_CIPHER_SPEC_UNKNOWN_MESSAGE
+    | Out_APPLICATION
+    deriving (Show, Eq, Ord, Enum, Bounded)
+
+{- Transitions (state  input -> next state / output):
+    0     In_RSA_CLIENT_HELLO                -> 1 / Out_HELLO_VERIFY_REQUEST
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 2 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 4 / Out_TIMEOUT
+          In_APPLICATION                     -> 0 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 5 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 6 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 4 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    1     In_RSA_CLIENT_HELLO                -> 9 / Out_SERVER_HELLO_CERTIFICATE_CERTIFICATE_REQUEST_SERVER_HELLO_DONE
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 10 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 11 / Out_TIMEOUT
+          In_APPLICATION                     -> 1 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 12 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 13 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 11 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    2     In_RSA_CLIENT_HELLO                -> 23 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 4 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 24 / Out_TIMEOUT
+          In_FINISHED                        -> 25 / Out_TIMEOUT
+          In_APPLICATION                     -> 2 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 26 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 26 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 27 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    3     In_RSA_CLIENT_HELLO                -> 3 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 3 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 3 / Out_TIMEOUT
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 3 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 3 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 3 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 3 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 3 / Out_TIMEOUT
+    4     In_RSA_CLIENT_HELLO                -> 4 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 4 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 4 / Out_TIMEOUT
+          In_APPLICATION                     -> 4 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 4 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 4 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 4 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    5     In_RSA_CLIENT_HELLO                -> 5 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 5 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 60 / Out_TIMEOUT
+          In_APPLICATION                     -> 5 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 4 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 4 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 30 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    6     In_RSA_CLIENT_HELLO                -> 28 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 26 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 24 / Out_TIMEOUT
+          In_FINISHED                        -> 29 / Out_TIMEOUT
+          In_APPLICATION                     -> 6 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 4 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 4 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 30 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    7     In_RSA_CLIENT_HELLO                -> 8 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 8 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 8 / Out_TIMEOUT
+          In_FINISHED                        -> 8 / Out_TIMEOUT
+          In_APPLICATION                     -> 8 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 8 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 8 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 8 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 8 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 8 / Out_TIMEOUT
+    8     In_RSA_CLIENT_HELLO                -> 8 / Out_SOCKET_CLOSED
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 8 / Out_SOCKET_CLOSED
+          In_CHANGE_CIPHER_SPEC              -> 8 / Out_SOCKET_CLOSED
+          In_FINISHED                        -> 8 / Out_SOCKET_CLOSED
+          In_APPLICATION                     -> 8 / Out_SOCKET_CLOSED
+          In_CERTIFICATE                     -> 8 / Out_SOCKET_CLOSED
+          In_EMPTY_CERTIFICATE               -> 8 / Out_SOCKET_CLOSED
+          In_CERTIFICATE_VERIFY              -> 8 / Out_SOCKET_CLOSED
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 8 / Out_SOCKET_CLOSED
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 8 / Out_SOCKET_CLOSED
+    9     In_RSA_CLIENT_HELLO                -> 7 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 14 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 11 / Out_TIMEOUT
+          In_APPLICATION                     -> 9 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 15 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 16 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 11 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    10    In_RSA_CLIENT_HELLO                -> 17 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 11 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 35 / Out_TIMEOUT
+          In_FINISHED                        -> 19 / Out_TIMEOUT
+          In_APPLICATION                     -> 10 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 45 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 45 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 46 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    11    In_RSA_CLIENT_HELLO                -> 11 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 11 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 11 / Out_TIMEOUT
+          In_APPLICATION                     -> 11 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 11 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 11 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 11 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    12    In_RSA_CLIENT_HELLO                -> 12 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 47 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 48 / Out_TIMEOUT
+          In_APPLICATION                     -> 12 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 11 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 11 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 49 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    13    In_RSA_CLIENT_HELLO                -> 52 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 45 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 35 / Out_TIMEOUT
+          In_FINISHED                        -> 53 / Out_TIMEOUT
+          In_APPLICATION                     -> 13 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 11 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 11 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 49 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    14    In_RSA_CLIENT_HELLO                -> 17 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 11 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 18 / Out_TIMEOUT
+          In_FINISHED                        -> 19 / Out_TIMEOUT
+          In_APPLICATION                     -> 14 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 20 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 21 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 22 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    15    In_RSA_CLIENT_HELLO                -> 12 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 93 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 48 / Out_TIMEOUT
+          In_APPLICATION                     -> 15 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 11 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 11 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 94 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    16    In_RSA_CLIENT_HELLO                -> 38 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 21 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 39 / Out_TIMEOUT
+          In_FINISHED                        -> 40 / Out_TIMEOUT
+          In_APPLICATION                     -> 16 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 11 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 11 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 41 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    17    In_RSA_CLIENT_HELLO                -> 11 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 11 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 35 / Out_TIMEOUT
+          In_FINISHED                        -> 34 / Out_TIMEOUT
+          In_APPLICATION                     -> 17 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 86 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 86 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 91 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    18    In_RSA_CLIENT_HELLO                -> 67 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 11 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 68 / Out_CHANGE_CIPHER_SPEC_FINISHED_CHANGE_CIPHER_SPEC_FINISHED
+          In_APPLICATION                     -> 18 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 69 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 70 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 71 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 18 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 18 / Out_TIMEOUT
+    19    In_RSA_CLIENT_HELLO                -> 34 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 11 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 35 / Out_TIMEOUT
+          In_FINISHED                        -> 11 / Out_TIMEOUT
+          In_APPLICATION                     -> 19 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 36 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 36 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 37 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    20    In_RSA_CLIENT_HELLO                -> 86 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 11 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 98 / Out_TIMEOUT
+          In_FINISHED                        -> 36 / Out_TIMEOUT
+          In_APPLICATION                     -> 20 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 11 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 11 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 95 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    21    In_RSA_CLIENT_HELLO                -> 78 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 11 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 39 / Out_TIMEOUT
+          In_FINISHED                        -> 79 / Out_TIMEOUT
+          In_APPLICATION                     -> 21 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 11 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 11 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 65 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    22    In_RSA_CLIENT_HELLO                -> 22 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 11 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 42 / Out_TIMEOUT
+          In_FINISHED                        -> 43 / Out_TIMEOUT
+          In_APPLICATION                     -> 22 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 44 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 44 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 11 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    23    In_RSA_CLIENT_HELLO                -> 4 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 4 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 24 / Out_TIMEOUT
+          In_FINISHED                        -> 50 / Out_TIMEOUT
+          In_APPLICATION                     -> 23 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 51 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 51 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 31 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    24    In_RSA_CLIENT_HELLO                -> 7 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 7 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 7 / Out_TIMEOUT
+          In_APPLICATION                     -> 24 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 7 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 7 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 7 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 24 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 24 / Out_TIMEOUT
+    25    In_RSA_CLIENT_HELLO                -> 50 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 4 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 24 / Out_TIMEOUT
+          In_FINISHED                        -> 4 / Out_TIMEOUT
+          In_APPLICATION                     -> 25 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 82 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 82 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 32 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    26    In_RSA_CLIENT_HELLO                -> 51 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 4 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 24 / Out_TIMEOUT
+          In_FINISHED                        -> 82 / Out_TIMEOUT
+          In_APPLICATION                     -> 26 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 4 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 4 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 33 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    27    In_RSA_CLIENT_HELLO                -> 31 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 4 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 24 / Out_TIMEOUT
+          In_FINISHED                        -> 32 / Out_TIMEOUT
+          In_APPLICATION                     -> 27 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 33 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 33 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 4 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    28    In_RSA_CLIENT_HELLO                -> 4 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 51 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 24 / Out_TIMEOUT
+          In_FINISHED                        -> 83 / Out_TIMEOUT
+          In_APPLICATION                     -> 28 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 4 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 4 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 84 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    29    In_RSA_CLIENT_HELLO                -> 83 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 82 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 24 / Out_TIMEOUT
+          In_FINISHED                        -> 4 / Out_TIMEOUT
+          In_APPLICATION                     -> 29 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 4 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 4 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 107 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    30    In_RSA_CLIENT_HELLO                -> 84 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 33 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 24 / Out_TIMEOUT
+          In_FINISHED                        -> 107 / Out_TIMEOUT
+          In_APPLICATION                     -> 30 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 4 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 4 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 4 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    31    In_RSA_CLIENT_HELLO                -> 4 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 4 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 24 / Out_TIMEOUT
+          In_FINISHED                        -> 80 / Out_TIMEOUT
+          In_APPLICATION                     -> 31 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 89 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 89 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 4 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    32    In_RSA_CLIENT_HELLO                -> 80 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 4 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 24 / Out_TIMEOUT
+          In_FINISHED                        -> 4 / Out_TIMEOUT
+          In_APPLICATION                     -> 32 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 81 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 81 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 4 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    33    In_RSA_CLIENT_HELLO                -> 89 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 4 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 24 / Out_TIMEOUT
+          In_FINISHED                        -> 81 / Out_TIMEOUT
+          In_APPLICATION                     -> 33 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 4 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 4 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 4 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    34    In_RSA_CLIENT_HELLO                -> 11 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 11 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 35 / Out_TIMEOUT
+          In_FINISHED                        -> 11 / Out_TIMEOUT
+          In_APPLICATION                     -> 34 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 88 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 88 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 96 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    35    In_RSA_CLIENT_HELLO                -> 7 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 7 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 7 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_APPLICATION                     -> 35 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 7 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_EMPTY_CERTIFICATE               -> 7 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CERTIFICATE_VERIFY              -> 7 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 35 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 35 / Out_TIMEOUT
+    36    In_RSA_CLIENT_HELLO                -> 88 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 11 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 35 / Out_TIMEOUT
+          In_FINISHED                        -> 11 / Out_TIMEOUT
+          In_APPLICATION                     -> 36 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 11 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 11 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 63 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    37    In_RSA_CLIENT_HELLO                -> 96 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 11 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 35 / Out_TIMEOUT
+          In_FINISHED                        -> 11 / Out_TIMEOUT
+          In_APPLICATION                     -> 37 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 63 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 63 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 11 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    38    In_RSA_CLIENT_HELLO                -> 11 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 78 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 39 / Out_TIMEOUT
+          In_FINISHED                        -> 102 / Out_TIMEOUT
+          In_APPLICATION                     -> 38 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 11 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 11 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 64 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    39    In_RSA_CLIENT_HELLO                -> 7 / Out_Alert_FATAL_BAD_CERTIFICATE
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 7 / Out_Alert_FATAL_BAD_CERTIFICATE
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 7 / Out_Alert_FATAL_BAD_CERTIFICATE
+          In_APPLICATION                     -> 39 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 7 / Out_Alert_FATAL_BAD_CERTIFICATE
+          In_EMPTY_CERTIFICATE               -> 7 / Out_Alert_FATAL_BAD_CERTIFICATE
+          In_CERTIFICATE_VERIFY              -> 7 / Out_Alert_FATAL_BAD_CERTIFICATE
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 39 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 39 / Out_TIMEOUT
+    40    In_RSA_CLIENT_HELLO                -> 102 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 79 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 39 / Out_TIMEOUT
+          In_FINISHED                        -> 11 / Out_TIMEOUT
+          In_APPLICATION                     -> 40 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 11 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 11 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 66 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    41    In_RSA_CLIENT_HELLO                -> 64 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 65 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 39 / Out_TIMEOUT
+          In_FINISHED                        -> 66 / Out_TIMEOUT
+          In_APPLICATION                     -> 41 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 11 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 11 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 11 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    42    In_RSA_CLIENT_HELLO                -> 7 / Out_Alert_FATAL_HANDSHAKE_FAILURE
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 7 / Out_Alert_FATAL_HANDSHAKE_FAILURE
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 7 / Out_Alert_FATAL_HANDSHAKE_FAILURE
+          In_APPLICATION                     -> 42 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 7 / Out_Alert_FATAL_HANDSHAKE_FAILURE
+          In_EMPTY_CERTIFICATE               -> 7 / Out_Alert_FATAL_HANDSHAKE_FAILURE
+          In_CERTIFICATE_VERIFY              -> 7 / Out_Alert_FATAL_HANDSHAKE_FAILURE
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 42 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 42 / Out_TIMEOUT
+    43    In_RSA_CLIENT_HELLO                -> 58 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 11 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 42 / Out_TIMEOUT
+          In_FINISHED                        -> 11 / Out_TIMEOUT
+          In_APPLICATION                     -> 43 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 59 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 59 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 11 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    44    In_RSA_CLIENT_HELLO                -> 44 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 11 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 42 / Out_TIMEOUT
+          In_FINISHED                        -> 59 / Out_TIMEOUT
+          In_APPLICATION                     -> 44 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 11 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 11 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 11 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    45    In_RSA_CLIENT_HELLO                -> 86 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 11 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 35 / Out_TIMEOUT
+          In_FINISHED                        -> 36 / Out_TIMEOUT
+          In_APPLICATION                     -> 45 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 11 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 11 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 57 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    46    In_RSA_CLIENT_HELLO                -> 91 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 11 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 35 / Out_TIMEOUT
+          In_FINISHED                        -> 37 / Out_TIMEOUT
+          In_APPLICATION                     -> 46 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 57 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 57 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 11 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    47    In_RSA_CLIENT_HELLO                -> 47 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 11 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 61 / Out_TIMEOUT
+          In_APPLICATION                     -> 47 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 11 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 11 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 57 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    48    In_RSA_CLIENT_HELLO                -> 112 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 61 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 11 / Out_TIMEOUT
+          In_APPLICATION                     -> 48 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 11 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 11 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 55 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    49    In_RSA_CLIENT_HELLO                -> 56 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 57 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 35 / Out_TIMEOUT
+          In_FINISHED                        -> 55 / Out_TIMEOUT
+          In_APPLICATION                     -> 49 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 11 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 11 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 11 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    50    In_RSA_CLIENT_HELLO                -> 4 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 4 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 24 / Out_TIMEOUT
+          In_FINISHED                        -> 4 / Out_TIMEOUT
+          In_APPLICATION                     -> 50 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 103 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 103 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 80 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    51    In_RSA_CLIENT_HELLO                -> 4 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 4 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 24 / Out_TIMEOUT
+          In_FINISHED                        -> 103 / Out_TIMEOUT
+          In_APPLICATION                     -> 51 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 4 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 4 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 89 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    52    In_RSA_CLIENT_HELLO                -> 11 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 86 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 35 / Out_TIMEOUT
+          In_FINISHED                        -> 54 / Out_TIMEOUT
+          In_APPLICATION                     -> 52 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 11 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 11 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 56 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    53    In_RSA_CLIENT_HELLO                -> 54 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 36 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 35 / Out_TIMEOUT
+          In_FINISHED                        -> 11 / Out_TIMEOUT
+          In_APPLICATION                     -> 53 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 11 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 11 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 55 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    54    In_RSA_CLIENT_HELLO                -> 11 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 88 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 35 / Out_TIMEOUT
+          In_FINISHED                        -> 11 / Out_TIMEOUT
+          In_APPLICATION                     -> 54 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 11 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 11 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 90 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    55    In_RSA_CLIENT_HELLO                -> 90 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 63 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 35 / Out_TIMEOUT
+          In_FINISHED                        -> 11 / Out_TIMEOUT
+          In_APPLICATION                     -> 55 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 11 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 11 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 11 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    56    In_RSA_CLIENT_HELLO                -> 11 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 62 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 35 / Out_TIMEOUT
+          In_FINISHED                        -> 90 / Out_TIMEOUT
+          In_APPLICATION                     -> 56 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 11 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 11 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 11 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    57    In_RSA_CLIENT_HELLO                -> 62 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 11 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 35 / Out_TIMEOUT
+          In_FINISHED                        -> 63 / Out_TIMEOUT
+          In_APPLICATION                     -> 57 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 11 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 11 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 11 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    58    In_RSA_CLIENT_HELLO                -> 11 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 11 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 42 / Out_TIMEOUT
+          In_FINISHED                        -> 11 / Out_TIMEOUT
+          In_APPLICATION                     -> 58 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 92 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 92 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 11 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    59    In_RSA_CLIENT_HELLO                -> 92 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 11 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 42 / Out_TIMEOUT
+          In_FINISHED                        -> 11 / Out_TIMEOUT
+          In_APPLICATION                     -> 59 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 11 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 11 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 11 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    60    In_RSA_CLIENT_HELLO                -> 60 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 60 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 4 / Out_TIMEOUT
+          In_APPLICATION                     -> 60 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 4 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 4 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 107 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    61    In_RSA_CLIENT_HELLO                -> 61 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 11 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 11 / Out_TIMEOUT
+          In_APPLICATION                     -> 61 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 11 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 11 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 63 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    62    In_RSA_CLIENT_HELLO                -> 11 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 11 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 35 / Out_TIMEOUT
+          In_FINISHED                        -> 97 / Out_TIMEOUT
+          In_APPLICATION                     -> 62 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 11 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 11 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 11 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    63    In_RSA_CLIENT_HELLO                -> 97 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 11 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 35 / Out_TIMEOUT
+          In_FINISHED                        -> 11 / Out_TIMEOUT
+          In_APPLICATION                     -> 63 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 11 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 11 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 11 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    64    In_RSA_CLIENT_HELLO                -> 11 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 76 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 39 / Out_TIMEOUT
+          In_FINISHED                        -> 77 / Out_TIMEOUT
+          In_APPLICATION                     -> 64 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 11 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 11 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 11 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    65    In_RSA_CLIENT_HELLO                -> 76 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 11 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 39 / Out_TIMEOUT
+          In_FINISHED                        -> 105 / Out_TIMEOUT
+          In_APPLICATION                     -> 65 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 11 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 11 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 11 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    66    In_RSA_CLIENT_HELLO                -> 77 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 105 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 39 / Out_TIMEOUT
+          In_FINISHED                        -> 11 / Out_TIMEOUT
+          In_APPLICATION                     -> 66 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 11 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 11 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 11 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    67    In_RSA_CLIENT_HELLO                -> 11 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 11 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 35 / Out_TIMEOUT
+          In_FINISHED                        -> 85 / Out_TIMEOUT
+          In_APPLICATION                     -> 11 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 72 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 72 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 67 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    68    In_RSA_CLIENT_HELLO                -> 68 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 68 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 68 / Out_TIMEOUT
+          In_APPLICATION                     -> 7 / Out_APPLICATION
+          In_CERTIFICATE                     -> 68 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 68 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 68 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    69    In_RSA_CLIENT_HELLO                -> 72 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 11 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 35 / Out_TIMEOUT
+          In_FINISHED                        -> 73 / Out_TIMEOUT
+          In_APPLICATION                     -> 11 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 11 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 11 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 69 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    70    In_RSA_CLIENT_HELLO                -> 99 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 11 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 39 / Out_TIMEOUT
+          In_FINISHED                        -> 100 / Out_TIMEOUT
+          In_APPLICATION                     -> 11 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 11 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 11 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 101 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    71    In_RSA_CLIENT_HELLO                -> 71 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 11 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 42 / Out_TIMEOUT
+          In_FINISHED                        -> 110 / Out_TIMEOUT
+          In_APPLICATION                     -> 11 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 111 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 111 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 11 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    72    In_RSA_CLIENT_HELLO                -> 11 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 11 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 35 / Out_TIMEOUT
+          In_FINISHED                        -> 88 / Out_TIMEOUT
+          In_APPLICATION                     -> 11 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 11 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 11 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 109 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    73    In_RSA_CLIENT_HELLO                -> 73 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 11 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 74 / Out_TIMEOUT
+          In_FINISHED                        -> 11 / Out_TIMEOUT
+          In_APPLICATION                     -> 11 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 11 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 11 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 75 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    74    In_RSA_CLIENT_HELLO                -> 3 / Out_CHANGE_CIPHER_SPEC_FINISHED_CHANGE_CIPHER_SPEC_FINISHED
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 3 / Out_CHANGE_CIPHER_SPEC_UNKNOWN_MESSAGE_CHANGE_CIPHER_SPEC_UNKNOWN_MESSAGE
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 3 / Out_CHANGE_CIPHER_SPEC_FINISHED_CHANGE_CIPHER_SPEC_FINISHED
+          In_APPLICATION                     -> 74 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 3 / Out_CHANGE_CIPHER_SPEC_FINISHED_CHANGE_CIPHER_SPEC_FINISHED
+          In_EMPTY_CERTIFICATE               -> 3 / Out_CHANGE_CIPHER_SPEC_FINISHED_CHANGE_CIPHER_SPEC_FINISHED
+          In_CERTIFICATE_VERIFY              -> 3 / Out_CHANGE_CIPHER_SPEC_FINISHED_CHANGE_CIPHER_SPEC_FINISHED
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 74 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 74 / Out_TIMEOUT
+    75    In_RSA_CLIENT_HELLO                -> 108 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 11 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 74 / Out_TIMEOUT
+          In_FINISHED                        -> 11 / Out_TIMEOUT
+          In_APPLICATION                     -> 11 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 11 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 11 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 11 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    76    In_RSA_CLIENT_HELLO                -> 11 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 11 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 39 / Out_TIMEOUT
+          In_FINISHED                        -> 106 / Out_TIMEOUT
+          In_APPLICATION                     -> 76 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 11 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 11 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 11 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    77    In_RSA_CLIENT_HELLO                -> 11 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 106 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 39 / Out_TIMEOUT
+          In_FINISHED                        -> 11 / Out_TIMEOUT
+          In_APPLICATION                     -> 77 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 11 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 11 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 11 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    78    In_RSA_CLIENT_HELLO                -> 11 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 11 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 39 / Out_TIMEOUT
+          In_FINISHED                        -> 104 / Out_TIMEOUT
+          In_APPLICATION                     -> 78 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 11 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 11 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 76 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    79    In_RSA_CLIENT_HELLO                -> 104 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 11 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 39 / Out_TIMEOUT
+          In_FINISHED                        -> 11 / Out_TIMEOUT
+          In_APPLICATION                     -> 79 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 11 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 11 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 105 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    80    In_RSA_CLIENT_HELLO                -> 4 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 4 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 24 / Out_TIMEOUT
+          In_FINISHED                        -> 4 / Out_TIMEOUT
+          In_APPLICATION                     -> 80 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 87 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 87 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 4 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    81    In_RSA_CLIENT_HELLO                -> 87 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 4 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 24 / Out_TIMEOUT
+          In_FINISHED                        -> 4 / Out_TIMEOUT
+          In_APPLICATION                     -> 81 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 4 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 4 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 4 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    82    In_RSA_CLIENT_HELLO                -> 103 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 4 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 24 / Out_TIMEOUT
+          In_FINISHED                        -> 4 / Out_TIMEOUT
+          In_APPLICATION                     -> 82 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 4 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 4 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 81 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    83    In_RSA_CLIENT_HELLO                -> 4 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 103 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 24 / Out_TIMEOUT
+          In_FINISHED                        -> 4 / Out_TIMEOUT
+          In_APPLICATION                     -> 83 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 4 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 4 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 83 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    84    In_RSA_CLIENT_HELLO                -> 4 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 89 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 24 / Out_TIMEOUT
+          In_FINISHED                        -> 83 / Out_TIMEOUT
+          In_APPLICATION                     -> 84 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 4 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 4 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 4 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    85    In_RSA_CLIENT_HELLO                -> 11 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 11 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 35 / Out_TIMEOUT
+          In_FINISHED                        -> 11 / Out_TIMEOUT
+          In_APPLICATION                     -> 11 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 88 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 88 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 85 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    86    In_RSA_CLIENT_HELLO                -> 11 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 11 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 35 / Out_TIMEOUT
+          In_FINISHED                        -> 88 / Out_TIMEOUT
+          In_APPLICATION                     -> 86 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 11 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 11 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 62 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    87    In_RSA_CLIENT_HELLO                -> 4 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 4 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 24 / Out_TIMEOUT
+          In_FINISHED                        -> 4 / Out_TIMEOUT
+          In_APPLICATION                     -> 87 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 4 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 4 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 4 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    88    In_RSA_CLIENT_HELLO                -> 11 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 11 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 35 / Out_TIMEOUT
+          In_FINISHED                        -> 11 / Out_TIMEOUT
+          In_APPLICATION                     -> 88 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 11 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 11 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 97 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    89    In_RSA_CLIENT_HELLO                -> 4 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 4 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 24 / Out_TIMEOUT
+          In_FINISHED                        -> 87 / Out_TIMEOUT
+          In_APPLICATION                     -> 89 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 4 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 4 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 4 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    90    In_RSA_CLIENT_HELLO                -> 11 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 97 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 35 / Out_TIMEOUT
+          In_FINISHED                        -> 11 / Out_TIMEOUT
+          In_APPLICATION                     -> 90 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 11 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 11 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 11 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    91    In_RSA_CLIENT_HELLO                -> 11 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 11 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 35 / Out_TIMEOUT
+          In_FINISHED                        -> 96 / Out_TIMEOUT
+          In_APPLICATION                     -> 91 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 62 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 62 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 11 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    92    In_RSA_CLIENT_HELLO                -> 11 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 11 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 42 / Out_TIMEOUT
+          In_FINISHED                        -> 11 / Out_TIMEOUT
+          In_APPLICATION                     -> 92 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 11 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 11 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 11 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    93    In_RSA_CLIENT_HELLO                -> 47 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 11 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 61 / Out_TIMEOUT
+          In_APPLICATION                     -> 93 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 11 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 11 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 95 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    94    In_RSA_CLIENT_HELLO                -> 56 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 95 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 35 / Out_TIMEOUT
+          In_FINISHED                        -> 55 / Out_TIMEOUT
+          In_APPLICATION                     -> 94 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 11 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 11 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 11 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    95    In_RSA_CLIENT_HELLO                -> 62 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 11 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 98 / Out_TIMEOUT
+          In_FINISHED                        -> 63 / Out_TIMEOUT
+          In_APPLICATION                     -> 95 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 11 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 11 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 11 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    96    In_RSA_CLIENT_HELLO                -> 11 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 11 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 35 / Out_TIMEOUT
+          In_FINISHED                        -> 11 / Out_TIMEOUT
+          In_APPLICATION                     -> 96 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 97 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 97 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 11 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    97    In_RSA_CLIENT_HELLO                -> 11 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 11 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 35 / Out_TIMEOUT
+          In_FINISHED                        -> 11 / Out_TIMEOUT
+          In_APPLICATION                     -> 97 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 11 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 11 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 11 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    98    In_RSA_CLIENT_HELLO                -> 11 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 11 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 68 / Out_CHANGE_CIPHER_SPEC_FINISHED_CHANGE_CIPHER_SPEC_FINISHED
+          In_APPLICATION                     -> 98 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 11 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 11 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 11 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 98 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 98 / Out_TIMEOUT
+    99    In_RSA_CLIENT_HELLO                -> 11 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 11 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 39 / Out_TIMEOUT
+          In_FINISHED                        -> 100 / Out_TIMEOUT
+          In_APPLICATION                     -> 11 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 11 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 11 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 76 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    100   In_RSA_CLIENT_HELLO                -> 100 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 11 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 39 / Out_TIMEOUT
+          In_FINISHED                        -> 11 / Out_TIMEOUT
+          In_APPLICATION                     -> 11 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 11 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 11 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 105 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    101   In_RSA_CLIENT_HELLO                -> 76 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 11 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 39 / Out_TIMEOUT
+          In_FINISHED                        -> 105 / Out_TIMEOUT
+          In_APPLICATION                     -> 11 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 11 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 11 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 11 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    102   In_RSA_CLIENT_HELLO                -> 11 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 104 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 39 / Out_TIMEOUT
+          In_FINISHED                        -> 11 / Out_TIMEOUT
+          In_APPLICATION                     -> 102 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 11 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 11 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 77 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    103   In_RSA_CLIENT_HELLO                -> 4 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 4 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 24 / Out_TIMEOUT
+          In_FINISHED                        -> 4 / Out_TIMEOUT
+          In_APPLICATION                     -> 103 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 4 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 4 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 87 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    104   In_RSA_CLIENT_HELLO                -> 11 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 11 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 39 / Out_TIMEOUT
+          In_FINISHED                        -> 11 / Out_TIMEOUT
+          In_APPLICATION                     -> 104 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 11 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 11 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 106 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    105   In_RSA_CLIENT_HELLO                -> 106 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 11 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 39 / Out_TIMEOUT
+          In_FINISHED                        -> 11 / Out_TIMEOUT
+          In_APPLICATION                     -> 105 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 11 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 11 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 11 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    106   In_RSA_CLIENT_HELLO                -> 11 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 11 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 39 / Out_TIMEOUT
+          In_FINISHED                        -> 11 / Out_TIMEOUT
+          In_APPLICATION                     -> 106 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 11 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 11 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 11 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    107   In_RSA_CLIENT_HELLO                -> 83 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 81 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 24 / Out_TIMEOUT
+          In_FINISHED                        -> 4 / Out_TIMEOUT
+          In_APPLICATION                     -> 107 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 4 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 4 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 4 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    108   In_RSA_CLIENT_HELLO                -> 11 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 11 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 74 / Out_TIMEOUT
+          In_FINISHED                        -> 11 / Out_TIMEOUT
+          In_APPLICATION                     -> 11 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 11 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 11 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 11 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    109   In_RSA_CLIENT_HELLO                -> 11 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 11 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 35 / Out_TIMEOUT
+          In_FINISHED                        -> 97 / Out_TIMEOUT
+          In_APPLICATION                     -> 11 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 11 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 11 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 11 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    110   In_RSA_CLIENT_HELLO                -> 58 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 11 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 42 / Out_TIMEOUT
+          In_FINISHED                        -> 11 / Out_TIMEOUT
+          In_APPLICATION                     -> 11 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 59 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 59 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 11 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    111   In_RSA_CLIENT_HELLO                -> 111 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 11 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 42 / Out_TIMEOUT
+          In_FINISHED                        -> 59 / Out_TIMEOUT
+          In_APPLICATION                     -> 11 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 11 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 11 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 11 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+    112   In_RSA_CLIENT_HELLO                -> 11 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 61 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 11 / Out_TIMEOUT
+          In_APPLICATION                     -> 112 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 11 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 11 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 90 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 7 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 7 / Out_TIMEOUT
+-}
+jsseV12RsaCertReq :: MealyAutomaton Int JsseV12RsaCertReqInput JsseV12RsaCertReqOutput
+jsseV12RsaCertReq =
+    case mkMealyAutomatonTable 113 0 deltaTable lambdaTable of
+        Right m -> m
+        Left err -> error ("haal-gen: invalid transition table: " ++ err)
+  where
+    deltaTable =
+        "\1\2\3\4\0\5\6\4\7\7\
+        \\9\10\3\11\1\12\13\11\7\7\
+        \\23\4\24\25\2\26\26\27\7\7\
+        \\3\3\3\3\3\3\3\3\3\3\
+        \\4\4\3\4\4\4\4\4\7\7\
+        \\5\5\3\60\5\4\4\30\7\7\
+        \\28\26\24\29\6\4\4\30\7\7\
+        \\8\8\8\8\8\8\8\8\8\8\
+        \\8\8\8\8\8\8\8\8\8\8\
+        \\7\14\3\11\9\15\16\11\7\7\
+        \\17\11\35\19\10\45\45\46\7\7\
+        \\11\11\3\11\11\11\11\11\7\7\
+        \\12\47\3\48\12\11\11\49\7\7\
+        \\52\45\35\53\13\11\11\49\7\7\
+        \\17\11\18\19\14\20\21\22\7\7\
+        \\12\93\3\48\15\11\11\94\7\7\
+        \\38\21\39\40\16\11\11\41\7\7\
+        \\11\11\35\34\17\86\86\91\7\7\
+        \\67\11\3\68\18\69\70\71\18\18\
+        \\34\11\35\11\19\36\36\37\7\7\
+        \\86\11\98\36\20\11\11\95\7\7\
+        \\78\11\39\79\21\11\11\65\7\7\
+        \\22\11\42\43\22\44\44\11\7\7\
+        \\4\4\24\50\23\51\51\31\7\7\
+        \\7\7\3\7\24\7\7\7\24\24\
+        \\50\4\24\4\25\82\82\32\7\7\
+        \\51\4\24\82\26\4\4\33\7\7\
+        \\31\4\24\32\27\33\33\4\7\7\
+        \\4\51\24\83\28\4\4\84\7\7\
+        \\83\82\24\4\29\4\4\107\7\7\
+        \\84\33\24\107\30\4\4\4\7\7\
+        \\4\4\24\80\31\89\89\4\7\7\
+        \\80\4\24\4\32\81\81\4\7\7\
+        \\89\4\24\81\33\4\4\4\7\7\
+        \\11\11\35\11\34\88\88\96\7\7\
+        \\7\7\3\7\35\7\7\7\35\35\
+        \\88\11\35\11\36\11\11\63\7\7\
+        \\96\11\35\11\37\63\63\11\7\7\
+        \\11\78\39\102\38\11\11\64\7\7\
+        \\7\7\3\7\39\7\7\7\39\39\
+        \\102\79\39\11\40\11\11\66\7\7\
+        \\64\65\39\66\41\11\11\11\7\7\
+        \\7\7\3\7\42\7\7\7\42\42\
+        \\58\11\42\11\43\59\59\11\7\7\
+        \\44\11\42\59\44\11\11\11\7\7\
+        \\86\11\35\36\45\11\11\57\7\7\
+        \\91\11\35\37\46\57\57\11\7\7\
+        \\47\11\3\61\47\11\11\57\7\7\
+        \\112\61\3\11\48\11\11\55\7\7\
+        \\56\57\35\55\49\11\11\11\7\7\
+        \\4\4\24\4\50\103\103\80\7\7\
+        \\4\4\24\103\51\4\4\89\7\7\
+        \\11\86\35\54\52\11\11\56\7\7\
+        \\54\36\35\11\53\11\11\55\7\7\
+        \\11\88\35\11\54\11\11\90\7\7\
+        \\90\63\35\11\55\11\11\11\7\7\
+        \\11\62\35\90\56\11\11\11\7\7\
+        \\62\11\35\63\57\11\11\11\7\7\
+        \\11\11\42\11\58\92\92\11\7\7\
+        \\92\11\42\11\59\11\11\11\7\7\
+        \\60\60\3\4\60\4\4\107\7\7\
+        \\61\11\3\11\61\11\11\63\7\7\
+        \\11\11\35\97\62\11\11\11\7\7\
+        \\97\11\35\11\63\11\11\11\7\7\
+        \\11\76\39\77\64\11\11\11\7\7\
+        \\76\11\39\105\65\11\11\11\7\7\
+        \\77\105\39\11\66\11\11\11\7\7\
+        \\11\11\35\85\11\72\72\67\7\7\
+        \\68\68\3\68\7\68\68\68\7\7\
+        \\72\11\35\73\11\11\11\69\7\7\
+        \\99\11\39\100\11\11\11\101\7\7\
+        \\71\11\42\110\11\111\111\11\7\7\
+        \\11\11\35\88\11\11\11\109\7\7\
+        \\73\11\74\11\11\11\11\75\7\7\
+        \\3\3\3\3\74\3\3\3\74\74\
+        \\108\11\74\11\11\11\11\11\7\7\
+        \\11\11\39\106\76\11\11\11\7\7\
+        \\11\106\39\11\77\11\11\11\7\7\
+        \\11\11\39\104\78\11\11\76\7\7\
+        \\104\11\39\11\79\11\11\105\7\7\
+        \\4\4\24\4\80\87\87\4\7\7\
+        \\87\4\24\4\81\4\4\4\7\7\
+        \\103\4\24\4\82\4\4\81\7\7\
+        \\4\103\24\4\83\4\4\83\7\7\
+        \\4\89\24\83\84\4\4\4\7\7\
+        \\11\11\35\11\11\88\88\85\7\7\
+        \\11\11\35\88\86\11\11\62\7\7\
+        \\4\4\24\4\87\4\4\4\7\7\
+        \\11\11\35\11\88\11\11\97\7\7\
+        \\4\4\24\87\89\4\4\4\7\7\
+        \\11\97\35\11\90\11\11\11\7\7\
+        \\11\11\35\96\91\62\62\11\7\7\
+        \\11\11\42\11\92\11\11\11\7\7\
+        \\47\11\3\61\93\11\11\95\7\7\
+        \\56\95\35\55\94\11\11\11\7\7\
+        \\62\11\98\63\95\11\11\11\7\7\
+        \\11\11\35\11\96\97\97\11\7\7\
+        \\11\11\35\11\97\11\11\11\7\7\
+        \\11\11\3\68\98\11\11\11\98\98\
+        \\11\11\39\100\11\11\11\76\7\7\
+        \\100\11\39\11\11\11\11\105\7\7\
+        \\76\11\39\105\11\11\11\11\7\7\
+        \\11\104\39\11\102\11\11\77\7\7\
+        \\4\4\24\4\103\4\4\87\7\7\
+        \\11\11\39\11\104\11\11\106\7\7\
+        \\106\11\39\11\105\11\11\11\7\7\
+        \\11\11\39\11\106\11\11\11\7\7\
+        \\83\81\24\4\107\4\4\4\7\7\
+        \\11\11\74\11\11\11\11\11\7\7\
+        \\11\11\35\97\11\11\11\11\7\7\
+        \\58\11\42\11\11\59\59\11\7\7\
+        \\111\11\42\59\11\11\11\11\7\7\
+        \\11\61\3\11\112\11\11\90\7\7"
+    lambdaTable =
+        "\0\1\1\1\1\1\1\1\1\1\
+        \\2\1\1\1\1\1\1\1\3\1\
+        \\1\1\1\1\1\1\1\1\1\1\
+        \\1\1\1\1\1\1\1\1\1\1\
+        \\1\1\1\1\1\1\1\1\1\1\
+        \\1\1\1\1\1\1\1\1\1\1\
+        \\1\1\1\1\1\1\1\1\1\1\
+        \\1\1\1\1\1\1\1\1\1\1\
+        \\4\4\4\4\4\4\4\4\4\4\
+        \\5\1\1\1\1\1\1\1\3\1\
+        \\1\1\1\1\1\1\1\1\3\1\
+        \\1\1\1\1\1\1\1\1\3\1\
+        \\1\1\1\1\1\1\1\1\3\1\
+        \\1\1\1\1\1\1\1\1\3\1\
+        \\1\1\1\1\1\1\1\1\3\1\
+        \\1\1\1\1\1\1\1\1\3\1\
+        \\1\1\1\1\1\1\1\1\3\1\
+        \\1\1\1\1\1\1\1\1\3\1\
+        \\1\1\1\8\1\1\1\1\1\1\
+        \\1\1\1\1\1\1\1\1\3\1\
+        \\1\1\1\1\1\1\1\1\3\1\
+        \\1\1\1\1\1\1\1\1\3\1\
+        \\1\1\1\1\1\1\1\1\3\1\
+        \\1\1\1\1\1\1\1\1\1\1\
+        \\1\1\1\1\1\1\1\1\1\1\
+        \\1\1\1\1\1\1\1\1\1\1\
+        \\1\1\1\1\1\1\1\1\1\1\
+        \\1\1\1\1\1\1\1\1\1\1\
+        \\1\1\1\1\1\1\1\1\1\1\
+        \\1\1\1\1\1\1\1\1\1\1\
+        \\1\1\1\1\1\1\1\1\1\1\
+        \\1\1\1\1\1\1\1\1\1\1\
+        \\1\1\1\1\1\1\1\1\1\1\
+        \\1\1\1\1\1\1\1\1\1\1\
+        \\1\1\1\1\1\1\1\1\3\1\
+        \\5\5\1\5\1\5\5\5\1\1\
+        \\1\1\1\1\1\1\1\1\3\1\
+        \\1\1\1\1\1\1\1\1\3\1\
+        \\1\1\1\1\1\1\1\1\3\1\
+        \\6\6\1\6\1\6\6\6\1\1\
+        \\1\1\1\1\1\1\1\1\3\1\
+        \\1\1\1\1\1\1\1\1\3\1\
+        \\7\7\1\7\1\7\7\7\1\1\
+        \\1\1\1\1\1\1\1\1\3\1\
+        \\1\1\1\1\1\1\1\1\3\1\
+        \\1\1\1\1\1\1\1\1\3\1\
+        \\1\1\1\1\1\1\1\1\3\1\
+        \\1\1\1\1\1\1\1\1\3\1\
+        \\1\1\1\1\1\1\1\1\3\1\
+        \\1\1\1\1\1\1\1\1\3\1\
+        \\1\1\1\1\1\1\1\1\1\1\
+        \\1\1\1\1\1\1\1\1\1\1\
+        \\1\1\1\1\1\1\1\1\3\1\
+        \\1\1\1\1\1\1\1\1\3\1\
+        \\1\1\1\1\1\1\1\1\3\1\
+        \\1\1\1\1\1\1\1\1\3\1\
+        \\1\1\1\1\1\1\1\1\3\1\
+        \\1\1\1\1\1\1\1\1\3\1\
+        \\1\1\1\1\1\1\1\1\3\1\
+        \\1\1\1\1\1\1\1\1\3\1\
+        \\1\1\1\1\1\1\1\1\1\1\
+        \\1\1\1\1\1\1\1\1\3\1\
+        \\1\1\1\1\1\1\1\1\3\1\
+        \\1\1\1\1\1\1\1\1\3\1\
+        \\1\1\1\1\1\1\1\1\3\1\
+        \\1\1\1\1\1\1\1\1\3\1\
+        \\1\1\1\1\1\1\1\1\3\1\
+        \\1\1\1\1\1\1\1\1\3\1\
+        \\1\1\1\1\10\1\1\1\1\1\
+        \\1\1\1\1\1\1\1\1\3\1\
+        \\1\1\1\1\1\1\1\1\3\1\
+        \\1\1\1\1\1\1\1\1\3\1\
+        \\1\1\1\1\1\1\1\1\3\1\
+        \\1\1\1\1\1\1\1\1\3\1\
+        \\8\9\1\8\1\8\8\8\1\1\
+        \\1\1\1\1\1\1\1\1\3\1\
+        \\1\1\1\1\1\1\1\1\3\1\
+        \\1\1\1\1\1\1\1\1\3\1\
+        \\1\1\1\1\1\1\1\1\3\1\
+        \\1\1\1\1\1\1\1\1\3\1\
+        \\1\1\1\1\1\1\1\1\1\1\
+        \\1\1\1\1\1\1\1\1\1\1\
+        \\1\1\1\1\1\1\1\1\1\1\
+        \\1\1\1\1\1\1\1\1\1\1\
+        \\1\1\1\1\1\1\1\1\1\1\
+        \\1\1\1\1\1\1\1\1\3\1\
+        \\1\1\1\1\1\1\1\1\3\1\
+        \\1\1\1\1\1\1\1\1\1\1\
+        \\1\1\1\1\1\1\1\1\3\1\
+        \\1\1\1\1\1\1\1\1\1\1\
+        \\1\1\1\1\1\1\1\1\3\1\
+        \\1\1\1\1\1\1\1\1\3\1\
+        \\1\1\1\1\1\1\1\1\3\1\
+        \\1\1\1\1\1\1\1\1\3\1\
+        \\1\1\1\1\1\1\1\1\3\1\
+        \\1\1\1\1\1\1\1\1\3\1\
+        \\1\1\1\1\1\1\1\1\3\1\
+        \\1\1\1\1\1\1\1\1\3\1\
+        \\1\1\1\8\1\1\1\1\1\1\
+        \\1\1\1\1\1\1\1\1\3\1\
+        \\1\1\1\1\1\1\1\1\3\1\
+        \\1\1\1\1\1\1\1\1\3\1\
+        \\1\1\1\1\1\1\1\1\3\1\
+        \\1\1\1\1\1\1\1\1\1\1\
+        \\1\1\1\1\1\1\1\1\3\1\
+        \\1\1\1\1\1\1\1\1\3\1\
+        \\1\1\1\1\1\1\1\1\3\1\
+        \\1\1\1\1\1\1\1\1\1\1\
+        \\1\1\1\1\1\1\1\1\3\1\
+        \\1\1\1\1\1\1\1\1\3\1\
+        \\1\1\1\1\1\1\1\1\3\1\
+        \\1\1\1\1\1\1\1\1\3\1\
+        \\1\1\1\1\1\1\1\1\3\1"
diff --git a/src/Haal/Models/DTLS/MbedtlsAllCertNone.hs b/src/Haal/Models/DTLS/MbedtlsAllCertNone.hs
--- a/src/Haal/Models/DTLS/MbedtlsAllCertNone.hs
+++ b/src/Haal/Models/DTLS/MbedtlsAllCertNone.hs
@@ -5,8 +5,7 @@
     , mbedtlsAllCertNone
     ) where
 
-import qualified Data.Set as Set
-import Haal.Automaton.MealyAutomaton (MealyAutomaton, mkMealyAutomaton)
+import Haal.Automaton.MealyAutomaton (MealyAutomaton, mkMealyAutomatonTable)
 
 data MbedtlsAllCertNoneInput
     = In_ECDH_CLIENT_HELLO
@@ -44,392 +43,229 @@
     | Out_Alert_FATAL_BAD_RECORD_MAC
     deriving (Show, Eq, Ord, Enum, Bounded)
 
+{- Transitions (state  input -> next state / output):
+    0     In_ECDH_CLIENT_HELLO               -> 1 / Out_HELLO_VERIFY_REQUEST
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 0 / Out_TIMEOUT
+          In_DH_CLIENT_HELLO                 -> 1 / Out_HELLO_VERIFY_REQUEST
+          In_DH_CLIENT_KEY_EXCHANGE          -> 0 / Out_TIMEOUT
+          In_PSK_CLIENT_HELLO                -> 1 / Out_HELLO_VERIFY_REQUEST
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 0 / Out_TIMEOUT
+          In_RSA_CLIENT_HELLO                -> 1 / Out_HELLO_VERIFY_REQUEST
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 0 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_TIMEOUT
+          In_FINISHED                        -> 0 / Out_TIMEOUT
+          In_APPLICATION                     -> 0 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 0 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 0 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 0 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 0 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 0 / Out_TIMEOUT
+    1     In_ECDH_CLIENT_HELLO               -> 3 / Out_SERVER_HELLO_CERTIFICATE_ECDHE_SERVER_KEY_EXCHANGE_SERVER_HELLO_DONE
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 1 / Out_TIMEOUT
+          In_DH_CLIENT_HELLO                 -> 4 / Out_SERVER_HELLO_CERTIFICATE_DHE_SERVER_KEY_EXCHANGE_SERVER_HELLO_DONE
+          In_DH_CLIENT_KEY_EXCHANGE          -> 1 / Out_TIMEOUT
+          In_PSK_CLIENT_HELLO                -> 5 / Out_SERVER_HELLO_SERVER_HELLO_DONE
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 1 / Out_TIMEOUT
+          In_RSA_CLIENT_HELLO                -> 6 / Out_SERVER_HELLO_CERTIFICATE_SERVER_HELLO_DONE
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 1 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_TIMEOUT
+          In_FINISHED                        -> 1 / Out_TIMEOUT
+          In_APPLICATION                     -> 1 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 1 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 1 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 1 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 1 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 1 / Out_TIMEOUT
+    2     In_ECDH_CLIENT_HELLO               -> 2 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 2 / Out_TIMEOUT
+          In_DH_CLIENT_HELLO                 -> 2 / Out_TIMEOUT
+          In_DH_CLIENT_KEY_EXCHANGE          -> 2 / Out_TIMEOUT
+          In_PSK_CLIENT_HELLO                -> 2 / Out_TIMEOUT
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 2 / Out_TIMEOUT
+          In_RSA_CLIENT_HELLO                -> 2 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 2 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_TIMEOUT
+          In_FINISHED                        -> 2 / Out_TIMEOUT
+          In_APPLICATION                     -> 2 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 2 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 2 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 2 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 2 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 2 / Out_TIMEOUT
+    3     In_ECDH_CLIENT_HELLO               -> 1 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 7 / Out_TIMEOUT
+          In_DH_CLIENT_HELLO                 -> 1 / Out_TIMEOUT
+          In_DH_CLIENT_KEY_EXCHANGE          -> 1 / Out_TIMEOUT
+          In_PSK_CLIENT_HELLO                -> 1 / Out_TIMEOUT
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 1 / Out_TIMEOUT
+          In_RSA_CLIENT_HELLO                -> 1 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 1 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_TIMEOUT
+          In_FINISHED                        -> 1 / Out_TIMEOUT
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 1 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 1 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 1 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 1 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 1 / Out_TIMEOUT
+    4     In_ECDH_CLIENT_HELLO               -> 1 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 1 / Out_TIMEOUT
+          In_DH_CLIENT_HELLO                 -> 1 / Out_TIMEOUT
+          In_DH_CLIENT_KEY_EXCHANGE          -> 7 / Out_TIMEOUT
+          In_PSK_CLIENT_HELLO                -> 1 / Out_TIMEOUT
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 10 / Out_TIMEOUT
+          In_RSA_CLIENT_HELLO                -> 1 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 10 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_TIMEOUT
+          In_FINISHED                        -> 1 / Out_TIMEOUT
+          In_APPLICATION                     -> 4 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 1 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 1 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 1 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 1 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 1 / Out_TIMEOUT
+    5     In_ECDH_CLIENT_HELLO               -> 1 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 1 / Out_TIMEOUT
+          In_DH_CLIENT_HELLO                 -> 1 / Out_TIMEOUT
+          In_DH_CLIENT_KEY_EXCHANGE          -> 1 / Out_Alert_FATAL_UNKNOWN_PSK_IDENTITY
+          In_PSK_CLIENT_HELLO                -> 1 / Out_TIMEOUT
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 7 / Out_TIMEOUT
+          In_RSA_CLIENT_HELLO                -> 1 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 1 / Out_Alert_FATAL_UNKNOWN_PSK_IDENTITY
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_TIMEOUT
+          In_FINISHED                        -> 1 / Out_TIMEOUT
+          In_APPLICATION                     -> 5 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 1 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 1 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 1 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 1 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 1 / Out_TIMEOUT
+    6     In_ECDH_CLIENT_HELLO               -> 1 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 10 / Out_TIMEOUT
+          In_DH_CLIENT_HELLO                 -> 1 / Out_TIMEOUT
+          In_DH_CLIENT_KEY_EXCHANGE          -> 10 / Out_TIMEOUT
+          In_PSK_CLIENT_HELLO                -> 1 / Out_TIMEOUT
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 10 / Out_TIMEOUT
+          In_RSA_CLIENT_HELLO                -> 1 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 7 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_TIMEOUT
+          In_FINISHED                        -> 1 / Out_TIMEOUT
+          In_APPLICATION                     -> 6 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 1 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 1 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 1 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 1 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 1 / Out_TIMEOUT
+    7     In_ECDH_CLIENT_HELLO               -> 1 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 1 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_DH_CLIENT_HELLO                 -> 1 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_DH_CLIENT_KEY_EXCHANGE          -> 1 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_PSK_CLIENT_HELLO                -> 1 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 1 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_RSA_CLIENT_HELLO                -> 1 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 1 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CHANGE_CIPHER_SPEC              -> 8 / Out_TIMEOUT
+          In_FINISHED                        -> 1 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_APPLICATION                     -> 7 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 1 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_EMPTY_CERTIFICATE               -> 1 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CERTIFICATE_VERIFY              -> 1 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 1 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 1 / Out_TIMEOUT
+    8     In_ECDH_CLIENT_HELLO               -> 2 / Out_Alert_FATAL_DECODE_ERROR
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 2 / Out_Alert_FATAL_DECODE_ERROR
+          In_DH_CLIENT_HELLO                 -> 2 / Out_Alert_FATAL_DECODE_ERROR
+          In_DH_CLIENT_KEY_EXCHANGE          -> 2 / Out_Alert_FATAL_DECODE_ERROR
+          In_PSK_CLIENT_HELLO                -> 2 / Out_Alert_FATAL_DECODE_ERROR
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 2 / Out_Alert_FATAL_DECODE_ERROR
+          In_RSA_CLIENT_HELLO                -> 2 / Out_Alert_FATAL_DECODE_ERROR
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 2 / Out_Alert_FATAL_DECODE_ERROR
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_TIMEOUT
+          In_FINISHED                        -> 9 / Out_CHANGE_CIPHER_SPEC_FINISHED
+          In_APPLICATION                     -> 8 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 2 / Out_Alert_FATAL_DECODE_ERROR
+          In_EMPTY_CERTIFICATE               -> 2 / Out_Alert_FATAL_DECODE_ERROR
+          In_CERTIFICATE_VERIFY              -> 2 / Out_Alert_FATAL_DECODE_ERROR
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 2 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 2 / Out_TIMEOUT
+    9     In_ECDH_CLIENT_HELLO               -> 9 / Out_Alert_WARNING_NO_RENEGOTIATION
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 9 / Out_TIMEOUT
+          In_DH_CLIENT_HELLO                 -> 9 / Out_Alert_WARNING_NO_RENEGOTIATION
+          In_DH_CLIENT_KEY_EXCHANGE          -> 9 / Out_TIMEOUT
+          In_PSK_CLIENT_HELLO                -> 9 / Out_Alert_WARNING_NO_RENEGOTIATION
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 9 / Out_TIMEOUT
+          In_RSA_CLIENT_HELLO                -> 9 / Out_Alert_WARNING_NO_RENEGOTIATION
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 9 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_TIMEOUT
+          In_FINISHED                        -> 9 / Out_TIMEOUT
+          In_APPLICATION                     -> 9 / Out_APPLICATION
+          In_CERTIFICATE                     -> 9 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 9 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 9 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 2 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 2 / Out_TIMEOUT
+    10    In_ECDH_CLIENT_HELLO               -> 1 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 1 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_DH_CLIENT_HELLO                 -> 1 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_DH_CLIENT_KEY_EXCHANGE          -> 1 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_PSK_CLIENT_HELLO                -> 1 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 1 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_RSA_CLIENT_HELLO                -> 1 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 1 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CHANGE_CIPHER_SPEC              -> 11 / Out_TIMEOUT
+          In_FINISHED                        -> 1 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_APPLICATION                     -> 10 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 1 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_EMPTY_CERTIFICATE               -> 1 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CERTIFICATE_VERIFY              -> 1 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 1 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 1 / Out_TIMEOUT
+    11    In_ECDH_CLIENT_HELLO               -> 2 / Out_Alert_FATAL_BAD_RECORD_MAC
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 2 / Out_Alert_FATAL_BAD_RECORD_MAC
+          In_DH_CLIENT_HELLO                 -> 2 / Out_Alert_FATAL_BAD_RECORD_MAC
+          In_DH_CLIENT_KEY_EXCHANGE          -> 2 / Out_Alert_FATAL_BAD_RECORD_MAC
+          In_PSK_CLIENT_HELLO                -> 2 / Out_Alert_FATAL_BAD_RECORD_MAC
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 2 / Out_Alert_FATAL_BAD_RECORD_MAC
+          In_RSA_CLIENT_HELLO                -> 2 / Out_Alert_FATAL_BAD_RECORD_MAC
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 2 / Out_Alert_FATAL_BAD_RECORD_MAC
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_Alert_FATAL_BAD_RECORD_MAC
+          In_FINISHED                        -> 2 / Out_Alert_FATAL_BAD_RECORD_MAC
+          In_APPLICATION                     -> 11 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 2 / Out_Alert_FATAL_BAD_RECORD_MAC
+          In_EMPTY_CERTIFICATE               -> 2 / Out_Alert_FATAL_BAD_RECORD_MAC
+          In_CERTIFICATE_VERIFY              -> 2 / Out_Alert_FATAL_BAD_RECORD_MAC
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 2 / Out_Alert_FATAL_BAD_RECORD_MAC
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 2 / Out_Alert_FATAL_BAD_RECORD_MAC
+-}
 mbedtlsAllCertNone :: MealyAutomaton Int MbedtlsAllCertNoneInput MbedtlsAllCertNoneOutput
-mbedtlsAllCertNone = mkMealyAutomaton delta lambda (Set.fromList [0..11]) 0
+mbedtlsAllCertNone =
+    case mkMealyAutomatonTable 12 0 deltaTable lambdaTable of
+        Right m -> m
+        Left err -> error ("haal-gen: invalid transition table: " ++ err)
   where
-    delta 0 In_ECDH_CLIENT_HELLO = 1
-    delta 0 In_ECDH_CLIENT_KEY_EXCHANGE = 0
-    delta 0 In_DH_CLIENT_HELLO = 1
-    delta 0 In_DH_CLIENT_KEY_EXCHANGE = 0
-    delta 0 In_PSK_CLIENT_HELLO = 1
-    delta 0 In_PSK_CLIENT_KEY_EXCHANGE = 0
-    delta 0 In_RSA_CLIENT_HELLO = 1
-    delta 0 In_RSA_CLIENT_KEY_EXCHANGE = 0
-    delta 0 In_CHANGE_CIPHER_SPEC = 2
-    delta 0 In_FINISHED = 0
-    delta 0 In_APPLICATION = 0
-    delta 0 In_CERTIFICATE = 0
-    delta 0 In_EMPTY_CERTIFICATE = 0
-    delta 0 In_CERTIFICATE_VERIFY = 0
-    delta 0 In_Alert_WARNING_CLOSE_NOTIFY = 0
-    delta 0 In_Alert_FATAL_UNEXPECTED_MESSAGE = 0
-    delta 1 In_ECDH_CLIENT_HELLO = 3
-    delta 1 In_ECDH_CLIENT_KEY_EXCHANGE = 1
-    delta 1 In_DH_CLIENT_HELLO = 4
-    delta 1 In_DH_CLIENT_KEY_EXCHANGE = 1
-    delta 1 In_PSK_CLIENT_HELLO = 5
-    delta 1 In_PSK_CLIENT_KEY_EXCHANGE = 1
-    delta 1 In_RSA_CLIENT_HELLO = 6
-    delta 1 In_RSA_CLIENT_KEY_EXCHANGE = 1
-    delta 1 In_CHANGE_CIPHER_SPEC = 2
-    delta 1 In_FINISHED = 1
-    delta 1 In_APPLICATION = 1
-    delta 1 In_CERTIFICATE = 1
-    delta 1 In_EMPTY_CERTIFICATE = 1
-    delta 1 In_CERTIFICATE_VERIFY = 1
-    delta 1 In_Alert_WARNING_CLOSE_NOTIFY = 1
-    delta 1 In_Alert_FATAL_UNEXPECTED_MESSAGE = 1
-    delta 2 In_ECDH_CLIENT_HELLO = 2
-    delta 2 In_ECDH_CLIENT_KEY_EXCHANGE = 2
-    delta 2 In_DH_CLIENT_HELLO = 2
-    delta 2 In_DH_CLIENT_KEY_EXCHANGE = 2
-    delta 2 In_PSK_CLIENT_HELLO = 2
-    delta 2 In_PSK_CLIENT_KEY_EXCHANGE = 2
-    delta 2 In_RSA_CLIENT_HELLO = 2
-    delta 2 In_RSA_CLIENT_KEY_EXCHANGE = 2
-    delta 2 In_CHANGE_CIPHER_SPEC = 2
-    delta 2 In_FINISHED = 2
-    delta 2 In_APPLICATION = 2
-    delta 2 In_CERTIFICATE = 2
-    delta 2 In_EMPTY_CERTIFICATE = 2
-    delta 2 In_CERTIFICATE_VERIFY = 2
-    delta 2 In_Alert_WARNING_CLOSE_NOTIFY = 2
-    delta 2 In_Alert_FATAL_UNEXPECTED_MESSAGE = 2
-    delta 5 In_ECDH_CLIENT_HELLO = 1
-    delta 5 In_ECDH_CLIENT_KEY_EXCHANGE = 1
-    delta 5 In_DH_CLIENT_HELLO = 1
-    delta 5 In_DH_CLIENT_KEY_EXCHANGE = 1
-    delta 5 In_PSK_CLIENT_HELLO = 1
-    delta 5 In_PSK_CLIENT_KEY_EXCHANGE = 7
-    delta 5 In_RSA_CLIENT_HELLO = 1
-    delta 5 In_RSA_CLIENT_KEY_EXCHANGE = 1
-    delta 5 In_CHANGE_CIPHER_SPEC = 2
-    delta 5 In_FINISHED = 1
-    delta 5 In_APPLICATION = 5
-    delta 5 In_CERTIFICATE = 1
-    delta 5 In_EMPTY_CERTIFICATE = 1
-    delta 5 In_CERTIFICATE_VERIFY = 1
-    delta 5 In_Alert_WARNING_CLOSE_NOTIFY = 1
-    delta 5 In_Alert_FATAL_UNEXPECTED_MESSAGE = 1
-    delta 7 In_ECDH_CLIENT_HELLO = 1
-    delta 7 In_ECDH_CLIENT_KEY_EXCHANGE = 1
-    delta 7 In_DH_CLIENT_HELLO = 1
-    delta 7 In_DH_CLIENT_KEY_EXCHANGE = 1
-    delta 7 In_PSK_CLIENT_HELLO = 1
-    delta 7 In_PSK_CLIENT_KEY_EXCHANGE = 1
-    delta 7 In_RSA_CLIENT_HELLO = 1
-    delta 7 In_RSA_CLIENT_KEY_EXCHANGE = 1
-    delta 7 In_CHANGE_CIPHER_SPEC = 8
-    delta 7 In_FINISHED = 1
-    delta 7 In_APPLICATION = 7
-    delta 7 In_CERTIFICATE = 1
-    delta 7 In_EMPTY_CERTIFICATE = 1
-    delta 7 In_CERTIFICATE_VERIFY = 1
-    delta 7 In_Alert_WARNING_CLOSE_NOTIFY = 1
-    delta 7 In_Alert_FATAL_UNEXPECTED_MESSAGE = 1
-    delta 8 In_ECDH_CLIENT_HELLO = 2
-    delta 8 In_ECDH_CLIENT_KEY_EXCHANGE = 2
-    delta 8 In_DH_CLIENT_HELLO = 2
-    delta 8 In_DH_CLIENT_KEY_EXCHANGE = 2
-    delta 8 In_PSK_CLIENT_HELLO = 2
-    delta 8 In_PSK_CLIENT_KEY_EXCHANGE = 2
-    delta 8 In_RSA_CLIENT_HELLO = 2
-    delta 8 In_RSA_CLIENT_KEY_EXCHANGE = 2
-    delta 8 In_CHANGE_CIPHER_SPEC = 2
-    delta 8 In_FINISHED = 9
-    delta 8 In_APPLICATION = 8
-    delta 8 In_CERTIFICATE = 2
-    delta 8 In_EMPTY_CERTIFICATE = 2
-    delta 8 In_CERTIFICATE_VERIFY = 2
-    delta 8 In_Alert_WARNING_CLOSE_NOTIFY = 2
-    delta 8 In_Alert_FATAL_UNEXPECTED_MESSAGE = 2
-    delta 9 In_ECDH_CLIENT_HELLO = 9
-    delta 9 In_ECDH_CLIENT_KEY_EXCHANGE = 9
-    delta 9 In_DH_CLIENT_HELLO = 9
-    delta 9 In_DH_CLIENT_KEY_EXCHANGE = 9
-    delta 9 In_PSK_CLIENT_HELLO = 9
-    delta 9 In_PSK_CLIENT_KEY_EXCHANGE = 9
-    delta 9 In_RSA_CLIENT_HELLO = 9
-    delta 9 In_RSA_CLIENT_KEY_EXCHANGE = 9
-    delta 9 In_CHANGE_CIPHER_SPEC = 2
-    delta 9 In_FINISHED = 9
-    delta 9 In_APPLICATION = 9
-    delta 9 In_CERTIFICATE = 9
-    delta 9 In_EMPTY_CERTIFICATE = 9
-    delta 9 In_CERTIFICATE_VERIFY = 9
-    delta 9 In_Alert_WARNING_CLOSE_NOTIFY = 2
-    delta 9 In_Alert_FATAL_UNEXPECTED_MESSAGE = 2
-    delta 3 In_ECDH_CLIENT_HELLO = 1
-    delta 3 In_ECDH_CLIENT_KEY_EXCHANGE = 7
-    delta 3 In_DH_CLIENT_HELLO = 1
-    delta 3 In_DH_CLIENT_KEY_EXCHANGE = 1
-    delta 3 In_PSK_CLIENT_HELLO = 1
-    delta 3 In_PSK_CLIENT_KEY_EXCHANGE = 1
-    delta 3 In_RSA_CLIENT_HELLO = 1
-    delta 3 In_RSA_CLIENT_KEY_EXCHANGE = 1
-    delta 3 In_CHANGE_CIPHER_SPEC = 2
-    delta 3 In_FINISHED = 1
-    delta 3 In_APPLICATION = 3
-    delta 3 In_CERTIFICATE = 1
-    delta 3 In_EMPTY_CERTIFICATE = 1
-    delta 3 In_CERTIFICATE_VERIFY = 1
-    delta 3 In_Alert_WARNING_CLOSE_NOTIFY = 1
-    delta 3 In_Alert_FATAL_UNEXPECTED_MESSAGE = 1
-    delta 6 In_ECDH_CLIENT_HELLO = 1
-    delta 6 In_ECDH_CLIENT_KEY_EXCHANGE = 10
-    delta 6 In_DH_CLIENT_HELLO = 1
-    delta 6 In_DH_CLIENT_KEY_EXCHANGE = 10
-    delta 6 In_PSK_CLIENT_HELLO = 1
-    delta 6 In_PSK_CLIENT_KEY_EXCHANGE = 10
-    delta 6 In_RSA_CLIENT_HELLO = 1
-    delta 6 In_RSA_CLIENT_KEY_EXCHANGE = 7
-    delta 6 In_CHANGE_CIPHER_SPEC = 2
-    delta 6 In_FINISHED = 1
-    delta 6 In_APPLICATION = 6
-    delta 6 In_CERTIFICATE = 1
-    delta 6 In_EMPTY_CERTIFICATE = 1
-    delta 6 In_CERTIFICATE_VERIFY = 1
-    delta 6 In_Alert_WARNING_CLOSE_NOTIFY = 1
-    delta 6 In_Alert_FATAL_UNEXPECTED_MESSAGE = 1
-    delta 10 In_ECDH_CLIENT_HELLO = 1
-    delta 10 In_ECDH_CLIENT_KEY_EXCHANGE = 1
-    delta 10 In_DH_CLIENT_HELLO = 1
-    delta 10 In_DH_CLIENT_KEY_EXCHANGE = 1
-    delta 10 In_PSK_CLIENT_HELLO = 1
-    delta 10 In_PSK_CLIENT_KEY_EXCHANGE = 1
-    delta 10 In_RSA_CLIENT_HELLO = 1
-    delta 10 In_RSA_CLIENT_KEY_EXCHANGE = 1
-    delta 10 In_CHANGE_CIPHER_SPEC = 11
-    delta 10 In_FINISHED = 1
-    delta 10 In_APPLICATION = 10
-    delta 10 In_CERTIFICATE = 1
-    delta 10 In_EMPTY_CERTIFICATE = 1
-    delta 10 In_CERTIFICATE_VERIFY = 1
-    delta 10 In_Alert_WARNING_CLOSE_NOTIFY = 1
-    delta 10 In_Alert_FATAL_UNEXPECTED_MESSAGE = 1
-    delta 11 In_ECDH_CLIENT_HELLO = 2
-    delta 11 In_ECDH_CLIENT_KEY_EXCHANGE = 2
-    delta 11 In_DH_CLIENT_HELLO = 2
-    delta 11 In_DH_CLIENT_KEY_EXCHANGE = 2
-    delta 11 In_PSK_CLIENT_HELLO = 2
-    delta 11 In_PSK_CLIENT_KEY_EXCHANGE = 2
-    delta 11 In_RSA_CLIENT_HELLO = 2
-    delta 11 In_RSA_CLIENT_KEY_EXCHANGE = 2
-    delta 11 In_CHANGE_CIPHER_SPEC = 2
-    delta 11 In_FINISHED = 2
-    delta 11 In_APPLICATION = 11
-    delta 11 In_CERTIFICATE = 2
-    delta 11 In_EMPTY_CERTIFICATE = 2
-    delta 11 In_CERTIFICATE_VERIFY = 2
-    delta 11 In_Alert_WARNING_CLOSE_NOTIFY = 2
-    delta 11 In_Alert_FATAL_UNEXPECTED_MESSAGE = 2
-    delta 4 In_ECDH_CLIENT_HELLO = 1
-    delta 4 In_ECDH_CLIENT_KEY_EXCHANGE = 1
-    delta 4 In_DH_CLIENT_HELLO = 1
-    delta 4 In_DH_CLIENT_KEY_EXCHANGE = 7
-    delta 4 In_PSK_CLIENT_HELLO = 1
-    delta 4 In_PSK_CLIENT_KEY_EXCHANGE = 10
-    delta 4 In_RSA_CLIENT_HELLO = 1
-    delta 4 In_RSA_CLIENT_KEY_EXCHANGE = 10
-    delta 4 In_CHANGE_CIPHER_SPEC = 2
-    delta 4 In_FINISHED = 1
-    delta 4 In_APPLICATION = 4
-    delta 4 In_CERTIFICATE = 1
-    delta 4 In_EMPTY_CERTIFICATE = 1
-    delta 4 In_CERTIFICATE_VERIFY = 1
-    delta 4 In_Alert_WARNING_CLOSE_NOTIFY = 1
-    delta 4 In_Alert_FATAL_UNEXPECTED_MESSAGE = 1
-    delta _ _ = error "haal-gen: undefined transition"
-    lambda 0 In_ECDH_CLIENT_HELLO = Out_HELLO_VERIFY_REQUEST
-    lambda 0 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 0 In_DH_CLIENT_HELLO = Out_HELLO_VERIFY_REQUEST
-    lambda 0 In_DH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 0 In_PSK_CLIENT_HELLO = Out_HELLO_VERIFY_REQUEST
-    lambda 0 In_PSK_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 0 In_RSA_CLIENT_HELLO = Out_HELLO_VERIFY_REQUEST
-    lambda 0 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 0 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 0 In_FINISHED = Out_TIMEOUT
-    lambda 0 In_APPLICATION = Out_TIMEOUT
-    lambda 0 In_CERTIFICATE = Out_TIMEOUT
-    lambda 0 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 0 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 0 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 0 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 1 In_ECDH_CLIENT_HELLO = Out_SERVER_HELLO_CERTIFICATE_ECDHE_SERVER_KEY_EXCHANGE_SERVER_HELLO_DONE
-    lambda 1 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 1 In_DH_CLIENT_HELLO = Out_SERVER_HELLO_CERTIFICATE_DHE_SERVER_KEY_EXCHANGE_SERVER_HELLO_DONE
-    lambda 1 In_DH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 1 In_PSK_CLIENT_HELLO = Out_SERVER_HELLO_SERVER_HELLO_DONE
-    lambda 1 In_PSK_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 1 In_RSA_CLIENT_HELLO = Out_SERVER_HELLO_CERTIFICATE_SERVER_HELLO_DONE
-    lambda 1 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 1 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 1 In_FINISHED = Out_TIMEOUT
-    lambda 1 In_APPLICATION = Out_TIMEOUT
-    lambda 1 In_CERTIFICATE = Out_TIMEOUT
-    lambda 1 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 1 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 1 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 1 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 2 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 2 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 2 In_DH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 2 In_DH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 2 In_PSK_CLIENT_HELLO = Out_TIMEOUT
-    lambda 2 In_PSK_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 2 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 2 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 2 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 2 In_FINISHED = Out_TIMEOUT
-    lambda 2 In_APPLICATION = Out_TIMEOUT
-    lambda 2 In_CERTIFICATE = Out_TIMEOUT
-    lambda 2 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 2 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 2 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 2 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 5 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 5 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 5 In_DH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 5 In_DH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNKNOWN_PSK_IDENTITY
-    lambda 5 In_PSK_CLIENT_HELLO = Out_TIMEOUT
-    lambda 5 In_PSK_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 5 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 5 In_RSA_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNKNOWN_PSK_IDENTITY
-    lambda 5 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 5 In_FINISHED = Out_TIMEOUT
-    lambda 5 In_APPLICATION = Out_TIMEOUT
-    lambda 5 In_CERTIFICATE = Out_TIMEOUT
-    lambda 5 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 5 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 5 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 5 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 7 In_ECDH_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 7 In_ECDH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 7 In_DH_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 7 In_DH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 7 In_PSK_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 7 In_PSK_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 7 In_RSA_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 7 In_RSA_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 7 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 7 In_FINISHED = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 7 In_APPLICATION = Out_TIMEOUT
-    lambda 7 In_CERTIFICATE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 7 In_EMPTY_CERTIFICATE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 7 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 7 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 7 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 8 In_ECDH_CLIENT_HELLO = Out_Alert_FATAL_DECODE_ERROR
-    lambda 8 In_ECDH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_DECODE_ERROR
-    lambda 8 In_DH_CLIENT_HELLO = Out_Alert_FATAL_DECODE_ERROR
-    lambda 8 In_DH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_DECODE_ERROR
-    lambda 8 In_PSK_CLIENT_HELLO = Out_Alert_FATAL_DECODE_ERROR
-    lambda 8 In_PSK_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_DECODE_ERROR
-    lambda 8 In_RSA_CLIENT_HELLO = Out_Alert_FATAL_DECODE_ERROR
-    lambda 8 In_RSA_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_DECODE_ERROR
-    lambda 8 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 8 In_FINISHED = Out_CHANGE_CIPHER_SPEC_FINISHED
-    lambda 8 In_APPLICATION = Out_TIMEOUT
-    lambda 8 In_CERTIFICATE = Out_Alert_FATAL_DECODE_ERROR
-    lambda 8 In_EMPTY_CERTIFICATE = Out_Alert_FATAL_DECODE_ERROR
-    lambda 8 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_DECODE_ERROR
-    lambda 8 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 8 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 9 In_ECDH_CLIENT_HELLO = Out_Alert_WARNING_NO_RENEGOTIATION
-    lambda 9 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 9 In_DH_CLIENT_HELLO = Out_Alert_WARNING_NO_RENEGOTIATION
-    lambda 9 In_DH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 9 In_PSK_CLIENT_HELLO = Out_Alert_WARNING_NO_RENEGOTIATION
-    lambda 9 In_PSK_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 9 In_RSA_CLIENT_HELLO = Out_Alert_WARNING_NO_RENEGOTIATION
-    lambda 9 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 9 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 9 In_FINISHED = Out_TIMEOUT
-    lambda 9 In_APPLICATION = Out_APPLICATION
-    lambda 9 In_CERTIFICATE = Out_TIMEOUT
-    lambda 9 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 9 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 9 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 9 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 3 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 3 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 3 In_DH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 3 In_DH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 3 In_PSK_CLIENT_HELLO = Out_TIMEOUT
-    lambda 3 In_PSK_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 3 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 3 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 3 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 3 In_FINISHED = Out_TIMEOUT
-    lambda 3 In_APPLICATION = Out_TIMEOUT
-    lambda 3 In_CERTIFICATE = Out_TIMEOUT
-    lambda 3 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 3 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 3 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 3 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 6 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 6 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 6 In_DH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 6 In_DH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 6 In_PSK_CLIENT_HELLO = Out_TIMEOUT
-    lambda 6 In_PSK_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 6 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 6 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 6 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 6 In_FINISHED = Out_TIMEOUT
-    lambda 6 In_APPLICATION = Out_TIMEOUT
-    lambda 6 In_CERTIFICATE = Out_TIMEOUT
-    lambda 6 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 6 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 6 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 6 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 10 In_ECDH_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 10 In_ECDH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 10 In_DH_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 10 In_DH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 10 In_PSK_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 10 In_PSK_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 10 In_RSA_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 10 In_RSA_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 10 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 10 In_FINISHED = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 10 In_APPLICATION = Out_TIMEOUT
-    lambda 10 In_CERTIFICATE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 10 In_EMPTY_CERTIFICATE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 10 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 10 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 10 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 11 In_ECDH_CLIENT_HELLO = Out_Alert_FATAL_BAD_RECORD_MAC
-    lambda 11 In_ECDH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_BAD_RECORD_MAC
-    lambda 11 In_DH_CLIENT_HELLO = Out_Alert_FATAL_BAD_RECORD_MAC
-    lambda 11 In_DH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_BAD_RECORD_MAC
-    lambda 11 In_PSK_CLIENT_HELLO = Out_Alert_FATAL_BAD_RECORD_MAC
-    lambda 11 In_PSK_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_BAD_RECORD_MAC
-    lambda 11 In_RSA_CLIENT_HELLO = Out_Alert_FATAL_BAD_RECORD_MAC
-    lambda 11 In_RSA_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_BAD_RECORD_MAC
-    lambda 11 In_CHANGE_CIPHER_SPEC = Out_Alert_FATAL_BAD_RECORD_MAC
-    lambda 11 In_FINISHED = Out_Alert_FATAL_BAD_RECORD_MAC
-    lambda 11 In_APPLICATION = Out_TIMEOUT
-    lambda 11 In_CERTIFICATE = Out_Alert_FATAL_BAD_RECORD_MAC
-    lambda 11 In_EMPTY_CERTIFICATE = Out_Alert_FATAL_BAD_RECORD_MAC
-    lambda 11 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_BAD_RECORD_MAC
-    lambda 11 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_BAD_RECORD_MAC
-    lambda 11 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_Alert_FATAL_BAD_RECORD_MAC
-    lambda 4 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 4 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 4 In_DH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 4 In_DH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 4 In_PSK_CLIENT_HELLO = Out_TIMEOUT
-    lambda 4 In_PSK_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 4 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 4 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 4 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 4 In_FINISHED = Out_TIMEOUT
-    lambda 4 In_APPLICATION = Out_TIMEOUT
-    lambda 4 In_CERTIFICATE = Out_TIMEOUT
-    lambda 4 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 4 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 4 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 4 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda _ _ = error "haal-gen: undefined transition"
+    deltaTable =
+        "\1\0\1\0\1\0\1\0\2\0\0\0\0\0\0\0\
+        \\3\1\4\1\5\1\6\1\2\1\1\1\1\1\1\1\
+        \\2\2\2\2\2\2\2\2\2\2\2\2\2\2\2\2\
+        \\1\7\1\1\1\1\1\1\2\1\3\1\1\1\1\1\
+        \\1\1\1\7\1\10\1\10\2\1\4\1\1\1\1\1\
+        \\1\1\1\1\1\7\1\1\2\1\5\1\1\1\1\1\
+        \\1\10\1\10\1\10\1\7\2\1\6\1\1\1\1\1\
+        \\1\1\1\1\1\1\1\1\8\1\7\1\1\1\1\1\
+        \\2\2\2\2\2\2\2\2\2\9\8\2\2\2\2\2\
+        \\9\9\9\9\9\9\9\9\2\9\9\9\9\9\2\2\
+        \\1\1\1\1\1\1\1\1\11\1\10\1\1\1\1\1\
+        \\2\2\2\2\2\2\2\2\2\2\11\2\2\2\2\2"
+    lambdaTable =
+        "\0\1\0\1\0\1\0\1\1\1\1\1\1\1\1\1\
+        \\2\1\3\1\4\1\5\1\1\1\1\1\1\1\1\1\
+        \\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\
+        \\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\
+        \\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\
+        \\1\1\1\6\1\1\1\6\1\1\1\1\1\1\1\1\
+        \\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\
+        \\7\7\7\7\7\7\7\7\1\7\1\7\7\7\1\1\
+        \\8\8\8\8\8\8\8\8\1\9\1\8\8\8\1\1\
+        \\10\1\10\1\10\1\10\1\1\1\11\1\1\1\12\1\
+        \\7\7\7\7\7\7\7\7\1\7\1\7\7\7\1\1\
+        \\13\13\13\13\13\13\13\13\13\13\1\13\13\13\13\13"
diff --git a/src/Haal/Models/DTLS/MbedtlsAllCertNreq.hs b/src/Haal/Models/DTLS/MbedtlsAllCertNreq.hs
--- a/src/Haal/Models/DTLS/MbedtlsAllCertNreq.hs
+++ b/src/Haal/Models/DTLS/MbedtlsAllCertNreq.hs
@@ -5,687 +5,411 @@
     , mbedtlsAllCertNreq
     ) where
 
-import qualified Data.Set as Set
-import Haal.Automaton.MealyAutomaton (MealyAutomaton, mkMealyAutomaton)
-
-data MbedtlsAllCertNreqInput
-    = In_ECDH_CLIENT_HELLO
-    | In_ECDH_CLIENT_KEY_EXCHANGE
-    | In_DH_CLIENT_HELLO
-    | In_DH_CLIENT_KEY_EXCHANGE
-    | In_PSK_CLIENT_HELLO
-    | In_PSK_CLIENT_KEY_EXCHANGE
-    | In_RSA_CLIENT_HELLO
-    | In_RSA_CLIENT_KEY_EXCHANGE
-    | In_CHANGE_CIPHER_SPEC
-    | In_FINISHED
-    | In_APPLICATION
-    | In_CERTIFICATE
-    | In_EMPTY_CERTIFICATE
-    | In_CERTIFICATE_VERIFY
-    | In_Alert_WARNING_CLOSE_NOTIFY
-    | In_Alert_FATAL_UNEXPECTED_MESSAGE
-    deriving (Show, Eq, Ord, Enum, Bounded)
-
-data MbedtlsAllCertNreqOutput
-    = Out_HELLO_VERIFY_REQUEST
-    | Out_TIMEOUT
-    | Out_SERVER_HELLO_CERTIFICATE_ECDHE_SERVER_KEY_EXCHANGE_CERTIFICATE_REQUEST_SERVER_HELLO_DONE
-    | Out_SERVER_HELLO_CERTIFICATE_DHE_SERVER_KEY_EXCHANGE_CERTIFICATE_REQUEST_SERVER_HELLO_DONE
-    | Out_SERVER_HELLO_SERVER_HELLO_DONE
-    | Out_SERVER_HELLO_CERTIFICATE_CERTIFICATE_REQUEST_SERVER_HELLO_DONE
-    | Out_Alert_FATAL_DECODE_ERROR
-    | Out_Alert_FATAL_UNKNOWN_PSK_IDENTITY
-    | Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    | Out_CHANGE_CIPHER_SPEC_FINISHED
-    | Out_Alert_WARNING_NO_RENEGOTIATION
-    | Out_APPLICATION
-    | Out_Alert_WARNING_CLOSE_NOTIFY
-    | Out_Alert_FATAL_BAD_RECORD_MAC
-    deriving (Show, Eq, Ord, Enum, Bounded)
-
-mbedtlsAllCertNreq :: MealyAutomaton Int MbedtlsAllCertNreqInput MbedtlsAllCertNreqOutput
-mbedtlsAllCertNreq = mkMealyAutomaton delta lambda (Set.fromList [0..19]) 0
-  where
-    delta 0 In_ECDH_CLIENT_HELLO = 1
-    delta 0 In_ECDH_CLIENT_KEY_EXCHANGE = 0
-    delta 0 In_DH_CLIENT_HELLO = 1
-    delta 0 In_DH_CLIENT_KEY_EXCHANGE = 0
-    delta 0 In_PSK_CLIENT_HELLO = 1
-    delta 0 In_PSK_CLIENT_KEY_EXCHANGE = 0
-    delta 0 In_RSA_CLIENT_HELLO = 1
-    delta 0 In_RSA_CLIENT_KEY_EXCHANGE = 0
-    delta 0 In_CHANGE_CIPHER_SPEC = 2
-    delta 0 In_FINISHED = 0
-    delta 0 In_APPLICATION = 0
-    delta 0 In_CERTIFICATE = 0
-    delta 0 In_EMPTY_CERTIFICATE = 0
-    delta 0 In_CERTIFICATE_VERIFY = 0
-    delta 0 In_Alert_WARNING_CLOSE_NOTIFY = 0
-    delta 0 In_Alert_FATAL_UNEXPECTED_MESSAGE = 0
-    delta 1 In_ECDH_CLIENT_HELLO = 3
-    delta 1 In_ECDH_CLIENT_KEY_EXCHANGE = 1
-    delta 1 In_DH_CLIENT_HELLO = 4
-    delta 1 In_DH_CLIENT_KEY_EXCHANGE = 1
-    delta 1 In_PSK_CLIENT_HELLO = 5
-    delta 1 In_PSK_CLIENT_KEY_EXCHANGE = 1
-    delta 1 In_RSA_CLIENT_HELLO = 6
-    delta 1 In_RSA_CLIENT_KEY_EXCHANGE = 1
-    delta 1 In_CHANGE_CIPHER_SPEC = 2
-    delta 1 In_FINISHED = 1
-    delta 1 In_APPLICATION = 1
-    delta 1 In_CERTIFICATE = 1
-    delta 1 In_EMPTY_CERTIFICATE = 1
-    delta 1 In_CERTIFICATE_VERIFY = 1
-    delta 1 In_Alert_WARNING_CLOSE_NOTIFY = 1
-    delta 1 In_Alert_FATAL_UNEXPECTED_MESSAGE = 1
-    delta 6 In_ECDH_CLIENT_HELLO = 1
-    delta 6 In_ECDH_CLIENT_KEY_EXCHANGE = 1
-    delta 6 In_DH_CLIENT_HELLO = 1
-    delta 6 In_DH_CLIENT_KEY_EXCHANGE = 1
-    delta 6 In_PSK_CLIENT_HELLO = 1
-    delta 6 In_PSK_CLIENT_KEY_EXCHANGE = 1
-    delta 6 In_RSA_CLIENT_HELLO = 1
-    delta 6 In_RSA_CLIENT_KEY_EXCHANGE = 1
-    delta 6 In_CHANGE_CIPHER_SPEC = 2
-    delta 6 In_FINISHED = 1
-    delta 6 In_APPLICATION = 6
-    delta 6 In_CERTIFICATE = 7
-    delta 6 In_EMPTY_CERTIFICATE = 8
-    delta 6 In_CERTIFICATE_VERIFY = 1
-    delta 6 In_Alert_WARNING_CLOSE_NOTIFY = 1
-    delta 6 In_Alert_FATAL_UNEXPECTED_MESSAGE = 1
-    delta 2 In_ECDH_CLIENT_HELLO = 2
-    delta 2 In_ECDH_CLIENT_KEY_EXCHANGE = 2
-    delta 2 In_DH_CLIENT_HELLO = 2
-    delta 2 In_DH_CLIENT_KEY_EXCHANGE = 2
-    delta 2 In_PSK_CLIENT_HELLO = 2
-    delta 2 In_PSK_CLIENT_KEY_EXCHANGE = 2
-    delta 2 In_RSA_CLIENT_HELLO = 2
-    delta 2 In_RSA_CLIENT_KEY_EXCHANGE = 2
-    delta 2 In_CHANGE_CIPHER_SPEC = 2
-    delta 2 In_FINISHED = 2
-    delta 2 In_APPLICATION = 2
-    delta 2 In_CERTIFICATE = 2
-    delta 2 In_EMPTY_CERTIFICATE = 2
-    delta 2 In_CERTIFICATE_VERIFY = 2
-    delta 2 In_Alert_WARNING_CLOSE_NOTIFY = 2
-    delta 2 In_Alert_FATAL_UNEXPECTED_MESSAGE = 2
-    delta 5 In_ECDH_CLIENT_HELLO = 1
-    delta 5 In_ECDH_CLIENT_KEY_EXCHANGE = 1
-    delta 5 In_DH_CLIENT_HELLO = 1
-    delta 5 In_DH_CLIENT_KEY_EXCHANGE = 1
-    delta 5 In_PSK_CLIENT_HELLO = 1
-    delta 5 In_PSK_CLIENT_KEY_EXCHANGE = 9
-    delta 5 In_RSA_CLIENT_HELLO = 1
-    delta 5 In_RSA_CLIENT_KEY_EXCHANGE = 1
-    delta 5 In_CHANGE_CIPHER_SPEC = 2
-    delta 5 In_FINISHED = 1
-    delta 5 In_APPLICATION = 5
-    delta 5 In_CERTIFICATE = 1
-    delta 5 In_EMPTY_CERTIFICATE = 1
-    delta 5 In_CERTIFICATE_VERIFY = 1
-    delta 5 In_Alert_WARNING_CLOSE_NOTIFY = 1
-    delta 5 In_Alert_FATAL_UNEXPECTED_MESSAGE = 1
-    delta 9 In_ECDH_CLIENT_HELLO = 1
-    delta 9 In_ECDH_CLIENT_KEY_EXCHANGE = 1
-    delta 9 In_DH_CLIENT_HELLO = 1
-    delta 9 In_DH_CLIENT_KEY_EXCHANGE = 1
-    delta 9 In_PSK_CLIENT_HELLO = 1
-    delta 9 In_PSK_CLIENT_KEY_EXCHANGE = 1
-    delta 9 In_RSA_CLIENT_HELLO = 1
-    delta 9 In_RSA_CLIENT_KEY_EXCHANGE = 1
-    delta 9 In_CHANGE_CIPHER_SPEC = 10
-    delta 9 In_FINISHED = 1
-    delta 9 In_APPLICATION = 9
-    delta 9 In_CERTIFICATE = 1
-    delta 9 In_EMPTY_CERTIFICATE = 1
-    delta 9 In_CERTIFICATE_VERIFY = 1
-    delta 9 In_Alert_WARNING_CLOSE_NOTIFY = 1
-    delta 9 In_Alert_FATAL_UNEXPECTED_MESSAGE = 1
-    delta 8 In_ECDH_CLIENT_HELLO = 1
-    delta 8 In_ECDH_CLIENT_KEY_EXCHANGE = 11
-    delta 8 In_DH_CLIENT_HELLO = 1
-    delta 8 In_DH_CLIENT_KEY_EXCHANGE = 11
-    delta 8 In_PSK_CLIENT_HELLO = 1
-    delta 8 In_PSK_CLIENT_KEY_EXCHANGE = 11
-    delta 8 In_RSA_CLIENT_HELLO = 1
-    delta 8 In_RSA_CLIENT_KEY_EXCHANGE = 9
-    delta 8 In_CHANGE_CIPHER_SPEC = 2
-    delta 8 In_FINISHED = 1
-    delta 8 In_APPLICATION = 8
-    delta 8 In_CERTIFICATE = 1
-    delta 8 In_EMPTY_CERTIFICATE = 1
-    delta 8 In_CERTIFICATE_VERIFY = 1
-    delta 8 In_Alert_WARNING_CLOSE_NOTIFY = 1
-    delta 8 In_Alert_FATAL_UNEXPECTED_MESSAGE = 1
-    delta 3 In_ECDH_CLIENT_HELLO = 1
-    delta 3 In_ECDH_CLIENT_KEY_EXCHANGE = 1
-    delta 3 In_DH_CLIENT_HELLO = 1
-    delta 3 In_DH_CLIENT_KEY_EXCHANGE = 1
-    delta 3 In_PSK_CLIENT_HELLO = 1
-    delta 3 In_PSK_CLIENT_KEY_EXCHANGE = 1
-    delta 3 In_RSA_CLIENT_HELLO = 1
-    delta 3 In_RSA_CLIENT_KEY_EXCHANGE = 1
-    delta 3 In_CHANGE_CIPHER_SPEC = 2
-    delta 3 In_FINISHED = 1
-    delta 3 In_APPLICATION = 3
-    delta 3 In_CERTIFICATE = 12
-    delta 3 In_EMPTY_CERTIFICATE = 13
-    delta 3 In_CERTIFICATE_VERIFY = 1
-    delta 3 In_Alert_WARNING_CLOSE_NOTIFY = 1
-    delta 3 In_Alert_FATAL_UNEXPECTED_MESSAGE = 1
-    delta 12 In_ECDH_CLIENT_HELLO = 1
-    delta 12 In_ECDH_CLIENT_KEY_EXCHANGE = 14
-    delta 12 In_DH_CLIENT_HELLO = 1
-    delta 12 In_DH_CLIENT_KEY_EXCHANGE = 1
-    delta 12 In_PSK_CLIENT_HELLO = 1
-    delta 12 In_PSK_CLIENT_KEY_EXCHANGE = 1
-    delta 12 In_RSA_CLIENT_HELLO = 1
-    delta 12 In_RSA_CLIENT_KEY_EXCHANGE = 1
-    delta 12 In_CHANGE_CIPHER_SPEC = 2
-    delta 12 In_FINISHED = 1
-    delta 12 In_APPLICATION = 12
-    delta 12 In_CERTIFICATE = 1
-    delta 12 In_EMPTY_CERTIFICATE = 1
-    delta 12 In_CERTIFICATE_VERIFY = 1
-    delta 12 In_Alert_WARNING_CLOSE_NOTIFY = 1
-    delta 12 In_Alert_FATAL_UNEXPECTED_MESSAGE = 1
-    delta 14 In_ECDH_CLIENT_HELLO = 1
-    delta 14 In_ECDH_CLIENT_KEY_EXCHANGE = 1
-    delta 14 In_DH_CLIENT_HELLO = 1
-    delta 14 In_DH_CLIENT_KEY_EXCHANGE = 1
-    delta 14 In_PSK_CLIENT_HELLO = 1
-    delta 14 In_PSK_CLIENT_KEY_EXCHANGE = 1
-    delta 14 In_RSA_CLIENT_HELLO = 1
-    delta 14 In_RSA_CLIENT_KEY_EXCHANGE = 1
-    delta 14 In_CHANGE_CIPHER_SPEC = 2
-    delta 14 In_FINISHED = 1
-    delta 14 In_APPLICATION = 14
-    delta 14 In_CERTIFICATE = 1
-    delta 14 In_EMPTY_CERTIFICATE = 1
-    delta 14 In_CERTIFICATE_VERIFY = 9
-    delta 14 In_Alert_WARNING_CLOSE_NOTIFY = 1
-    delta 14 In_Alert_FATAL_UNEXPECTED_MESSAGE = 1
-    delta 7 In_ECDH_CLIENT_HELLO = 1
-    delta 7 In_ECDH_CLIENT_KEY_EXCHANGE = 15
-    delta 7 In_DH_CLIENT_HELLO = 1
-    delta 7 In_DH_CLIENT_KEY_EXCHANGE = 15
-    delta 7 In_PSK_CLIENT_HELLO = 1
-    delta 7 In_PSK_CLIENT_KEY_EXCHANGE = 15
-    delta 7 In_RSA_CLIENT_HELLO = 1
-    delta 7 In_RSA_CLIENT_KEY_EXCHANGE = 14
-    delta 7 In_CHANGE_CIPHER_SPEC = 2
-    delta 7 In_FINISHED = 1
-    delta 7 In_APPLICATION = 7
-    delta 7 In_CERTIFICATE = 1
-    delta 7 In_EMPTY_CERTIFICATE = 1
-    delta 7 In_CERTIFICATE_VERIFY = 1
-    delta 7 In_Alert_WARNING_CLOSE_NOTIFY = 1
-    delta 7 In_Alert_FATAL_UNEXPECTED_MESSAGE = 1
-    delta 10 In_ECDH_CLIENT_HELLO = 2
-    delta 10 In_ECDH_CLIENT_KEY_EXCHANGE = 2
-    delta 10 In_DH_CLIENT_HELLO = 2
-    delta 10 In_DH_CLIENT_KEY_EXCHANGE = 2
-    delta 10 In_PSK_CLIENT_HELLO = 2
-    delta 10 In_PSK_CLIENT_KEY_EXCHANGE = 2
-    delta 10 In_RSA_CLIENT_HELLO = 2
-    delta 10 In_RSA_CLIENT_KEY_EXCHANGE = 2
-    delta 10 In_CHANGE_CIPHER_SPEC = 2
-    delta 10 In_FINISHED = 16
-    delta 10 In_APPLICATION = 10
-    delta 10 In_CERTIFICATE = 2
-    delta 10 In_EMPTY_CERTIFICATE = 2
-    delta 10 In_CERTIFICATE_VERIFY = 2
-    delta 10 In_Alert_WARNING_CLOSE_NOTIFY = 2
-    delta 10 In_Alert_FATAL_UNEXPECTED_MESSAGE = 2
-    delta 16 In_ECDH_CLIENT_HELLO = 16
-    delta 16 In_ECDH_CLIENT_KEY_EXCHANGE = 16
-    delta 16 In_DH_CLIENT_HELLO = 16
-    delta 16 In_DH_CLIENT_KEY_EXCHANGE = 16
-    delta 16 In_PSK_CLIENT_HELLO = 16
-    delta 16 In_PSK_CLIENT_KEY_EXCHANGE = 16
-    delta 16 In_RSA_CLIENT_HELLO = 16
-    delta 16 In_RSA_CLIENT_KEY_EXCHANGE = 16
-    delta 16 In_CHANGE_CIPHER_SPEC = 2
-    delta 16 In_FINISHED = 16
-    delta 16 In_APPLICATION = 16
-    delta 16 In_CERTIFICATE = 16
-    delta 16 In_EMPTY_CERTIFICATE = 16
-    delta 16 In_CERTIFICATE_VERIFY = 16
-    delta 16 In_Alert_WARNING_CLOSE_NOTIFY = 2
-    delta 16 In_Alert_FATAL_UNEXPECTED_MESSAGE = 2
-    delta 13 In_ECDH_CLIENT_HELLO = 1
-    delta 13 In_ECDH_CLIENT_KEY_EXCHANGE = 9
-    delta 13 In_DH_CLIENT_HELLO = 1
-    delta 13 In_DH_CLIENT_KEY_EXCHANGE = 1
-    delta 13 In_PSK_CLIENT_HELLO = 1
-    delta 13 In_PSK_CLIENT_KEY_EXCHANGE = 1
-    delta 13 In_RSA_CLIENT_HELLO = 1
-    delta 13 In_RSA_CLIENT_KEY_EXCHANGE = 1
-    delta 13 In_CHANGE_CIPHER_SPEC = 2
-    delta 13 In_FINISHED = 1
-    delta 13 In_APPLICATION = 13
-    delta 13 In_CERTIFICATE = 1
-    delta 13 In_EMPTY_CERTIFICATE = 1
-    delta 13 In_CERTIFICATE_VERIFY = 1
-    delta 13 In_Alert_WARNING_CLOSE_NOTIFY = 1
-    delta 13 In_Alert_FATAL_UNEXPECTED_MESSAGE = 1
-    delta 4 In_ECDH_CLIENT_HELLO = 1
-    delta 4 In_ECDH_CLIENT_KEY_EXCHANGE = 1
-    delta 4 In_DH_CLIENT_HELLO = 1
-    delta 4 In_DH_CLIENT_KEY_EXCHANGE = 1
-    delta 4 In_PSK_CLIENT_HELLO = 1
-    delta 4 In_PSK_CLIENT_KEY_EXCHANGE = 1
-    delta 4 In_RSA_CLIENT_HELLO = 1
-    delta 4 In_RSA_CLIENT_KEY_EXCHANGE = 1
-    delta 4 In_CHANGE_CIPHER_SPEC = 2
-    delta 4 In_FINISHED = 1
-    delta 4 In_APPLICATION = 4
-    delta 4 In_CERTIFICATE = 17
-    delta 4 In_EMPTY_CERTIFICATE = 18
-    delta 4 In_CERTIFICATE_VERIFY = 1
-    delta 4 In_Alert_WARNING_CLOSE_NOTIFY = 1
-    delta 4 In_Alert_FATAL_UNEXPECTED_MESSAGE = 1
-    delta 17 In_ECDH_CLIENT_HELLO = 1
-    delta 17 In_ECDH_CLIENT_KEY_EXCHANGE = 1
-    delta 17 In_DH_CLIENT_HELLO = 1
-    delta 17 In_DH_CLIENT_KEY_EXCHANGE = 14
-    delta 17 In_PSK_CLIENT_HELLO = 1
-    delta 17 In_PSK_CLIENT_KEY_EXCHANGE = 15
-    delta 17 In_RSA_CLIENT_HELLO = 1
-    delta 17 In_RSA_CLIENT_KEY_EXCHANGE = 15
-    delta 17 In_CHANGE_CIPHER_SPEC = 2
-    delta 17 In_FINISHED = 1
-    delta 17 In_APPLICATION = 17
-    delta 17 In_CERTIFICATE = 1
-    delta 17 In_EMPTY_CERTIFICATE = 1
-    delta 17 In_CERTIFICATE_VERIFY = 1
-    delta 17 In_Alert_WARNING_CLOSE_NOTIFY = 1
-    delta 17 In_Alert_FATAL_UNEXPECTED_MESSAGE = 1
-    delta 18 In_ECDH_CLIENT_HELLO = 1
-    delta 18 In_ECDH_CLIENT_KEY_EXCHANGE = 1
-    delta 18 In_DH_CLIENT_HELLO = 1
-    delta 18 In_DH_CLIENT_KEY_EXCHANGE = 9
-    delta 18 In_PSK_CLIENT_HELLO = 1
-    delta 18 In_PSK_CLIENT_KEY_EXCHANGE = 11
-    delta 18 In_RSA_CLIENT_HELLO = 1
-    delta 18 In_RSA_CLIENT_KEY_EXCHANGE = 11
-    delta 18 In_CHANGE_CIPHER_SPEC = 2
-    delta 18 In_FINISHED = 1
-    delta 18 In_APPLICATION = 18
-    delta 18 In_CERTIFICATE = 1
-    delta 18 In_EMPTY_CERTIFICATE = 1
-    delta 18 In_CERTIFICATE_VERIFY = 1
-    delta 18 In_Alert_WARNING_CLOSE_NOTIFY = 1
-    delta 18 In_Alert_FATAL_UNEXPECTED_MESSAGE = 1
-    delta 11 In_ECDH_CLIENT_HELLO = 1
-    delta 11 In_ECDH_CLIENT_KEY_EXCHANGE = 1
-    delta 11 In_DH_CLIENT_HELLO = 1
-    delta 11 In_DH_CLIENT_KEY_EXCHANGE = 1
-    delta 11 In_PSK_CLIENT_HELLO = 1
-    delta 11 In_PSK_CLIENT_KEY_EXCHANGE = 1
-    delta 11 In_RSA_CLIENT_HELLO = 1
-    delta 11 In_RSA_CLIENT_KEY_EXCHANGE = 1
-    delta 11 In_CHANGE_CIPHER_SPEC = 19
-    delta 11 In_FINISHED = 1
-    delta 11 In_APPLICATION = 11
-    delta 11 In_CERTIFICATE = 1
-    delta 11 In_EMPTY_CERTIFICATE = 1
-    delta 11 In_CERTIFICATE_VERIFY = 1
-    delta 11 In_Alert_WARNING_CLOSE_NOTIFY = 1
-    delta 11 In_Alert_FATAL_UNEXPECTED_MESSAGE = 1
-    delta 19 In_ECDH_CLIENT_HELLO = 2
-    delta 19 In_ECDH_CLIENT_KEY_EXCHANGE = 2
-    delta 19 In_DH_CLIENT_HELLO = 2
-    delta 19 In_DH_CLIENT_KEY_EXCHANGE = 2
-    delta 19 In_PSK_CLIENT_HELLO = 2
-    delta 19 In_PSK_CLIENT_KEY_EXCHANGE = 2
-    delta 19 In_RSA_CLIENT_HELLO = 2
-    delta 19 In_RSA_CLIENT_KEY_EXCHANGE = 2
-    delta 19 In_CHANGE_CIPHER_SPEC = 2
-    delta 19 In_FINISHED = 2
-    delta 19 In_APPLICATION = 19
-    delta 19 In_CERTIFICATE = 2
-    delta 19 In_EMPTY_CERTIFICATE = 2
-    delta 19 In_CERTIFICATE_VERIFY = 2
-    delta 19 In_Alert_WARNING_CLOSE_NOTIFY = 2
-    delta 19 In_Alert_FATAL_UNEXPECTED_MESSAGE = 2
-    delta 15 In_ECDH_CLIENT_HELLO = 1
-    delta 15 In_ECDH_CLIENT_KEY_EXCHANGE = 1
-    delta 15 In_DH_CLIENT_HELLO = 1
-    delta 15 In_DH_CLIENT_KEY_EXCHANGE = 1
-    delta 15 In_PSK_CLIENT_HELLO = 1
-    delta 15 In_PSK_CLIENT_KEY_EXCHANGE = 1
-    delta 15 In_RSA_CLIENT_HELLO = 1
-    delta 15 In_RSA_CLIENT_KEY_EXCHANGE = 1
-    delta 15 In_CHANGE_CIPHER_SPEC = 2
-    delta 15 In_FINISHED = 1
-    delta 15 In_APPLICATION = 15
-    delta 15 In_CERTIFICATE = 1
-    delta 15 In_EMPTY_CERTIFICATE = 1
-    delta 15 In_CERTIFICATE_VERIFY = 11
-    delta 15 In_Alert_WARNING_CLOSE_NOTIFY = 1
-    delta 15 In_Alert_FATAL_UNEXPECTED_MESSAGE = 1
-    delta _ _ = error "haal-gen: undefined transition"
-    lambda 0 In_ECDH_CLIENT_HELLO = Out_HELLO_VERIFY_REQUEST
-    lambda 0 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 0 In_DH_CLIENT_HELLO = Out_HELLO_VERIFY_REQUEST
-    lambda 0 In_DH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 0 In_PSK_CLIENT_HELLO = Out_HELLO_VERIFY_REQUEST
-    lambda 0 In_PSK_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 0 In_RSA_CLIENT_HELLO = Out_HELLO_VERIFY_REQUEST
-    lambda 0 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 0 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 0 In_FINISHED = Out_TIMEOUT
-    lambda 0 In_APPLICATION = Out_TIMEOUT
-    lambda 0 In_CERTIFICATE = Out_TIMEOUT
-    lambda 0 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 0 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 0 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 0 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 1 In_ECDH_CLIENT_HELLO = Out_SERVER_HELLO_CERTIFICATE_ECDHE_SERVER_KEY_EXCHANGE_CERTIFICATE_REQUEST_SERVER_HELLO_DONE
-    lambda 1 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 1 In_DH_CLIENT_HELLO = Out_SERVER_HELLO_CERTIFICATE_DHE_SERVER_KEY_EXCHANGE_CERTIFICATE_REQUEST_SERVER_HELLO_DONE
-    lambda 1 In_DH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 1 In_PSK_CLIENT_HELLO = Out_SERVER_HELLO_SERVER_HELLO_DONE
-    lambda 1 In_PSK_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 1 In_RSA_CLIENT_HELLO = Out_SERVER_HELLO_CERTIFICATE_CERTIFICATE_REQUEST_SERVER_HELLO_DONE
-    lambda 1 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 1 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 1 In_FINISHED = Out_TIMEOUT
-    lambda 1 In_APPLICATION = Out_TIMEOUT
-    lambda 1 In_CERTIFICATE = Out_TIMEOUT
-    lambda 1 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 1 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 1 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 1 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 6 In_ECDH_CLIENT_HELLO = Out_Alert_FATAL_DECODE_ERROR
-    lambda 6 In_ECDH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_DECODE_ERROR
-    lambda 6 In_DH_CLIENT_HELLO = Out_Alert_FATAL_DECODE_ERROR
-    lambda 6 In_DH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_DECODE_ERROR
-    lambda 6 In_PSK_CLIENT_HELLO = Out_Alert_FATAL_DECODE_ERROR
-    lambda 6 In_PSK_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_DECODE_ERROR
-    lambda 6 In_RSA_CLIENT_HELLO = Out_Alert_FATAL_DECODE_ERROR
-    lambda 6 In_RSA_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_DECODE_ERROR
-    lambda 6 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 6 In_FINISHED = Out_Alert_FATAL_DECODE_ERROR
-    lambda 6 In_APPLICATION = Out_TIMEOUT
-    lambda 6 In_CERTIFICATE = Out_TIMEOUT
-    lambda 6 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 6 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_DECODE_ERROR
-    lambda 6 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 6 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 2 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 2 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 2 In_DH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 2 In_DH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 2 In_PSK_CLIENT_HELLO = Out_TIMEOUT
-    lambda 2 In_PSK_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 2 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 2 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 2 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 2 In_FINISHED = Out_TIMEOUT
-    lambda 2 In_APPLICATION = Out_TIMEOUT
-    lambda 2 In_CERTIFICATE = Out_TIMEOUT
-    lambda 2 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 2 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 2 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 2 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 5 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 5 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 5 In_DH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 5 In_DH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNKNOWN_PSK_IDENTITY
-    lambda 5 In_PSK_CLIENT_HELLO = Out_TIMEOUT
-    lambda 5 In_PSK_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 5 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 5 In_RSA_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNKNOWN_PSK_IDENTITY
-    lambda 5 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 5 In_FINISHED = Out_TIMEOUT
-    lambda 5 In_APPLICATION = Out_TIMEOUT
-    lambda 5 In_CERTIFICATE = Out_TIMEOUT
-    lambda 5 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 5 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 5 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 5 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 9 In_ECDH_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 9 In_ECDH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 9 In_DH_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 9 In_DH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 9 In_PSK_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 9 In_PSK_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 9 In_RSA_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 9 In_RSA_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 9 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 9 In_FINISHED = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 9 In_APPLICATION = Out_TIMEOUT
-    lambda 9 In_CERTIFICATE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 9 In_EMPTY_CERTIFICATE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 9 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 9 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 9 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 8 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 8 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 8 In_DH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 8 In_DH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 8 In_PSK_CLIENT_HELLO = Out_TIMEOUT
-    lambda 8 In_PSK_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 8 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 8 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 8 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 8 In_FINISHED = Out_TIMEOUT
-    lambda 8 In_APPLICATION = Out_TIMEOUT
-    lambda 8 In_CERTIFICATE = Out_TIMEOUT
-    lambda 8 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 8 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 8 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 8 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 3 In_ECDH_CLIENT_HELLO = Out_Alert_FATAL_DECODE_ERROR
-    lambda 3 In_ECDH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_DECODE_ERROR
-    lambda 3 In_DH_CLIENT_HELLO = Out_Alert_FATAL_DECODE_ERROR
-    lambda 3 In_DH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_DECODE_ERROR
-    lambda 3 In_PSK_CLIENT_HELLO = Out_Alert_FATAL_DECODE_ERROR
-    lambda 3 In_PSK_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_DECODE_ERROR
-    lambda 3 In_RSA_CLIENT_HELLO = Out_Alert_FATAL_DECODE_ERROR
-    lambda 3 In_RSA_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_DECODE_ERROR
-    lambda 3 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 3 In_FINISHED = Out_Alert_FATAL_DECODE_ERROR
-    lambda 3 In_APPLICATION = Out_TIMEOUT
-    lambda 3 In_CERTIFICATE = Out_TIMEOUT
-    lambda 3 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 3 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_DECODE_ERROR
-    lambda 3 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 3 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 12 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 12 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 12 In_DH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 12 In_DH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 12 In_PSK_CLIENT_HELLO = Out_TIMEOUT
-    lambda 12 In_PSK_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 12 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 12 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 12 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 12 In_FINISHED = Out_TIMEOUT
-    lambda 12 In_APPLICATION = Out_TIMEOUT
-    lambda 12 In_CERTIFICATE = Out_TIMEOUT
-    lambda 12 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 12 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 12 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 12 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 14 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 14 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 14 In_DH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 14 In_DH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 14 In_PSK_CLIENT_HELLO = Out_TIMEOUT
-    lambda 14 In_PSK_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 14 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 14 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 14 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 14 In_FINISHED = Out_TIMEOUT
-    lambda 14 In_APPLICATION = Out_TIMEOUT
-    lambda 14 In_CERTIFICATE = Out_TIMEOUT
-    lambda 14 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 14 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 14 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 14 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 7 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 7 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 7 In_DH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 7 In_DH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 7 In_PSK_CLIENT_HELLO = Out_TIMEOUT
-    lambda 7 In_PSK_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 7 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 7 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 7 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 7 In_FINISHED = Out_TIMEOUT
-    lambda 7 In_APPLICATION = Out_TIMEOUT
-    lambda 7 In_CERTIFICATE = Out_TIMEOUT
-    lambda 7 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 7 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 7 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 7 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 10 In_ECDH_CLIENT_HELLO = Out_Alert_FATAL_DECODE_ERROR
-    lambda 10 In_ECDH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_DECODE_ERROR
-    lambda 10 In_DH_CLIENT_HELLO = Out_Alert_FATAL_DECODE_ERROR
-    lambda 10 In_DH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_DECODE_ERROR
-    lambda 10 In_PSK_CLIENT_HELLO = Out_Alert_FATAL_DECODE_ERROR
-    lambda 10 In_PSK_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_DECODE_ERROR
-    lambda 10 In_RSA_CLIENT_HELLO = Out_Alert_FATAL_DECODE_ERROR
-    lambda 10 In_RSA_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_DECODE_ERROR
-    lambda 10 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 10 In_FINISHED = Out_CHANGE_CIPHER_SPEC_FINISHED
-    lambda 10 In_APPLICATION = Out_TIMEOUT
-    lambda 10 In_CERTIFICATE = Out_Alert_FATAL_DECODE_ERROR
-    lambda 10 In_EMPTY_CERTIFICATE = Out_Alert_FATAL_DECODE_ERROR
-    lambda 10 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_DECODE_ERROR
-    lambda 10 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 10 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 16 In_ECDH_CLIENT_HELLO = Out_Alert_WARNING_NO_RENEGOTIATION
-    lambda 16 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 16 In_DH_CLIENT_HELLO = Out_Alert_WARNING_NO_RENEGOTIATION
-    lambda 16 In_DH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 16 In_PSK_CLIENT_HELLO = Out_Alert_WARNING_NO_RENEGOTIATION
-    lambda 16 In_PSK_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 16 In_RSA_CLIENT_HELLO = Out_Alert_WARNING_NO_RENEGOTIATION
-    lambda 16 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 16 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 16 In_FINISHED = Out_TIMEOUT
-    lambda 16 In_APPLICATION = Out_APPLICATION
-    lambda 16 In_CERTIFICATE = Out_TIMEOUT
-    lambda 16 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 16 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 16 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 16 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 13 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 13 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 13 In_DH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 13 In_DH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 13 In_PSK_CLIENT_HELLO = Out_TIMEOUT
-    lambda 13 In_PSK_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 13 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 13 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 13 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 13 In_FINISHED = Out_TIMEOUT
-    lambda 13 In_APPLICATION = Out_TIMEOUT
-    lambda 13 In_CERTIFICATE = Out_TIMEOUT
-    lambda 13 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 13 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 13 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 13 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 4 In_ECDH_CLIENT_HELLO = Out_Alert_FATAL_DECODE_ERROR
-    lambda 4 In_ECDH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_DECODE_ERROR
-    lambda 4 In_DH_CLIENT_HELLO = Out_Alert_FATAL_DECODE_ERROR
-    lambda 4 In_DH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_DECODE_ERROR
-    lambda 4 In_PSK_CLIENT_HELLO = Out_Alert_FATAL_DECODE_ERROR
-    lambda 4 In_PSK_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_DECODE_ERROR
-    lambda 4 In_RSA_CLIENT_HELLO = Out_Alert_FATAL_DECODE_ERROR
-    lambda 4 In_RSA_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_DECODE_ERROR
-    lambda 4 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 4 In_FINISHED = Out_Alert_FATAL_DECODE_ERROR
-    lambda 4 In_APPLICATION = Out_TIMEOUT
-    lambda 4 In_CERTIFICATE = Out_TIMEOUT
-    lambda 4 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 4 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_DECODE_ERROR
-    lambda 4 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 4 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 17 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 17 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 17 In_DH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 17 In_DH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 17 In_PSK_CLIENT_HELLO = Out_TIMEOUT
-    lambda 17 In_PSK_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 17 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 17 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 17 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 17 In_FINISHED = Out_TIMEOUT
-    lambda 17 In_APPLICATION = Out_TIMEOUT
-    lambda 17 In_CERTIFICATE = Out_TIMEOUT
-    lambda 17 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 17 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 17 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 17 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 18 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 18 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 18 In_DH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 18 In_DH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 18 In_PSK_CLIENT_HELLO = Out_TIMEOUT
-    lambda 18 In_PSK_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 18 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 18 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 18 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 18 In_FINISHED = Out_TIMEOUT
-    lambda 18 In_APPLICATION = Out_TIMEOUT
-    lambda 18 In_CERTIFICATE = Out_TIMEOUT
-    lambda 18 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 18 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 18 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 18 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 11 In_ECDH_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 11 In_ECDH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 11 In_DH_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 11 In_DH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 11 In_PSK_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 11 In_PSK_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 11 In_RSA_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 11 In_RSA_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 11 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 11 In_FINISHED = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 11 In_APPLICATION = Out_TIMEOUT
-    lambda 11 In_CERTIFICATE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 11 In_EMPTY_CERTIFICATE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 11 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 11 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 11 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 19 In_ECDH_CLIENT_HELLO = Out_Alert_FATAL_BAD_RECORD_MAC
-    lambda 19 In_ECDH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_BAD_RECORD_MAC
-    lambda 19 In_DH_CLIENT_HELLO = Out_Alert_FATAL_BAD_RECORD_MAC
-    lambda 19 In_DH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_BAD_RECORD_MAC
-    lambda 19 In_PSK_CLIENT_HELLO = Out_Alert_FATAL_BAD_RECORD_MAC
-    lambda 19 In_PSK_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_BAD_RECORD_MAC
-    lambda 19 In_RSA_CLIENT_HELLO = Out_Alert_FATAL_BAD_RECORD_MAC
-    lambda 19 In_RSA_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_BAD_RECORD_MAC
-    lambda 19 In_CHANGE_CIPHER_SPEC = Out_Alert_FATAL_BAD_RECORD_MAC
-    lambda 19 In_FINISHED = Out_Alert_FATAL_BAD_RECORD_MAC
-    lambda 19 In_APPLICATION = Out_TIMEOUT
-    lambda 19 In_CERTIFICATE = Out_Alert_FATAL_BAD_RECORD_MAC
-    lambda 19 In_EMPTY_CERTIFICATE = Out_Alert_FATAL_BAD_RECORD_MAC
-    lambda 19 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_BAD_RECORD_MAC
-    lambda 19 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_BAD_RECORD_MAC
-    lambda 19 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_Alert_FATAL_BAD_RECORD_MAC
-    lambda 15 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 15 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 15 In_DH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 15 In_DH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 15 In_PSK_CLIENT_HELLO = Out_TIMEOUT
-    lambda 15 In_PSK_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 15 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 15 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 15 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 15 In_FINISHED = Out_TIMEOUT
-    lambda 15 In_APPLICATION = Out_TIMEOUT
-    lambda 15 In_CERTIFICATE = Out_TIMEOUT
-    lambda 15 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 15 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 15 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 15 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda _ _ = error "haal-gen: undefined transition"
+import Haal.Automaton.MealyAutomaton (MealyAutomaton, mkMealyAutomatonTable)
+
+data MbedtlsAllCertNreqInput
+    = In_ECDH_CLIENT_HELLO
+    | In_ECDH_CLIENT_KEY_EXCHANGE
+    | In_DH_CLIENT_HELLO
+    | In_DH_CLIENT_KEY_EXCHANGE
+    | In_PSK_CLIENT_HELLO
+    | In_PSK_CLIENT_KEY_EXCHANGE
+    | In_RSA_CLIENT_HELLO
+    | In_RSA_CLIENT_KEY_EXCHANGE
+    | In_CHANGE_CIPHER_SPEC
+    | In_FINISHED
+    | In_APPLICATION
+    | In_CERTIFICATE
+    | In_EMPTY_CERTIFICATE
+    | In_CERTIFICATE_VERIFY
+    | In_Alert_WARNING_CLOSE_NOTIFY
+    | In_Alert_FATAL_UNEXPECTED_MESSAGE
+    deriving (Show, Eq, Ord, Enum, Bounded)
+
+data MbedtlsAllCertNreqOutput
+    = Out_HELLO_VERIFY_REQUEST
+    | Out_TIMEOUT
+    | Out_SERVER_HELLO_CERTIFICATE_ECDHE_SERVER_KEY_EXCHANGE_CERTIFICATE_REQUEST_SERVER_HELLO_DONE
+    | Out_SERVER_HELLO_CERTIFICATE_DHE_SERVER_KEY_EXCHANGE_CERTIFICATE_REQUEST_SERVER_HELLO_DONE
+    | Out_SERVER_HELLO_SERVER_HELLO_DONE
+    | Out_SERVER_HELLO_CERTIFICATE_CERTIFICATE_REQUEST_SERVER_HELLO_DONE
+    | Out_Alert_FATAL_DECODE_ERROR
+    | Out_Alert_FATAL_UNKNOWN_PSK_IDENTITY
+    | Out_Alert_FATAL_UNEXPECTED_MESSAGE
+    | Out_CHANGE_CIPHER_SPEC_FINISHED
+    | Out_Alert_WARNING_NO_RENEGOTIATION
+    | Out_APPLICATION
+    | Out_Alert_WARNING_CLOSE_NOTIFY
+    | Out_Alert_FATAL_BAD_RECORD_MAC
+    deriving (Show, Eq, Ord, Enum, Bounded)
+
+{- Transitions (state  input -> next state / output):
+    0     In_ECDH_CLIENT_HELLO               -> 1 / Out_HELLO_VERIFY_REQUEST
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 0 / Out_TIMEOUT
+          In_DH_CLIENT_HELLO                 -> 1 / Out_HELLO_VERIFY_REQUEST
+          In_DH_CLIENT_KEY_EXCHANGE          -> 0 / Out_TIMEOUT
+          In_PSK_CLIENT_HELLO                -> 1 / Out_HELLO_VERIFY_REQUEST
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 0 / Out_TIMEOUT
+          In_RSA_CLIENT_HELLO                -> 1 / Out_HELLO_VERIFY_REQUEST
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 0 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_TIMEOUT
+          In_FINISHED                        -> 0 / Out_TIMEOUT
+          In_APPLICATION                     -> 0 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 0 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 0 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 0 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 0 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 0 / Out_TIMEOUT
+    1     In_ECDH_CLIENT_HELLO               -> 3 / Out_SERVER_HELLO_CERTIFICATE_ECDHE_SERVER_KEY_EXCHANGE_CERTIFICATE_REQUEST_SERVER_HELLO_DONE
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 1 / Out_TIMEOUT
+          In_DH_CLIENT_HELLO                 -> 4 / Out_SERVER_HELLO_CERTIFICATE_DHE_SERVER_KEY_EXCHANGE_CERTIFICATE_REQUEST_SERVER_HELLO_DONE
+          In_DH_CLIENT_KEY_EXCHANGE          -> 1 / Out_TIMEOUT
+          In_PSK_CLIENT_HELLO                -> 5 / Out_SERVER_HELLO_SERVER_HELLO_DONE
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 1 / Out_TIMEOUT
+          In_RSA_CLIENT_HELLO                -> 6 / Out_SERVER_HELLO_CERTIFICATE_CERTIFICATE_REQUEST_SERVER_HELLO_DONE
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 1 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_TIMEOUT
+          In_FINISHED                        -> 1 / Out_TIMEOUT
+          In_APPLICATION                     -> 1 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 1 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 1 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 1 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 1 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 1 / Out_TIMEOUT
+    2     In_ECDH_CLIENT_HELLO               -> 2 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 2 / Out_TIMEOUT
+          In_DH_CLIENT_HELLO                 -> 2 / Out_TIMEOUT
+          In_DH_CLIENT_KEY_EXCHANGE          -> 2 / Out_TIMEOUT
+          In_PSK_CLIENT_HELLO                -> 2 / Out_TIMEOUT
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 2 / Out_TIMEOUT
+          In_RSA_CLIENT_HELLO                -> 2 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 2 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_TIMEOUT
+          In_FINISHED                        -> 2 / Out_TIMEOUT
+          In_APPLICATION                     -> 2 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 2 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 2 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 2 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 2 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 2 / Out_TIMEOUT
+    3     In_ECDH_CLIENT_HELLO               -> 1 / Out_Alert_FATAL_DECODE_ERROR
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 1 / Out_Alert_FATAL_DECODE_ERROR
+          In_DH_CLIENT_HELLO                 -> 1 / Out_Alert_FATAL_DECODE_ERROR
+          In_DH_CLIENT_KEY_EXCHANGE          -> 1 / Out_Alert_FATAL_DECODE_ERROR
+          In_PSK_CLIENT_HELLO                -> 1 / Out_Alert_FATAL_DECODE_ERROR
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 1 / Out_Alert_FATAL_DECODE_ERROR
+          In_RSA_CLIENT_HELLO                -> 1 / Out_Alert_FATAL_DECODE_ERROR
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 1 / Out_Alert_FATAL_DECODE_ERROR
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_TIMEOUT
+          In_FINISHED                        -> 1 / Out_Alert_FATAL_DECODE_ERROR
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 12 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 13 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 1 / Out_Alert_FATAL_DECODE_ERROR
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 1 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 1 / Out_TIMEOUT
+    4     In_ECDH_CLIENT_HELLO               -> 1 / Out_Alert_FATAL_DECODE_ERROR
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 1 / Out_Alert_FATAL_DECODE_ERROR
+          In_DH_CLIENT_HELLO                 -> 1 / Out_Alert_FATAL_DECODE_ERROR
+          In_DH_CLIENT_KEY_EXCHANGE          -> 1 / Out_Alert_FATAL_DECODE_ERROR
+          In_PSK_CLIENT_HELLO                -> 1 / Out_Alert_FATAL_DECODE_ERROR
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 1 / Out_Alert_FATAL_DECODE_ERROR
+          In_RSA_CLIENT_HELLO                -> 1 / Out_Alert_FATAL_DECODE_ERROR
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 1 / Out_Alert_FATAL_DECODE_ERROR
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_TIMEOUT
+          In_FINISHED                        -> 1 / Out_Alert_FATAL_DECODE_ERROR
+          In_APPLICATION                     -> 4 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 17 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 18 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 1 / Out_Alert_FATAL_DECODE_ERROR
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 1 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 1 / Out_TIMEOUT
+    5     In_ECDH_CLIENT_HELLO               -> 1 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 1 / Out_TIMEOUT
+          In_DH_CLIENT_HELLO                 -> 1 / Out_TIMEOUT
+          In_DH_CLIENT_KEY_EXCHANGE          -> 1 / Out_Alert_FATAL_UNKNOWN_PSK_IDENTITY
+          In_PSK_CLIENT_HELLO                -> 1 / Out_TIMEOUT
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 9 / Out_TIMEOUT
+          In_RSA_CLIENT_HELLO                -> 1 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 1 / Out_Alert_FATAL_UNKNOWN_PSK_IDENTITY
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_TIMEOUT
+          In_FINISHED                        -> 1 / Out_TIMEOUT
+          In_APPLICATION                     -> 5 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 1 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 1 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 1 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 1 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 1 / Out_TIMEOUT
+    6     In_ECDH_CLIENT_HELLO               -> 1 / Out_Alert_FATAL_DECODE_ERROR
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 1 / Out_Alert_FATAL_DECODE_ERROR
+          In_DH_CLIENT_HELLO                 -> 1 / Out_Alert_FATAL_DECODE_ERROR
+          In_DH_CLIENT_KEY_EXCHANGE          -> 1 / Out_Alert_FATAL_DECODE_ERROR
+          In_PSK_CLIENT_HELLO                -> 1 / Out_Alert_FATAL_DECODE_ERROR
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 1 / Out_Alert_FATAL_DECODE_ERROR
+          In_RSA_CLIENT_HELLO                -> 1 / Out_Alert_FATAL_DECODE_ERROR
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 1 / Out_Alert_FATAL_DECODE_ERROR
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_TIMEOUT
+          In_FINISHED                        -> 1 / Out_Alert_FATAL_DECODE_ERROR
+          In_APPLICATION                     -> 6 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 7 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 8 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 1 / Out_Alert_FATAL_DECODE_ERROR
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 1 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 1 / Out_TIMEOUT
+    7     In_ECDH_CLIENT_HELLO               -> 1 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 15 / Out_TIMEOUT
+          In_DH_CLIENT_HELLO                 -> 1 / Out_TIMEOUT
+          In_DH_CLIENT_KEY_EXCHANGE          -> 15 / Out_TIMEOUT
+          In_PSK_CLIENT_HELLO                -> 1 / Out_TIMEOUT
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 15 / Out_TIMEOUT
+          In_RSA_CLIENT_HELLO                -> 1 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 14 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_TIMEOUT
+          In_FINISHED                        -> 1 / Out_TIMEOUT
+          In_APPLICATION                     -> 7 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 1 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 1 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 1 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 1 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 1 / Out_TIMEOUT
+    8     In_ECDH_CLIENT_HELLO               -> 1 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 11 / Out_TIMEOUT
+          In_DH_CLIENT_HELLO                 -> 1 / Out_TIMEOUT
+          In_DH_CLIENT_KEY_EXCHANGE          -> 11 / Out_TIMEOUT
+          In_PSK_CLIENT_HELLO                -> 1 / Out_TIMEOUT
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 11 / Out_TIMEOUT
+          In_RSA_CLIENT_HELLO                -> 1 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 9 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_TIMEOUT
+          In_FINISHED                        -> 1 / Out_TIMEOUT
+          In_APPLICATION                     -> 8 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 1 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 1 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 1 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 1 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 1 / Out_TIMEOUT
+    9     In_ECDH_CLIENT_HELLO               -> 1 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 1 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_DH_CLIENT_HELLO                 -> 1 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_DH_CLIENT_KEY_EXCHANGE          -> 1 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_PSK_CLIENT_HELLO                -> 1 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 1 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_RSA_CLIENT_HELLO                -> 1 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 1 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CHANGE_CIPHER_SPEC              -> 10 / Out_TIMEOUT
+          In_FINISHED                        -> 1 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_APPLICATION                     -> 9 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 1 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_EMPTY_CERTIFICATE               -> 1 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CERTIFICATE_VERIFY              -> 1 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 1 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 1 / Out_TIMEOUT
+    10    In_ECDH_CLIENT_HELLO               -> 2 / Out_Alert_FATAL_DECODE_ERROR
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 2 / Out_Alert_FATAL_DECODE_ERROR
+          In_DH_CLIENT_HELLO                 -> 2 / Out_Alert_FATAL_DECODE_ERROR
+          In_DH_CLIENT_KEY_EXCHANGE          -> 2 / Out_Alert_FATAL_DECODE_ERROR
+          In_PSK_CLIENT_HELLO                -> 2 / Out_Alert_FATAL_DECODE_ERROR
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 2 / Out_Alert_FATAL_DECODE_ERROR
+          In_RSA_CLIENT_HELLO                -> 2 / Out_Alert_FATAL_DECODE_ERROR
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 2 / Out_Alert_FATAL_DECODE_ERROR
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_TIMEOUT
+          In_FINISHED                        -> 16 / Out_CHANGE_CIPHER_SPEC_FINISHED
+          In_APPLICATION                     -> 10 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 2 / Out_Alert_FATAL_DECODE_ERROR
+          In_EMPTY_CERTIFICATE               -> 2 / Out_Alert_FATAL_DECODE_ERROR
+          In_CERTIFICATE_VERIFY              -> 2 / Out_Alert_FATAL_DECODE_ERROR
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 2 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 2 / Out_TIMEOUT
+    11    In_ECDH_CLIENT_HELLO               -> 1 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 1 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_DH_CLIENT_HELLO                 -> 1 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_DH_CLIENT_KEY_EXCHANGE          -> 1 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_PSK_CLIENT_HELLO                -> 1 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 1 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_RSA_CLIENT_HELLO                -> 1 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 1 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CHANGE_CIPHER_SPEC              -> 19 / Out_TIMEOUT
+          In_FINISHED                        -> 1 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_APPLICATION                     -> 11 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 1 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_EMPTY_CERTIFICATE               -> 1 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CERTIFICATE_VERIFY              -> 1 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 1 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 1 / Out_TIMEOUT
+    12    In_ECDH_CLIENT_HELLO               -> 1 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 14 / Out_TIMEOUT
+          In_DH_CLIENT_HELLO                 -> 1 / Out_TIMEOUT
+          In_DH_CLIENT_KEY_EXCHANGE          -> 1 / Out_TIMEOUT
+          In_PSK_CLIENT_HELLO                -> 1 / Out_TIMEOUT
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 1 / Out_TIMEOUT
+          In_RSA_CLIENT_HELLO                -> 1 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 1 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_TIMEOUT
+          In_FINISHED                        -> 1 / Out_TIMEOUT
+          In_APPLICATION                     -> 12 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 1 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 1 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 1 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 1 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 1 / Out_TIMEOUT
+    13    In_ECDH_CLIENT_HELLO               -> 1 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 9 / Out_TIMEOUT
+          In_DH_CLIENT_HELLO                 -> 1 / Out_TIMEOUT
+          In_DH_CLIENT_KEY_EXCHANGE          -> 1 / Out_TIMEOUT
+          In_PSK_CLIENT_HELLO                -> 1 / Out_TIMEOUT
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 1 / Out_TIMEOUT
+          In_RSA_CLIENT_HELLO                -> 1 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 1 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_TIMEOUT
+          In_FINISHED                        -> 1 / Out_TIMEOUT
+          In_APPLICATION                     -> 13 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 1 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 1 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 1 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 1 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 1 / Out_TIMEOUT
+    14    In_ECDH_CLIENT_HELLO               -> 1 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 1 / Out_TIMEOUT
+          In_DH_CLIENT_HELLO                 -> 1 / Out_TIMEOUT
+          In_DH_CLIENT_KEY_EXCHANGE          -> 1 / Out_TIMEOUT
+          In_PSK_CLIENT_HELLO                -> 1 / Out_TIMEOUT
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 1 / Out_TIMEOUT
+          In_RSA_CLIENT_HELLO                -> 1 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 1 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_TIMEOUT
+          In_FINISHED                        -> 1 / Out_TIMEOUT
+          In_APPLICATION                     -> 14 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 1 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 1 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 9 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 1 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 1 / Out_TIMEOUT
+    15    In_ECDH_CLIENT_HELLO               -> 1 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 1 / Out_TIMEOUT
+          In_DH_CLIENT_HELLO                 -> 1 / Out_TIMEOUT
+          In_DH_CLIENT_KEY_EXCHANGE          -> 1 / Out_TIMEOUT
+          In_PSK_CLIENT_HELLO                -> 1 / Out_TIMEOUT
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 1 / Out_TIMEOUT
+          In_RSA_CLIENT_HELLO                -> 1 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 1 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_TIMEOUT
+          In_FINISHED                        -> 1 / Out_TIMEOUT
+          In_APPLICATION                     -> 15 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 1 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 1 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 11 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 1 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 1 / Out_TIMEOUT
+    16    In_ECDH_CLIENT_HELLO               -> 16 / Out_Alert_WARNING_NO_RENEGOTIATION
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 16 / Out_TIMEOUT
+          In_DH_CLIENT_HELLO                 -> 16 / Out_Alert_WARNING_NO_RENEGOTIATION
+          In_DH_CLIENT_KEY_EXCHANGE          -> 16 / Out_TIMEOUT
+          In_PSK_CLIENT_HELLO                -> 16 / Out_Alert_WARNING_NO_RENEGOTIATION
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 16 / Out_TIMEOUT
+          In_RSA_CLIENT_HELLO                -> 16 / Out_Alert_WARNING_NO_RENEGOTIATION
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 16 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_TIMEOUT
+          In_FINISHED                        -> 16 / Out_TIMEOUT
+          In_APPLICATION                     -> 16 / Out_APPLICATION
+          In_CERTIFICATE                     -> 16 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 16 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 16 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 2 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 2 / Out_TIMEOUT
+    17    In_ECDH_CLIENT_HELLO               -> 1 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 1 / Out_TIMEOUT
+          In_DH_CLIENT_HELLO                 -> 1 / Out_TIMEOUT
+          In_DH_CLIENT_KEY_EXCHANGE          -> 14 / Out_TIMEOUT
+          In_PSK_CLIENT_HELLO                -> 1 / Out_TIMEOUT
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 15 / Out_TIMEOUT
+          In_RSA_CLIENT_HELLO                -> 1 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 15 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_TIMEOUT
+          In_FINISHED                        -> 1 / Out_TIMEOUT
+          In_APPLICATION                     -> 17 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 1 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 1 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 1 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 1 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 1 / Out_TIMEOUT
+    18    In_ECDH_CLIENT_HELLO               -> 1 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 1 / Out_TIMEOUT
+          In_DH_CLIENT_HELLO                 -> 1 / Out_TIMEOUT
+          In_DH_CLIENT_KEY_EXCHANGE          -> 9 / Out_TIMEOUT
+          In_PSK_CLIENT_HELLO                -> 1 / Out_TIMEOUT
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 11 / Out_TIMEOUT
+          In_RSA_CLIENT_HELLO                -> 1 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 11 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_TIMEOUT
+          In_FINISHED                        -> 1 / Out_TIMEOUT
+          In_APPLICATION                     -> 18 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 1 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 1 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 1 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 1 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 1 / Out_TIMEOUT
+    19    In_ECDH_CLIENT_HELLO               -> 2 / Out_Alert_FATAL_BAD_RECORD_MAC
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 2 / Out_Alert_FATAL_BAD_RECORD_MAC
+          In_DH_CLIENT_HELLO                 -> 2 / Out_Alert_FATAL_BAD_RECORD_MAC
+          In_DH_CLIENT_KEY_EXCHANGE          -> 2 / Out_Alert_FATAL_BAD_RECORD_MAC
+          In_PSK_CLIENT_HELLO                -> 2 / Out_Alert_FATAL_BAD_RECORD_MAC
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 2 / Out_Alert_FATAL_BAD_RECORD_MAC
+          In_RSA_CLIENT_HELLO                -> 2 / Out_Alert_FATAL_BAD_RECORD_MAC
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 2 / Out_Alert_FATAL_BAD_RECORD_MAC
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_Alert_FATAL_BAD_RECORD_MAC
+          In_FINISHED                        -> 2 / Out_Alert_FATAL_BAD_RECORD_MAC
+          In_APPLICATION                     -> 19 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 2 / Out_Alert_FATAL_BAD_RECORD_MAC
+          In_EMPTY_CERTIFICATE               -> 2 / Out_Alert_FATAL_BAD_RECORD_MAC
+          In_CERTIFICATE_VERIFY              -> 2 / Out_Alert_FATAL_BAD_RECORD_MAC
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 2 / Out_Alert_FATAL_BAD_RECORD_MAC
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 2 / Out_Alert_FATAL_BAD_RECORD_MAC
+-}
+mbedtlsAllCertNreq :: MealyAutomaton Int MbedtlsAllCertNreqInput MbedtlsAllCertNreqOutput
+mbedtlsAllCertNreq =
+    case mkMealyAutomatonTable 20 0 deltaTable lambdaTable of
+        Right m -> m
+        Left err -> error ("haal-gen: invalid transition table: " ++ err)
+  where
+    deltaTable =
+        "\1\0\1\0\1\0\1\0\2\0\0\0\0\0\0\0\
+        \\3\1\4\1\5\1\6\1\2\1\1\1\1\1\1\1\
+        \\2\2\2\2\2\2\2\2\2\2\2\2\2\2\2\2\
+        \\1\1\1\1\1\1\1\1\2\1\3\12\13\1\1\1\
+        \\1\1\1\1\1\1\1\1\2\1\4\17\18\1\1\1\
+        \\1\1\1\1\1\9\1\1\2\1\5\1\1\1\1\1\
+        \\1\1\1\1\1\1\1\1\2\1\6\7\8\1\1\1\
+        \\1\15\1\15\1\15\1\14\2\1\7\1\1\1\1\1\
+        \\1\11\1\11\1\11\1\9\2\1\8\1\1\1\1\1\
+        \\1\1\1\1\1\1\1\1\10\1\9\1\1\1\1\1\
+        \\2\2\2\2\2\2\2\2\2\16\10\2\2\2\2\2\
+        \\1\1\1\1\1\1\1\1\19\1\11\1\1\1\1\1\
+        \\1\14\1\1\1\1\1\1\2\1\12\1\1\1\1\1\
+        \\1\9\1\1\1\1\1\1\2\1\13\1\1\1\1\1\
+        \\1\1\1\1\1\1\1\1\2\1\14\1\1\9\1\1\
+        \\1\1\1\1\1\1\1\1\2\1\15\1\1\11\1\1\
+        \\16\16\16\16\16\16\16\16\2\16\16\16\16\16\2\2\
+        \\1\1\1\14\1\15\1\15\2\1\17\1\1\1\1\1\
+        \\1\1\1\9\1\11\1\11\2\1\18\1\1\1\1\1\
+        \\2\2\2\2\2\2\2\2\2\2\19\2\2\2\2\2"
+    lambdaTable =
+        "\0\1\0\1\0\1\0\1\1\1\1\1\1\1\1\1\
+        \\2\1\3\1\4\1\5\1\1\1\1\1\1\1\1\1\
+        \\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\
+        \\6\6\6\6\6\6\6\6\1\6\1\1\1\6\1\1\
+        \\6\6\6\6\6\6\6\6\1\6\1\1\1\6\1\1\
+        \\1\1\1\7\1\1\1\7\1\1\1\1\1\1\1\1\
+        \\6\6\6\6\6\6\6\6\1\6\1\1\1\6\1\1\
+        \\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\
+        \\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\
+        \\8\8\8\8\8\8\8\8\1\8\1\8\8\8\1\1\
+        \\6\6\6\6\6\6\6\6\1\9\1\6\6\6\1\1\
+        \\8\8\8\8\8\8\8\8\1\8\1\8\8\8\1\1\
+        \\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\
+        \\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\
+        \\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\
+        \\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\
+        \\10\1\10\1\10\1\10\1\1\1\11\1\1\1\12\1\
+        \\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\
+        \\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\
+        \\13\13\13\13\13\13\13\13\13\13\1\13\13\13\13\13"
diff --git a/src/Haal/Models/DTLS/MbedtlsAllCertReq.hs b/src/Haal/Models/DTLS/MbedtlsAllCertReq.hs
--- a/src/Haal/Models/DTLS/MbedtlsAllCertReq.hs
+++ b/src/Haal/Models/DTLS/MbedtlsAllCertReq.hs
@@ -5,8 +5,7 @@
     , mbedtlsAllCertReq
     ) where
 
-import qualified Data.Set as Set
-import Haal.Automaton.MealyAutomaton (MealyAutomaton, mkMealyAutomaton)
+import Haal.Automaton.MealyAutomaton (MealyAutomaton, mkMealyAutomatonTable)
 
 data MbedtlsAllCertReqInput
     = In_ECDH_CLIENT_HELLO
@@ -44,552 +43,319 @@
     | Out_Alert_FATAL_BAD_RECORD_MAC
     deriving (Show, Eq, Ord, Enum, Bounded)
 
+{- Transitions (state  input -> next state / output):
+    0     In_ECDH_CLIENT_HELLO               -> 1 / Out_HELLO_VERIFY_REQUEST
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 0 / Out_TIMEOUT
+          In_DH_CLIENT_HELLO                 -> 1 / Out_HELLO_VERIFY_REQUEST
+          In_DH_CLIENT_KEY_EXCHANGE          -> 0 / Out_TIMEOUT
+          In_PSK_CLIENT_HELLO                -> 1 / Out_HELLO_VERIFY_REQUEST
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 0 / Out_TIMEOUT
+          In_RSA_CLIENT_HELLO                -> 1 / Out_HELLO_VERIFY_REQUEST
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 0 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_TIMEOUT
+          In_FINISHED                        -> 0 / Out_TIMEOUT
+          In_APPLICATION                     -> 0 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 0 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 0 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 0 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 0 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 0 / Out_TIMEOUT
+    1     In_ECDH_CLIENT_HELLO               -> 3 / Out_SERVER_HELLO_CERTIFICATE_ECDHE_SERVER_KEY_EXCHANGE_CERTIFICATE_REQUEST_SERVER_HELLO_DONE
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 1 / Out_TIMEOUT
+          In_DH_CLIENT_HELLO                 -> 4 / Out_SERVER_HELLO_CERTIFICATE_DHE_SERVER_KEY_EXCHANGE_CERTIFICATE_REQUEST_SERVER_HELLO_DONE
+          In_DH_CLIENT_KEY_EXCHANGE          -> 1 / Out_TIMEOUT
+          In_PSK_CLIENT_HELLO                -> 5 / Out_SERVER_HELLO_SERVER_HELLO_DONE
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 1 / Out_TIMEOUT
+          In_RSA_CLIENT_HELLO                -> 6 / Out_SERVER_HELLO_CERTIFICATE_CERTIFICATE_REQUEST_SERVER_HELLO_DONE
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 1 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_TIMEOUT
+          In_FINISHED                        -> 1 / Out_TIMEOUT
+          In_APPLICATION                     -> 1 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 1 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 1 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 1 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 1 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 1 / Out_TIMEOUT
+    2     In_ECDH_CLIENT_HELLO               -> 2 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 2 / Out_TIMEOUT
+          In_DH_CLIENT_HELLO                 -> 2 / Out_TIMEOUT
+          In_DH_CLIENT_KEY_EXCHANGE          -> 2 / Out_TIMEOUT
+          In_PSK_CLIENT_HELLO                -> 2 / Out_TIMEOUT
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 2 / Out_TIMEOUT
+          In_RSA_CLIENT_HELLO                -> 2 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 2 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_TIMEOUT
+          In_FINISHED                        -> 2 / Out_TIMEOUT
+          In_APPLICATION                     -> 2 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 2 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 2 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 2 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 2 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 2 / Out_TIMEOUT
+    3     In_ECDH_CLIENT_HELLO               -> 1 / Out_Alert_FATAL_DECODE_ERROR
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 1 / Out_Alert_FATAL_DECODE_ERROR
+          In_DH_CLIENT_HELLO                 -> 1 / Out_Alert_FATAL_DECODE_ERROR
+          In_DH_CLIENT_KEY_EXCHANGE          -> 1 / Out_Alert_FATAL_DECODE_ERROR
+          In_PSK_CLIENT_HELLO                -> 1 / Out_Alert_FATAL_DECODE_ERROR
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 1 / Out_Alert_FATAL_DECODE_ERROR
+          In_RSA_CLIENT_HELLO                -> 1 / Out_Alert_FATAL_DECODE_ERROR
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 1 / Out_Alert_FATAL_DECODE_ERROR
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_TIMEOUT
+          In_FINISHED                        -> 1 / Out_Alert_FATAL_DECODE_ERROR
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 12 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 1 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 1 / Out_Alert_FATAL_DECODE_ERROR
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 1 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 1 / Out_TIMEOUT
+    4     In_ECDH_CLIENT_HELLO               -> 1 / Out_Alert_FATAL_DECODE_ERROR
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 1 / Out_Alert_FATAL_DECODE_ERROR
+          In_DH_CLIENT_HELLO                 -> 1 / Out_Alert_FATAL_DECODE_ERROR
+          In_DH_CLIENT_KEY_EXCHANGE          -> 1 / Out_Alert_FATAL_DECODE_ERROR
+          In_PSK_CLIENT_HELLO                -> 1 / Out_Alert_FATAL_DECODE_ERROR
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 1 / Out_Alert_FATAL_DECODE_ERROR
+          In_RSA_CLIENT_HELLO                -> 1 / Out_Alert_FATAL_DECODE_ERROR
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 1 / Out_Alert_FATAL_DECODE_ERROR
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_TIMEOUT
+          In_FINISHED                        -> 1 / Out_Alert_FATAL_DECODE_ERROR
+          In_APPLICATION                     -> 4 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 14 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 1 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 1 / Out_Alert_FATAL_DECODE_ERROR
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 1 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 1 / Out_TIMEOUT
+    5     In_ECDH_CLIENT_HELLO               -> 1 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 1 / Out_TIMEOUT
+          In_DH_CLIENT_HELLO                 -> 1 / Out_TIMEOUT
+          In_DH_CLIENT_KEY_EXCHANGE          -> 1 / Out_Alert_FATAL_UNKNOWN_PSK_IDENTITY
+          In_PSK_CLIENT_HELLO                -> 1 / Out_TIMEOUT
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 8 / Out_TIMEOUT
+          In_RSA_CLIENT_HELLO                -> 1 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 1 / Out_Alert_FATAL_UNKNOWN_PSK_IDENTITY
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_TIMEOUT
+          In_FINISHED                        -> 1 / Out_TIMEOUT
+          In_APPLICATION                     -> 5 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 1 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 1 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 1 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 1 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 1 / Out_TIMEOUT
+    6     In_ECDH_CLIENT_HELLO               -> 1 / Out_Alert_FATAL_DECODE_ERROR
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 1 / Out_Alert_FATAL_DECODE_ERROR
+          In_DH_CLIENT_HELLO                 -> 1 / Out_Alert_FATAL_DECODE_ERROR
+          In_DH_CLIENT_KEY_EXCHANGE          -> 1 / Out_Alert_FATAL_DECODE_ERROR
+          In_PSK_CLIENT_HELLO                -> 1 / Out_Alert_FATAL_DECODE_ERROR
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 1 / Out_Alert_FATAL_DECODE_ERROR
+          In_RSA_CLIENT_HELLO                -> 1 / Out_Alert_FATAL_DECODE_ERROR
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 1 / Out_Alert_FATAL_DECODE_ERROR
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_TIMEOUT
+          In_FINISHED                        -> 1 / Out_Alert_FATAL_DECODE_ERROR
+          In_APPLICATION                     -> 6 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 7 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 1 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 1 / Out_Alert_FATAL_DECODE_ERROR
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 1 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 1 / Out_TIMEOUT
+    7     In_ECDH_CLIENT_HELLO               -> 1 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 10 / Out_TIMEOUT
+          In_DH_CLIENT_HELLO                 -> 1 / Out_TIMEOUT
+          In_DH_CLIENT_KEY_EXCHANGE          -> 10 / Out_TIMEOUT
+          In_PSK_CLIENT_HELLO                -> 1 / Out_TIMEOUT
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 10 / Out_TIMEOUT
+          In_RSA_CLIENT_HELLO                -> 1 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 11 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_TIMEOUT
+          In_FINISHED                        -> 1 / Out_TIMEOUT
+          In_APPLICATION                     -> 7 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 1 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 1 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 1 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 1 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 1 / Out_TIMEOUT
+    8     In_ECDH_CLIENT_HELLO               -> 1 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 1 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_DH_CLIENT_HELLO                 -> 1 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_DH_CLIENT_KEY_EXCHANGE          -> 1 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_PSK_CLIENT_HELLO                -> 1 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 1 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_RSA_CLIENT_HELLO                -> 1 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 1 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CHANGE_CIPHER_SPEC              -> 9 / Out_TIMEOUT
+          In_FINISHED                        -> 1 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_APPLICATION                     -> 8 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 1 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_EMPTY_CERTIFICATE               -> 1 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CERTIFICATE_VERIFY              -> 1 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 1 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 1 / Out_TIMEOUT
+    9     In_ECDH_CLIENT_HELLO               -> 2 / Out_Alert_FATAL_DECODE_ERROR
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 2 / Out_Alert_FATAL_DECODE_ERROR
+          In_DH_CLIENT_HELLO                 -> 2 / Out_Alert_FATAL_DECODE_ERROR
+          In_DH_CLIENT_KEY_EXCHANGE          -> 2 / Out_Alert_FATAL_DECODE_ERROR
+          In_PSK_CLIENT_HELLO                -> 2 / Out_Alert_FATAL_DECODE_ERROR
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 2 / Out_Alert_FATAL_DECODE_ERROR
+          In_RSA_CLIENT_HELLO                -> 2 / Out_Alert_FATAL_DECODE_ERROR
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 2 / Out_Alert_FATAL_DECODE_ERROR
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_TIMEOUT
+          In_FINISHED                        -> 13 / Out_CHANGE_CIPHER_SPEC_FINISHED
+          In_APPLICATION                     -> 9 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 2 / Out_Alert_FATAL_DECODE_ERROR
+          In_EMPTY_CERTIFICATE               -> 2 / Out_Alert_FATAL_DECODE_ERROR
+          In_CERTIFICATE_VERIFY              -> 2 / Out_Alert_FATAL_DECODE_ERROR
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 2 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 2 / Out_TIMEOUT
+    10    In_ECDH_CLIENT_HELLO               -> 1 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 1 / Out_TIMEOUT
+          In_DH_CLIENT_HELLO                 -> 1 / Out_TIMEOUT
+          In_DH_CLIENT_KEY_EXCHANGE          -> 1 / Out_TIMEOUT
+          In_PSK_CLIENT_HELLO                -> 1 / Out_TIMEOUT
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 1 / Out_TIMEOUT
+          In_RSA_CLIENT_HELLO                -> 1 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 1 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_TIMEOUT
+          In_FINISHED                        -> 1 / Out_TIMEOUT
+          In_APPLICATION                     -> 10 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 1 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 1 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 15 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 1 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 1 / Out_TIMEOUT
+    11    In_ECDH_CLIENT_HELLO               -> 1 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 1 / Out_TIMEOUT
+          In_DH_CLIENT_HELLO                 -> 1 / Out_TIMEOUT
+          In_DH_CLIENT_KEY_EXCHANGE          -> 1 / Out_TIMEOUT
+          In_PSK_CLIENT_HELLO                -> 1 / Out_TIMEOUT
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 1 / Out_TIMEOUT
+          In_RSA_CLIENT_HELLO                -> 1 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 1 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_TIMEOUT
+          In_FINISHED                        -> 1 / Out_TIMEOUT
+          In_APPLICATION                     -> 11 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 1 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 1 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 8 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 1 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 1 / Out_TIMEOUT
+    12    In_ECDH_CLIENT_HELLO               -> 1 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 11 / Out_TIMEOUT
+          In_DH_CLIENT_HELLO                 -> 1 / Out_TIMEOUT
+          In_DH_CLIENT_KEY_EXCHANGE          -> 1 / Out_TIMEOUT
+          In_PSK_CLIENT_HELLO                -> 1 / Out_TIMEOUT
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 1 / Out_TIMEOUT
+          In_RSA_CLIENT_HELLO                -> 1 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 1 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_TIMEOUT
+          In_FINISHED                        -> 1 / Out_TIMEOUT
+          In_APPLICATION                     -> 12 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 1 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 1 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 1 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 1 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 1 / Out_TIMEOUT
+    13    In_ECDH_CLIENT_HELLO               -> 13 / Out_Alert_WARNING_NO_RENEGOTIATION
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 13 / Out_TIMEOUT
+          In_DH_CLIENT_HELLO                 -> 13 / Out_Alert_WARNING_NO_RENEGOTIATION
+          In_DH_CLIENT_KEY_EXCHANGE          -> 13 / Out_TIMEOUT
+          In_PSK_CLIENT_HELLO                -> 13 / Out_Alert_WARNING_NO_RENEGOTIATION
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 13 / Out_TIMEOUT
+          In_RSA_CLIENT_HELLO                -> 13 / Out_Alert_WARNING_NO_RENEGOTIATION
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 13 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_TIMEOUT
+          In_FINISHED                        -> 13 / Out_TIMEOUT
+          In_APPLICATION                     -> 13 / Out_APPLICATION
+          In_CERTIFICATE                     -> 13 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 13 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 13 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 2 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 2 / Out_TIMEOUT
+    14    In_ECDH_CLIENT_HELLO               -> 1 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 1 / Out_TIMEOUT
+          In_DH_CLIENT_HELLO                 -> 1 / Out_TIMEOUT
+          In_DH_CLIENT_KEY_EXCHANGE          -> 11 / Out_TIMEOUT
+          In_PSK_CLIENT_HELLO                -> 1 / Out_TIMEOUT
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 10 / Out_TIMEOUT
+          In_RSA_CLIENT_HELLO                -> 1 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 10 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_TIMEOUT
+          In_FINISHED                        -> 1 / Out_TIMEOUT
+          In_APPLICATION                     -> 14 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 1 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 1 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 1 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 1 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 1 / Out_TIMEOUT
+    15    In_ECDH_CLIENT_HELLO               -> 1 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 1 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_DH_CLIENT_HELLO                 -> 1 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_DH_CLIENT_KEY_EXCHANGE          -> 1 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_PSK_CLIENT_HELLO                -> 1 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 1 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_RSA_CLIENT_HELLO                -> 1 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 1 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CHANGE_CIPHER_SPEC              -> 16 / Out_TIMEOUT
+          In_FINISHED                        -> 1 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_APPLICATION                     -> 15 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 1 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_EMPTY_CERTIFICATE               -> 1 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CERTIFICATE_VERIFY              -> 1 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 1 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 1 / Out_TIMEOUT
+    16    In_ECDH_CLIENT_HELLO               -> 2 / Out_Alert_FATAL_BAD_RECORD_MAC
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 2 / Out_Alert_FATAL_BAD_RECORD_MAC
+          In_DH_CLIENT_HELLO                 -> 2 / Out_Alert_FATAL_BAD_RECORD_MAC
+          In_DH_CLIENT_KEY_EXCHANGE          -> 2 / Out_Alert_FATAL_BAD_RECORD_MAC
+          In_PSK_CLIENT_HELLO                -> 2 / Out_Alert_FATAL_BAD_RECORD_MAC
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 2 / Out_Alert_FATAL_BAD_RECORD_MAC
+          In_RSA_CLIENT_HELLO                -> 2 / Out_Alert_FATAL_BAD_RECORD_MAC
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 2 / Out_Alert_FATAL_BAD_RECORD_MAC
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_Alert_FATAL_BAD_RECORD_MAC
+          In_FINISHED                        -> 2 / Out_Alert_FATAL_BAD_RECORD_MAC
+          In_APPLICATION                     -> 16 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 2 / Out_Alert_FATAL_BAD_RECORD_MAC
+          In_EMPTY_CERTIFICATE               -> 2 / Out_Alert_FATAL_BAD_RECORD_MAC
+          In_CERTIFICATE_VERIFY              -> 2 / Out_Alert_FATAL_BAD_RECORD_MAC
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 2 / Out_Alert_FATAL_BAD_RECORD_MAC
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 2 / Out_Alert_FATAL_BAD_RECORD_MAC
+-}
 mbedtlsAllCertReq :: MealyAutomaton Int MbedtlsAllCertReqInput MbedtlsAllCertReqOutput
-mbedtlsAllCertReq = mkMealyAutomaton delta lambda (Set.fromList [0..16]) 0
+mbedtlsAllCertReq =
+    case mkMealyAutomatonTable 17 0 deltaTable lambdaTable of
+        Right m -> m
+        Left err -> error ("haal-gen: invalid transition table: " ++ err)
   where
-    delta 0 In_ECDH_CLIENT_HELLO = 1
-    delta 0 In_ECDH_CLIENT_KEY_EXCHANGE = 0
-    delta 0 In_DH_CLIENT_HELLO = 1
-    delta 0 In_DH_CLIENT_KEY_EXCHANGE = 0
-    delta 0 In_PSK_CLIENT_HELLO = 1
-    delta 0 In_PSK_CLIENT_KEY_EXCHANGE = 0
-    delta 0 In_RSA_CLIENT_HELLO = 1
-    delta 0 In_RSA_CLIENT_KEY_EXCHANGE = 0
-    delta 0 In_CHANGE_CIPHER_SPEC = 2
-    delta 0 In_FINISHED = 0
-    delta 0 In_APPLICATION = 0
-    delta 0 In_CERTIFICATE = 0
-    delta 0 In_EMPTY_CERTIFICATE = 0
-    delta 0 In_CERTIFICATE_VERIFY = 0
-    delta 0 In_Alert_WARNING_CLOSE_NOTIFY = 0
-    delta 0 In_Alert_FATAL_UNEXPECTED_MESSAGE = 0
-    delta 1 In_ECDH_CLIENT_HELLO = 3
-    delta 1 In_ECDH_CLIENT_KEY_EXCHANGE = 1
-    delta 1 In_DH_CLIENT_HELLO = 4
-    delta 1 In_DH_CLIENT_KEY_EXCHANGE = 1
-    delta 1 In_PSK_CLIENT_HELLO = 5
-    delta 1 In_PSK_CLIENT_KEY_EXCHANGE = 1
-    delta 1 In_RSA_CLIENT_HELLO = 6
-    delta 1 In_RSA_CLIENT_KEY_EXCHANGE = 1
-    delta 1 In_CHANGE_CIPHER_SPEC = 2
-    delta 1 In_FINISHED = 1
-    delta 1 In_APPLICATION = 1
-    delta 1 In_CERTIFICATE = 1
-    delta 1 In_EMPTY_CERTIFICATE = 1
-    delta 1 In_CERTIFICATE_VERIFY = 1
-    delta 1 In_Alert_WARNING_CLOSE_NOTIFY = 1
-    delta 1 In_Alert_FATAL_UNEXPECTED_MESSAGE = 1
-    delta 6 In_ECDH_CLIENT_HELLO = 1
-    delta 6 In_ECDH_CLIENT_KEY_EXCHANGE = 1
-    delta 6 In_DH_CLIENT_HELLO = 1
-    delta 6 In_DH_CLIENT_KEY_EXCHANGE = 1
-    delta 6 In_PSK_CLIENT_HELLO = 1
-    delta 6 In_PSK_CLIENT_KEY_EXCHANGE = 1
-    delta 6 In_RSA_CLIENT_HELLO = 1
-    delta 6 In_RSA_CLIENT_KEY_EXCHANGE = 1
-    delta 6 In_CHANGE_CIPHER_SPEC = 2
-    delta 6 In_FINISHED = 1
-    delta 6 In_APPLICATION = 6
-    delta 6 In_CERTIFICATE = 7
-    delta 6 In_EMPTY_CERTIFICATE = 1
-    delta 6 In_CERTIFICATE_VERIFY = 1
-    delta 6 In_Alert_WARNING_CLOSE_NOTIFY = 1
-    delta 6 In_Alert_FATAL_UNEXPECTED_MESSAGE = 1
-    delta 2 In_ECDH_CLIENT_HELLO = 2
-    delta 2 In_ECDH_CLIENT_KEY_EXCHANGE = 2
-    delta 2 In_DH_CLIENT_HELLO = 2
-    delta 2 In_DH_CLIENT_KEY_EXCHANGE = 2
-    delta 2 In_PSK_CLIENT_HELLO = 2
-    delta 2 In_PSK_CLIENT_KEY_EXCHANGE = 2
-    delta 2 In_RSA_CLIENT_HELLO = 2
-    delta 2 In_RSA_CLIENT_KEY_EXCHANGE = 2
-    delta 2 In_CHANGE_CIPHER_SPEC = 2
-    delta 2 In_FINISHED = 2
-    delta 2 In_APPLICATION = 2
-    delta 2 In_CERTIFICATE = 2
-    delta 2 In_EMPTY_CERTIFICATE = 2
-    delta 2 In_CERTIFICATE_VERIFY = 2
-    delta 2 In_Alert_WARNING_CLOSE_NOTIFY = 2
-    delta 2 In_Alert_FATAL_UNEXPECTED_MESSAGE = 2
-    delta 5 In_ECDH_CLIENT_HELLO = 1
-    delta 5 In_ECDH_CLIENT_KEY_EXCHANGE = 1
-    delta 5 In_DH_CLIENT_HELLO = 1
-    delta 5 In_DH_CLIENT_KEY_EXCHANGE = 1
-    delta 5 In_PSK_CLIENT_HELLO = 1
-    delta 5 In_PSK_CLIENT_KEY_EXCHANGE = 8
-    delta 5 In_RSA_CLIENT_HELLO = 1
-    delta 5 In_RSA_CLIENT_KEY_EXCHANGE = 1
-    delta 5 In_CHANGE_CIPHER_SPEC = 2
-    delta 5 In_FINISHED = 1
-    delta 5 In_APPLICATION = 5
-    delta 5 In_CERTIFICATE = 1
-    delta 5 In_EMPTY_CERTIFICATE = 1
-    delta 5 In_CERTIFICATE_VERIFY = 1
-    delta 5 In_Alert_WARNING_CLOSE_NOTIFY = 1
-    delta 5 In_Alert_FATAL_UNEXPECTED_MESSAGE = 1
-    delta 8 In_ECDH_CLIENT_HELLO = 1
-    delta 8 In_ECDH_CLIENT_KEY_EXCHANGE = 1
-    delta 8 In_DH_CLIENT_HELLO = 1
-    delta 8 In_DH_CLIENT_KEY_EXCHANGE = 1
-    delta 8 In_PSK_CLIENT_HELLO = 1
-    delta 8 In_PSK_CLIENT_KEY_EXCHANGE = 1
-    delta 8 In_RSA_CLIENT_HELLO = 1
-    delta 8 In_RSA_CLIENT_KEY_EXCHANGE = 1
-    delta 8 In_CHANGE_CIPHER_SPEC = 9
-    delta 8 In_FINISHED = 1
-    delta 8 In_APPLICATION = 8
-    delta 8 In_CERTIFICATE = 1
-    delta 8 In_EMPTY_CERTIFICATE = 1
-    delta 8 In_CERTIFICATE_VERIFY = 1
-    delta 8 In_Alert_WARNING_CLOSE_NOTIFY = 1
-    delta 8 In_Alert_FATAL_UNEXPECTED_MESSAGE = 1
-    delta 7 In_ECDH_CLIENT_HELLO = 1
-    delta 7 In_ECDH_CLIENT_KEY_EXCHANGE = 10
-    delta 7 In_DH_CLIENT_HELLO = 1
-    delta 7 In_DH_CLIENT_KEY_EXCHANGE = 10
-    delta 7 In_PSK_CLIENT_HELLO = 1
-    delta 7 In_PSK_CLIENT_KEY_EXCHANGE = 10
-    delta 7 In_RSA_CLIENT_HELLO = 1
-    delta 7 In_RSA_CLIENT_KEY_EXCHANGE = 11
-    delta 7 In_CHANGE_CIPHER_SPEC = 2
-    delta 7 In_FINISHED = 1
-    delta 7 In_APPLICATION = 7
-    delta 7 In_CERTIFICATE = 1
-    delta 7 In_EMPTY_CERTIFICATE = 1
-    delta 7 In_CERTIFICATE_VERIFY = 1
-    delta 7 In_Alert_WARNING_CLOSE_NOTIFY = 1
-    delta 7 In_Alert_FATAL_UNEXPECTED_MESSAGE = 1
-    delta 3 In_ECDH_CLIENT_HELLO = 1
-    delta 3 In_ECDH_CLIENT_KEY_EXCHANGE = 1
-    delta 3 In_DH_CLIENT_HELLO = 1
-    delta 3 In_DH_CLIENT_KEY_EXCHANGE = 1
-    delta 3 In_PSK_CLIENT_HELLO = 1
-    delta 3 In_PSK_CLIENT_KEY_EXCHANGE = 1
-    delta 3 In_RSA_CLIENT_HELLO = 1
-    delta 3 In_RSA_CLIENT_KEY_EXCHANGE = 1
-    delta 3 In_CHANGE_CIPHER_SPEC = 2
-    delta 3 In_FINISHED = 1
-    delta 3 In_APPLICATION = 3
-    delta 3 In_CERTIFICATE = 12
-    delta 3 In_EMPTY_CERTIFICATE = 1
-    delta 3 In_CERTIFICATE_VERIFY = 1
-    delta 3 In_Alert_WARNING_CLOSE_NOTIFY = 1
-    delta 3 In_Alert_FATAL_UNEXPECTED_MESSAGE = 1
-    delta 12 In_ECDH_CLIENT_HELLO = 1
-    delta 12 In_ECDH_CLIENT_KEY_EXCHANGE = 11
-    delta 12 In_DH_CLIENT_HELLO = 1
-    delta 12 In_DH_CLIENT_KEY_EXCHANGE = 1
-    delta 12 In_PSK_CLIENT_HELLO = 1
-    delta 12 In_PSK_CLIENT_KEY_EXCHANGE = 1
-    delta 12 In_RSA_CLIENT_HELLO = 1
-    delta 12 In_RSA_CLIENT_KEY_EXCHANGE = 1
-    delta 12 In_CHANGE_CIPHER_SPEC = 2
-    delta 12 In_FINISHED = 1
-    delta 12 In_APPLICATION = 12
-    delta 12 In_CERTIFICATE = 1
-    delta 12 In_EMPTY_CERTIFICATE = 1
-    delta 12 In_CERTIFICATE_VERIFY = 1
-    delta 12 In_Alert_WARNING_CLOSE_NOTIFY = 1
-    delta 12 In_Alert_FATAL_UNEXPECTED_MESSAGE = 1
-    delta 9 In_ECDH_CLIENT_HELLO = 2
-    delta 9 In_ECDH_CLIENT_KEY_EXCHANGE = 2
-    delta 9 In_DH_CLIENT_HELLO = 2
-    delta 9 In_DH_CLIENT_KEY_EXCHANGE = 2
-    delta 9 In_PSK_CLIENT_HELLO = 2
-    delta 9 In_PSK_CLIENT_KEY_EXCHANGE = 2
-    delta 9 In_RSA_CLIENT_HELLO = 2
-    delta 9 In_RSA_CLIENT_KEY_EXCHANGE = 2
-    delta 9 In_CHANGE_CIPHER_SPEC = 2
-    delta 9 In_FINISHED = 13
-    delta 9 In_APPLICATION = 9
-    delta 9 In_CERTIFICATE = 2
-    delta 9 In_EMPTY_CERTIFICATE = 2
-    delta 9 In_CERTIFICATE_VERIFY = 2
-    delta 9 In_Alert_WARNING_CLOSE_NOTIFY = 2
-    delta 9 In_Alert_FATAL_UNEXPECTED_MESSAGE = 2
-    delta 13 In_ECDH_CLIENT_HELLO = 13
-    delta 13 In_ECDH_CLIENT_KEY_EXCHANGE = 13
-    delta 13 In_DH_CLIENT_HELLO = 13
-    delta 13 In_DH_CLIENT_KEY_EXCHANGE = 13
-    delta 13 In_PSK_CLIENT_HELLO = 13
-    delta 13 In_PSK_CLIENT_KEY_EXCHANGE = 13
-    delta 13 In_RSA_CLIENT_HELLO = 13
-    delta 13 In_RSA_CLIENT_KEY_EXCHANGE = 13
-    delta 13 In_CHANGE_CIPHER_SPEC = 2
-    delta 13 In_FINISHED = 13
-    delta 13 In_APPLICATION = 13
-    delta 13 In_CERTIFICATE = 13
-    delta 13 In_EMPTY_CERTIFICATE = 13
-    delta 13 In_CERTIFICATE_VERIFY = 13
-    delta 13 In_Alert_WARNING_CLOSE_NOTIFY = 2
-    delta 13 In_Alert_FATAL_UNEXPECTED_MESSAGE = 2
-    delta 4 In_ECDH_CLIENT_HELLO = 1
-    delta 4 In_ECDH_CLIENT_KEY_EXCHANGE = 1
-    delta 4 In_DH_CLIENT_HELLO = 1
-    delta 4 In_DH_CLIENT_KEY_EXCHANGE = 1
-    delta 4 In_PSK_CLIENT_HELLO = 1
-    delta 4 In_PSK_CLIENT_KEY_EXCHANGE = 1
-    delta 4 In_RSA_CLIENT_HELLO = 1
-    delta 4 In_RSA_CLIENT_KEY_EXCHANGE = 1
-    delta 4 In_CHANGE_CIPHER_SPEC = 2
-    delta 4 In_FINISHED = 1
-    delta 4 In_APPLICATION = 4
-    delta 4 In_CERTIFICATE = 14
-    delta 4 In_EMPTY_CERTIFICATE = 1
-    delta 4 In_CERTIFICATE_VERIFY = 1
-    delta 4 In_Alert_WARNING_CLOSE_NOTIFY = 1
-    delta 4 In_Alert_FATAL_UNEXPECTED_MESSAGE = 1
-    delta 14 In_ECDH_CLIENT_HELLO = 1
-    delta 14 In_ECDH_CLIENT_KEY_EXCHANGE = 1
-    delta 14 In_DH_CLIENT_HELLO = 1
-    delta 14 In_DH_CLIENT_KEY_EXCHANGE = 11
-    delta 14 In_PSK_CLIENT_HELLO = 1
-    delta 14 In_PSK_CLIENT_KEY_EXCHANGE = 10
-    delta 14 In_RSA_CLIENT_HELLO = 1
-    delta 14 In_RSA_CLIENT_KEY_EXCHANGE = 10
-    delta 14 In_CHANGE_CIPHER_SPEC = 2
-    delta 14 In_FINISHED = 1
-    delta 14 In_APPLICATION = 14
-    delta 14 In_CERTIFICATE = 1
-    delta 14 In_EMPTY_CERTIFICATE = 1
-    delta 14 In_CERTIFICATE_VERIFY = 1
-    delta 14 In_Alert_WARNING_CLOSE_NOTIFY = 1
-    delta 14 In_Alert_FATAL_UNEXPECTED_MESSAGE = 1
-    delta 11 In_ECDH_CLIENT_HELLO = 1
-    delta 11 In_ECDH_CLIENT_KEY_EXCHANGE = 1
-    delta 11 In_DH_CLIENT_HELLO = 1
-    delta 11 In_DH_CLIENT_KEY_EXCHANGE = 1
-    delta 11 In_PSK_CLIENT_HELLO = 1
-    delta 11 In_PSK_CLIENT_KEY_EXCHANGE = 1
-    delta 11 In_RSA_CLIENT_HELLO = 1
-    delta 11 In_RSA_CLIENT_KEY_EXCHANGE = 1
-    delta 11 In_CHANGE_CIPHER_SPEC = 2
-    delta 11 In_FINISHED = 1
-    delta 11 In_APPLICATION = 11
-    delta 11 In_CERTIFICATE = 1
-    delta 11 In_EMPTY_CERTIFICATE = 1
-    delta 11 In_CERTIFICATE_VERIFY = 8
-    delta 11 In_Alert_WARNING_CLOSE_NOTIFY = 1
-    delta 11 In_Alert_FATAL_UNEXPECTED_MESSAGE = 1
-    delta 10 In_ECDH_CLIENT_HELLO = 1
-    delta 10 In_ECDH_CLIENT_KEY_EXCHANGE = 1
-    delta 10 In_DH_CLIENT_HELLO = 1
-    delta 10 In_DH_CLIENT_KEY_EXCHANGE = 1
-    delta 10 In_PSK_CLIENT_HELLO = 1
-    delta 10 In_PSK_CLIENT_KEY_EXCHANGE = 1
-    delta 10 In_RSA_CLIENT_HELLO = 1
-    delta 10 In_RSA_CLIENT_KEY_EXCHANGE = 1
-    delta 10 In_CHANGE_CIPHER_SPEC = 2
-    delta 10 In_FINISHED = 1
-    delta 10 In_APPLICATION = 10
-    delta 10 In_CERTIFICATE = 1
-    delta 10 In_EMPTY_CERTIFICATE = 1
-    delta 10 In_CERTIFICATE_VERIFY = 15
-    delta 10 In_Alert_WARNING_CLOSE_NOTIFY = 1
-    delta 10 In_Alert_FATAL_UNEXPECTED_MESSAGE = 1
-    delta 15 In_ECDH_CLIENT_HELLO = 1
-    delta 15 In_ECDH_CLIENT_KEY_EXCHANGE = 1
-    delta 15 In_DH_CLIENT_HELLO = 1
-    delta 15 In_DH_CLIENT_KEY_EXCHANGE = 1
-    delta 15 In_PSK_CLIENT_HELLO = 1
-    delta 15 In_PSK_CLIENT_KEY_EXCHANGE = 1
-    delta 15 In_RSA_CLIENT_HELLO = 1
-    delta 15 In_RSA_CLIENT_KEY_EXCHANGE = 1
-    delta 15 In_CHANGE_CIPHER_SPEC = 16
-    delta 15 In_FINISHED = 1
-    delta 15 In_APPLICATION = 15
-    delta 15 In_CERTIFICATE = 1
-    delta 15 In_EMPTY_CERTIFICATE = 1
-    delta 15 In_CERTIFICATE_VERIFY = 1
-    delta 15 In_Alert_WARNING_CLOSE_NOTIFY = 1
-    delta 15 In_Alert_FATAL_UNEXPECTED_MESSAGE = 1
-    delta 16 In_ECDH_CLIENT_HELLO = 2
-    delta 16 In_ECDH_CLIENT_KEY_EXCHANGE = 2
-    delta 16 In_DH_CLIENT_HELLO = 2
-    delta 16 In_DH_CLIENT_KEY_EXCHANGE = 2
-    delta 16 In_PSK_CLIENT_HELLO = 2
-    delta 16 In_PSK_CLIENT_KEY_EXCHANGE = 2
-    delta 16 In_RSA_CLIENT_HELLO = 2
-    delta 16 In_RSA_CLIENT_KEY_EXCHANGE = 2
-    delta 16 In_CHANGE_CIPHER_SPEC = 2
-    delta 16 In_FINISHED = 2
-    delta 16 In_APPLICATION = 16
-    delta 16 In_CERTIFICATE = 2
-    delta 16 In_EMPTY_CERTIFICATE = 2
-    delta 16 In_CERTIFICATE_VERIFY = 2
-    delta 16 In_Alert_WARNING_CLOSE_NOTIFY = 2
-    delta 16 In_Alert_FATAL_UNEXPECTED_MESSAGE = 2
-    delta _ _ = error "haal-gen: undefined transition"
-    lambda 0 In_ECDH_CLIENT_HELLO = Out_HELLO_VERIFY_REQUEST
-    lambda 0 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 0 In_DH_CLIENT_HELLO = Out_HELLO_VERIFY_REQUEST
-    lambda 0 In_DH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 0 In_PSK_CLIENT_HELLO = Out_HELLO_VERIFY_REQUEST
-    lambda 0 In_PSK_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 0 In_RSA_CLIENT_HELLO = Out_HELLO_VERIFY_REQUEST
-    lambda 0 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 0 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 0 In_FINISHED = Out_TIMEOUT
-    lambda 0 In_APPLICATION = Out_TIMEOUT
-    lambda 0 In_CERTIFICATE = Out_TIMEOUT
-    lambda 0 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 0 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 0 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 0 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 1 In_ECDH_CLIENT_HELLO = Out_SERVER_HELLO_CERTIFICATE_ECDHE_SERVER_KEY_EXCHANGE_CERTIFICATE_REQUEST_SERVER_HELLO_DONE
-    lambda 1 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 1 In_DH_CLIENT_HELLO = Out_SERVER_HELLO_CERTIFICATE_DHE_SERVER_KEY_EXCHANGE_CERTIFICATE_REQUEST_SERVER_HELLO_DONE
-    lambda 1 In_DH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 1 In_PSK_CLIENT_HELLO = Out_SERVER_HELLO_SERVER_HELLO_DONE
-    lambda 1 In_PSK_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 1 In_RSA_CLIENT_HELLO = Out_SERVER_HELLO_CERTIFICATE_CERTIFICATE_REQUEST_SERVER_HELLO_DONE
-    lambda 1 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 1 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 1 In_FINISHED = Out_TIMEOUT
-    lambda 1 In_APPLICATION = Out_TIMEOUT
-    lambda 1 In_CERTIFICATE = Out_TIMEOUT
-    lambda 1 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 1 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 1 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 1 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 6 In_ECDH_CLIENT_HELLO = Out_Alert_FATAL_DECODE_ERROR
-    lambda 6 In_ECDH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_DECODE_ERROR
-    lambda 6 In_DH_CLIENT_HELLO = Out_Alert_FATAL_DECODE_ERROR
-    lambda 6 In_DH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_DECODE_ERROR
-    lambda 6 In_PSK_CLIENT_HELLO = Out_Alert_FATAL_DECODE_ERROR
-    lambda 6 In_PSK_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_DECODE_ERROR
-    lambda 6 In_RSA_CLIENT_HELLO = Out_Alert_FATAL_DECODE_ERROR
-    lambda 6 In_RSA_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_DECODE_ERROR
-    lambda 6 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 6 In_FINISHED = Out_Alert_FATAL_DECODE_ERROR
-    lambda 6 In_APPLICATION = Out_TIMEOUT
-    lambda 6 In_CERTIFICATE = Out_TIMEOUT
-    lambda 6 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 6 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_DECODE_ERROR
-    lambda 6 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 6 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 2 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 2 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 2 In_DH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 2 In_DH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 2 In_PSK_CLIENT_HELLO = Out_TIMEOUT
-    lambda 2 In_PSK_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 2 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 2 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 2 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 2 In_FINISHED = Out_TIMEOUT
-    lambda 2 In_APPLICATION = Out_TIMEOUT
-    lambda 2 In_CERTIFICATE = Out_TIMEOUT
-    lambda 2 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 2 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 2 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 2 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 5 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 5 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 5 In_DH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 5 In_DH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNKNOWN_PSK_IDENTITY
-    lambda 5 In_PSK_CLIENT_HELLO = Out_TIMEOUT
-    lambda 5 In_PSK_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 5 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 5 In_RSA_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNKNOWN_PSK_IDENTITY
-    lambda 5 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 5 In_FINISHED = Out_TIMEOUT
-    lambda 5 In_APPLICATION = Out_TIMEOUT
-    lambda 5 In_CERTIFICATE = Out_TIMEOUT
-    lambda 5 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 5 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 5 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 5 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 8 In_ECDH_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 8 In_ECDH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 8 In_DH_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 8 In_DH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 8 In_PSK_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 8 In_PSK_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 8 In_RSA_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 8 In_RSA_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 8 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 8 In_FINISHED = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 8 In_APPLICATION = Out_TIMEOUT
-    lambda 8 In_CERTIFICATE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 8 In_EMPTY_CERTIFICATE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 8 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 8 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 8 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 7 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 7 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 7 In_DH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 7 In_DH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 7 In_PSK_CLIENT_HELLO = Out_TIMEOUT
-    lambda 7 In_PSK_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 7 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 7 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 7 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 7 In_FINISHED = Out_TIMEOUT
-    lambda 7 In_APPLICATION = Out_TIMEOUT
-    lambda 7 In_CERTIFICATE = Out_TIMEOUT
-    lambda 7 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 7 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 7 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 7 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 3 In_ECDH_CLIENT_HELLO = Out_Alert_FATAL_DECODE_ERROR
-    lambda 3 In_ECDH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_DECODE_ERROR
-    lambda 3 In_DH_CLIENT_HELLO = Out_Alert_FATAL_DECODE_ERROR
-    lambda 3 In_DH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_DECODE_ERROR
-    lambda 3 In_PSK_CLIENT_HELLO = Out_Alert_FATAL_DECODE_ERROR
-    lambda 3 In_PSK_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_DECODE_ERROR
-    lambda 3 In_RSA_CLIENT_HELLO = Out_Alert_FATAL_DECODE_ERROR
-    lambda 3 In_RSA_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_DECODE_ERROR
-    lambda 3 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 3 In_FINISHED = Out_Alert_FATAL_DECODE_ERROR
-    lambda 3 In_APPLICATION = Out_TIMEOUT
-    lambda 3 In_CERTIFICATE = Out_TIMEOUT
-    lambda 3 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 3 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_DECODE_ERROR
-    lambda 3 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 3 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 12 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 12 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 12 In_DH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 12 In_DH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 12 In_PSK_CLIENT_HELLO = Out_TIMEOUT
-    lambda 12 In_PSK_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 12 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 12 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 12 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 12 In_FINISHED = Out_TIMEOUT
-    lambda 12 In_APPLICATION = Out_TIMEOUT
-    lambda 12 In_CERTIFICATE = Out_TIMEOUT
-    lambda 12 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 12 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 12 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 12 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 9 In_ECDH_CLIENT_HELLO = Out_Alert_FATAL_DECODE_ERROR
-    lambda 9 In_ECDH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_DECODE_ERROR
-    lambda 9 In_DH_CLIENT_HELLO = Out_Alert_FATAL_DECODE_ERROR
-    lambda 9 In_DH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_DECODE_ERROR
-    lambda 9 In_PSK_CLIENT_HELLO = Out_Alert_FATAL_DECODE_ERROR
-    lambda 9 In_PSK_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_DECODE_ERROR
-    lambda 9 In_RSA_CLIENT_HELLO = Out_Alert_FATAL_DECODE_ERROR
-    lambda 9 In_RSA_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_DECODE_ERROR
-    lambda 9 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 9 In_FINISHED = Out_CHANGE_CIPHER_SPEC_FINISHED
-    lambda 9 In_APPLICATION = Out_TIMEOUT
-    lambda 9 In_CERTIFICATE = Out_Alert_FATAL_DECODE_ERROR
-    lambda 9 In_EMPTY_CERTIFICATE = Out_Alert_FATAL_DECODE_ERROR
-    lambda 9 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_DECODE_ERROR
-    lambda 9 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 9 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 13 In_ECDH_CLIENT_HELLO = Out_Alert_WARNING_NO_RENEGOTIATION
-    lambda 13 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 13 In_DH_CLIENT_HELLO = Out_Alert_WARNING_NO_RENEGOTIATION
-    lambda 13 In_DH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 13 In_PSK_CLIENT_HELLO = Out_Alert_WARNING_NO_RENEGOTIATION
-    lambda 13 In_PSK_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 13 In_RSA_CLIENT_HELLO = Out_Alert_WARNING_NO_RENEGOTIATION
-    lambda 13 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 13 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 13 In_FINISHED = Out_TIMEOUT
-    lambda 13 In_APPLICATION = Out_APPLICATION
-    lambda 13 In_CERTIFICATE = Out_TIMEOUT
-    lambda 13 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 13 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 13 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 13 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 4 In_ECDH_CLIENT_HELLO = Out_Alert_FATAL_DECODE_ERROR
-    lambda 4 In_ECDH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_DECODE_ERROR
-    lambda 4 In_DH_CLIENT_HELLO = Out_Alert_FATAL_DECODE_ERROR
-    lambda 4 In_DH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_DECODE_ERROR
-    lambda 4 In_PSK_CLIENT_HELLO = Out_Alert_FATAL_DECODE_ERROR
-    lambda 4 In_PSK_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_DECODE_ERROR
-    lambda 4 In_RSA_CLIENT_HELLO = Out_Alert_FATAL_DECODE_ERROR
-    lambda 4 In_RSA_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_DECODE_ERROR
-    lambda 4 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 4 In_FINISHED = Out_Alert_FATAL_DECODE_ERROR
-    lambda 4 In_APPLICATION = Out_TIMEOUT
-    lambda 4 In_CERTIFICATE = Out_TIMEOUT
-    lambda 4 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 4 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_DECODE_ERROR
-    lambda 4 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 4 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 14 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 14 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 14 In_DH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 14 In_DH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 14 In_PSK_CLIENT_HELLO = Out_TIMEOUT
-    lambda 14 In_PSK_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 14 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 14 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 14 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 14 In_FINISHED = Out_TIMEOUT
-    lambda 14 In_APPLICATION = Out_TIMEOUT
-    lambda 14 In_CERTIFICATE = Out_TIMEOUT
-    lambda 14 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 14 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 14 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 14 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 11 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 11 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 11 In_DH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 11 In_DH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 11 In_PSK_CLIENT_HELLO = Out_TIMEOUT
-    lambda 11 In_PSK_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 11 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 11 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 11 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 11 In_FINISHED = Out_TIMEOUT
-    lambda 11 In_APPLICATION = Out_TIMEOUT
-    lambda 11 In_CERTIFICATE = Out_TIMEOUT
-    lambda 11 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 11 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 11 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 11 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 10 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 10 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 10 In_DH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 10 In_DH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 10 In_PSK_CLIENT_HELLO = Out_TIMEOUT
-    lambda 10 In_PSK_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 10 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 10 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 10 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 10 In_FINISHED = Out_TIMEOUT
-    lambda 10 In_APPLICATION = Out_TIMEOUT
-    lambda 10 In_CERTIFICATE = Out_TIMEOUT
-    lambda 10 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 10 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 10 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 10 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 15 In_ECDH_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 15 In_ECDH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 15 In_DH_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 15 In_DH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 15 In_PSK_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 15 In_PSK_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 15 In_RSA_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 15 In_RSA_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 15 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 15 In_FINISHED = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 15 In_APPLICATION = Out_TIMEOUT
-    lambda 15 In_CERTIFICATE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 15 In_EMPTY_CERTIFICATE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 15 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 15 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 15 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 16 In_ECDH_CLIENT_HELLO = Out_Alert_FATAL_BAD_RECORD_MAC
-    lambda 16 In_ECDH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_BAD_RECORD_MAC
-    lambda 16 In_DH_CLIENT_HELLO = Out_Alert_FATAL_BAD_RECORD_MAC
-    lambda 16 In_DH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_BAD_RECORD_MAC
-    lambda 16 In_PSK_CLIENT_HELLO = Out_Alert_FATAL_BAD_RECORD_MAC
-    lambda 16 In_PSK_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_BAD_RECORD_MAC
-    lambda 16 In_RSA_CLIENT_HELLO = Out_Alert_FATAL_BAD_RECORD_MAC
-    lambda 16 In_RSA_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_BAD_RECORD_MAC
-    lambda 16 In_CHANGE_CIPHER_SPEC = Out_Alert_FATAL_BAD_RECORD_MAC
-    lambda 16 In_FINISHED = Out_Alert_FATAL_BAD_RECORD_MAC
-    lambda 16 In_APPLICATION = Out_TIMEOUT
-    lambda 16 In_CERTIFICATE = Out_Alert_FATAL_BAD_RECORD_MAC
-    lambda 16 In_EMPTY_CERTIFICATE = Out_Alert_FATAL_BAD_RECORD_MAC
-    lambda 16 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_BAD_RECORD_MAC
-    lambda 16 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_BAD_RECORD_MAC
-    lambda 16 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_Alert_FATAL_BAD_RECORD_MAC
-    lambda _ _ = error "haal-gen: undefined transition"
+    deltaTable =
+        "\1\0\1\0\1\0\1\0\2\0\0\0\0\0\0\0\
+        \\3\1\4\1\5\1\6\1\2\1\1\1\1\1\1\1\
+        \\2\2\2\2\2\2\2\2\2\2\2\2\2\2\2\2\
+        \\1\1\1\1\1\1\1\1\2\1\3\12\1\1\1\1\
+        \\1\1\1\1\1\1\1\1\2\1\4\14\1\1\1\1\
+        \\1\1\1\1\1\8\1\1\2\1\5\1\1\1\1\1\
+        \\1\1\1\1\1\1\1\1\2\1\6\7\1\1\1\1\
+        \\1\10\1\10\1\10\1\11\2\1\7\1\1\1\1\1\
+        \\1\1\1\1\1\1\1\1\9\1\8\1\1\1\1\1\
+        \\2\2\2\2\2\2\2\2\2\13\9\2\2\2\2\2\
+        \\1\1\1\1\1\1\1\1\2\1\10\1\1\15\1\1\
+        \\1\1\1\1\1\1\1\1\2\1\11\1\1\8\1\1\
+        \\1\11\1\1\1\1\1\1\2\1\12\1\1\1\1\1\
+        \\13\13\13\13\13\13\13\13\2\13\13\13\13\13\2\2\
+        \\1\1\1\11\1\10\1\10\2\1\14\1\1\1\1\1\
+        \\1\1\1\1\1\1\1\1\16\1\15\1\1\1\1\1\
+        \\2\2\2\2\2\2\2\2\2\2\16\2\2\2\2\2"
+    lambdaTable =
+        "\0\1\0\1\0\1\0\1\1\1\1\1\1\1\1\1\
+        \\2\1\3\1\4\1\5\1\1\1\1\1\1\1\1\1\
+        \\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\
+        \\6\6\6\6\6\6\6\6\1\6\1\1\1\6\1\1\
+        \\6\6\6\6\6\6\6\6\1\6\1\1\1\6\1\1\
+        \\1\1\1\7\1\1\1\7\1\1\1\1\1\1\1\1\
+        \\6\6\6\6\6\6\6\6\1\6\1\1\1\6\1\1\
+        \\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\
+        \\8\8\8\8\8\8\8\8\1\8\1\8\8\8\1\1\
+        \\6\6\6\6\6\6\6\6\1\9\1\6\6\6\1\1\
+        \\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\
+        \\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\
+        \\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\
+        \\10\1\10\1\10\1\10\1\1\1\11\1\1\1\12\1\
+        \\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\
+        \\8\8\8\8\8\8\8\8\1\8\1\8\8\8\1\1\
+        \\13\13\13\13\13\13\13\13\13\13\1\13\13\13\13\13"
diff --git a/src/Haal/Models/DTLS/NssV3V6V7DheEcdheRsa.hs b/src/Haal/Models/DTLS/NssV3V6V7DheEcdheRsa.hs
--- a/src/Haal/Models/DTLS/NssV3V6V7DheEcdheRsa.hs
+++ b/src/Haal/Models/DTLS/NssV3V6V7DheEcdheRsa.hs
@@ -5,8 +5,7 @@
     , nssV3V6V7DheEcdheRsa
     ) where
 
-import qualified Data.Set as Set
-import Haal.Automaton.MealyAutomaton (MealyAutomaton, mkMealyAutomaton)
+import Haal.Automaton.MealyAutomaton (MealyAutomaton, mkMealyAutomatonTable)
 
 data NssV3V6V7DheEcdheRsaInput
     = In_ECDH_CLIENT_HELLO
@@ -35,228 +34,143 @@
     | Out_Alert_WARNING_CLOSE_NOTIFY
     deriving (Show, Eq, Ord, Enum, Bounded)
 
+{- Transitions (state  input -> next state / output):
+    0     In_ECDH_CLIENT_HELLO               -> 1 / Out_SERVER_HELLO_CERTIFICATE_ECDHE_SERVER_KEY_EXCHANGE_SERVER_HELLO_DONE
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_DH_CLIENT_HELLO                 -> 3 / Out_SERVER_HELLO_CERTIFICATE_DHE_SERVER_KEY_EXCHANGE_SERVER_HELLO_DONE
+          In_DH_CLIENT_KEY_EXCHANGE          -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_RSA_CLIENT_HELLO                -> 4 / Out_SERVER_HELLO_CERTIFICATE_SERVER_HELLO_DONE
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CHANGE_CIPHER_SPEC              -> 5 / Out_TIMEOUT
+          In_FINISHED                        -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_APPLICATION                     -> 0 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 2 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 2 / Out_TIMEOUT
+    1     In_ECDH_CLIENT_HELLO               -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 6 / Out_TIMEOUT
+          In_DH_CLIENT_HELLO                 -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_DH_CLIENT_KEY_EXCHANGE          -> 2 / Out_Alert_FATAL_HANDSHAKE_FAILURE
+          In_RSA_CLIENT_HELLO                -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 2 / Out_Alert_FATAL_HANDSHAKE_FAILURE
+          In_CHANGE_CIPHER_SPEC              -> 5 / Out_TIMEOUT
+          In_FINISHED                        -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_APPLICATION                     -> 1 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 2 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 2 / Out_TIMEOUT
+    2     In_ECDH_CLIENT_HELLO               -> 2 / Out_SOCKET_CLOSED
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 2 / Out_SOCKET_CLOSED
+          In_DH_CLIENT_HELLO                 -> 2 / Out_SOCKET_CLOSED
+          In_DH_CLIENT_KEY_EXCHANGE          -> 2 / Out_SOCKET_CLOSED
+          In_RSA_CLIENT_HELLO                -> 2 / Out_SOCKET_CLOSED
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 2 / Out_SOCKET_CLOSED
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_SOCKET_CLOSED
+          In_FINISHED                        -> 2 / Out_SOCKET_CLOSED
+          In_APPLICATION                     -> 2 / Out_SOCKET_CLOSED
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 2 / Out_SOCKET_CLOSED
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 2 / Out_SOCKET_CLOSED
+    3     In_ECDH_CLIENT_HELLO               -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 2 / Out_Alert_FATAL_DECODE_ERROR
+          In_DH_CLIENT_HELLO                 -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_DH_CLIENT_KEY_EXCHANGE          -> 6 / Out_TIMEOUT
+          In_RSA_CLIENT_HELLO                -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 7 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 5 / Out_TIMEOUT
+          In_FINISHED                        -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 2 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 2 / Out_TIMEOUT
+    4     In_ECDH_CLIENT_HELLO               -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 7 / Out_TIMEOUT
+          In_DH_CLIENT_HELLO                 -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_DH_CLIENT_KEY_EXCHANGE          -> 7 / Out_TIMEOUT
+          In_RSA_CLIENT_HELLO                -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 6 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 5 / Out_TIMEOUT
+          In_FINISHED                        -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_APPLICATION                     -> 4 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 2 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 2 / Out_TIMEOUT
+    5     In_ECDH_CLIENT_HELLO               -> 5 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 5 / Out_TIMEOUT
+          In_DH_CLIENT_HELLO                 -> 5 / Out_TIMEOUT
+          In_DH_CLIENT_KEY_EXCHANGE          -> 5 / Out_TIMEOUT
+          In_RSA_CLIENT_HELLO                -> 5 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 5 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 5 / Out_TIMEOUT
+          In_FINISHED                        -> 5 / Out_TIMEOUT
+          In_APPLICATION                     -> 5 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 5 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 5 / Out_TIMEOUT
+    6     In_ECDH_CLIENT_HELLO               -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_DH_CLIENT_HELLO                 -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_DH_CLIENT_KEY_EXCHANGE          -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_RSA_CLIENT_HELLO                -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CHANGE_CIPHER_SPEC              -> 8 / Out_TIMEOUT
+          In_FINISHED                        -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_APPLICATION                     -> 6 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 2 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 2 / Out_TIMEOUT
+    7     In_ECDH_CLIENT_HELLO               -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_DH_CLIENT_HELLO                 -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_DH_CLIENT_KEY_EXCHANGE          -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_RSA_CLIENT_HELLO                -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CHANGE_CIPHER_SPEC              -> 5 / Out_TIMEOUT
+          In_FINISHED                        -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_APPLICATION                     -> 7 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 2 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 2 / Out_TIMEOUT
+    8     In_ECDH_CLIENT_HELLO               -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_DH_CLIENT_HELLO                 -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_DH_CLIENT_KEY_EXCHANGE          -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_RSA_CLIENT_HELLO                -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CHANGE_CIPHER_SPEC              -> 5 / Out_TIMEOUT
+          In_FINISHED                        -> 9 / Out_CHANGE_CIPHER_SPEC_FINISHED
+          In_APPLICATION                     -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 2 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 2 / Out_TIMEOUT
+    9     In_ECDH_CLIENT_HELLO               -> 9 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 9 / Out_TIMEOUT
+          In_DH_CLIENT_HELLO                 -> 9 / Out_TIMEOUT
+          In_DH_CLIENT_KEY_EXCHANGE          -> 9 / Out_TIMEOUT
+          In_RSA_CLIENT_HELLO                -> 9 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 9 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 5 / Out_TIMEOUT
+          In_FINISHED                        -> 9 / Out_TIMEOUT
+          In_APPLICATION                     -> 9 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 5 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 2 / Out_Alert_WARNING_CLOSE_NOTIFY
+-}
 nssV3V6V7DheEcdheRsa :: MealyAutomaton Int NssV3V6V7DheEcdheRsaInput NssV3V6V7DheEcdheRsaOutput
-nssV3V6V7DheEcdheRsa = mkMealyAutomaton delta lambda (Set.fromList [0..9]) 0
+nssV3V6V7DheEcdheRsa =
+    case mkMealyAutomatonTable 10 0 deltaTable lambdaTable of
+        Right m -> m
+        Left err -> error ("haal-gen: invalid transition table: " ++ err)
   where
-    delta 0 In_ECDH_CLIENT_HELLO = 1
-    delta 0 In_ECDH_CLIENT_KEY_EXCHANGE = 2
-    delta 0 In_DH_CLIENT_HELLO = 3
-    delta 0 In_DH_CLIENT_KEY_EXCHANGE = 2
-    delta 0 In_RSA_CLIENT_HELLO = 4
-    delta 0 In_RSA_CLIENT_KEY_EXCHANGE = 2
-    delta 0 In_CHANGE_CIPHER_SPEC = 5
-    delta 0 In_FINISHED = 2
-    delta 0 In_APPLICATION = 0
-    delta 0 In_Alert_WARNING_CLOSE_NOTIFY = 2
-    delta 0 In_Alert_FATAL_UNEXPECTED_MESSAGE = 2
-    delta 2 In_ECDH_CLIENT_HELLO = 2
-    delta 2 In_ECDH_CLIENT_KEY_EXCHANGE = 2
-    delta 2 In_DH_CLIENT_HELLO = 2
-    delta 2 In_DH_CLIENT_KEY_EXCHANGE = 2
-    delta 2 In_RSA_CLIENT_HELLO = 2
-    delta 2 In_RSA_CLIENT_KEY_EXCHANGE = 2
-    delta 2 In_CHANGE_CIPHER_SPEC = 2
-    delta 2 In_FINISHED = 2
-    delta 2 In_APPLICATION = 2
-    delta 2 In_Alert_WARNING_CLOSE_NOTIFY = 2
-    delta 2 In_Alert_FATAL_UNEXPECTED_MESSAGE = 2
-    delta 1 In_ECDH_CLIENT_HELLO = 2
-    delta 1 In_ECDH_CLIENT_KEY_EXCHANGE = 6
-    delta 1 In_DH_CLIENT_HELLO = 2
-    delta 1 In_DH_CLIENT_KEY_EXCHANGE = 2
-    delta 1 In_RSA_CLIENT_HELLO = 2
-    delta 1 In_RSA_CLIENT_KEY_EXCHANGE = 2
-    delta 1 In_CHANGE_CIPHER_SPEC = 5
-    delta 1 In_FINISHED = 2
-    delta 1 In_APPLICATION = 1
-    delta 1 In_Alert_WARNING_CLOSE_NOTIFY = 2
-    delta 1 In_Alert_FATAL_UNEXPECTED_MESSAGE = 2
-    delta 5 In_ECDH_CLIENT_HELLO = 5
-    delta 5 In_ECDH_CLIENT_KEY_EXCHANGE = 5
-    delta 5 In_DH_CLIENT_HELLO = 5
-    delta 5 In_DH_CLIENT_KEY_EXCHANGE = 5
-    delta 5 In_RSA_CLIENT_HELLO = 5
-    delta 5 In_RSA_CLIENT_KEY_EXCHANGE = 5
-    delta 5 In_CHANGE_CIPHER_SPEC = 5
-    delta 5 In_FINISHED = 5
-    delta 5 In_APPLICATION = 5
-    delta 5 In_Alert_WARNING_CLOSE_NOTIFY = 5
-    delta 5 In_Alert_FATAL_UNEXPECTED_MESSAGE = 5
-    delta 3 In_ECDH_CLIENT_HELLO = 2
-    delta 3 In_ECDH_CLIENT_KEY_EXCHANGE = 2
-    delta 3 In_DH_CLIENT_HELLO = 2
-    delta 3 In_DH_CLIENT_KEY_EXCHANGE = 6
-    delta 3 In_RSA_CLIENT_HELLO = 2
-    delta 3 In_RSA_CLIENT_KEY_EXCHANGE = 7
-    delta 3 In_CHANGE_CIPHER_SPEC = 5
-    delta 3 In_FINISHED = 2
-    delta 3 In_APPLICATION = 3
-    delta 3 In_Alert_WARNING_CLOSE_NOTIFY = 2
-    delta 3 In_Alert_FATAL_UNEXPECTED_MESSAGE = 2
-    delta 6 In_ECDH_CLIENT_HELLO = 2
-    delta 6 In_ECDH_CLIENT_KEY_EXCHANGE = 2
-    delta 6 In_DH_CLIENT_HELLO = 2
-    delta 6 In_DH_CLIENT_KEY_EXCHANGE = 2
-    delta 6 In_RSA_CLIENT_HELLO = 2
-    delta 6 In_RSA_CLIENT_KEY_EXCHANGE = 2
-    delta 6 In_CHANGE_CIPHER_SPEC = 8
-    delta 6 In_FINISHED = 2
-    delta 6 In_APPLICATION = 6
-    delta 6 In_Alert_WARNING_CLOSE_NOTIFY = 2
-    delta 6 In_Alert_FATAL_UNEXPECTED_MESSAGE = 2
-    delta 8 In_ECDH_CLIENT_HELLO = 2
-    delta 8 In_ECDH_CLIENT_KEY_EXCHANGE = 2
-    delta 8 In_DH_CLIENT_HELLO = 2
-    delta 8 In_DH_CLIENT_KEY_EXCHANGE = 2
-    delta 8 In_RSA_CLIENT_HELLO = 2
-    delta 8 In_RSA_CLIENT_KEY_EXCHANGE = 2
-    delta 8 In_CHANGE_CIPHER_SPEC = 5
-    delta 8 In_FINISHED = 9
-    delta 8 In_APPLICATION = 2
-    delta 8 In_Alert_WARNING_CLOSE_NOTIFY = 2
-    delta 8 In_Alert_FATAL_UNEXPECTED_MESSAGE = 2
-    delta 7 In_ECDH_CLIENT_HELLO = 2
-    delta 7 In_ECDH_CLIENT_KEY_EXCHANGE = 2
-    delta 7 In_DH_CLIENT_HELLO = 2
-    delta 7 In_DH_CLIENT_KEY_EXCHANGE = 2
-    delta 7 In_RSA_CLIENT_HELLO = 2
-    delta 7 In_RSA_CLIENT_KEY_EXCHANGE = 2
-    delta 7 In_CHANGE_CIPHER_SPEC = 5
-    delta 7 In_FINISHED = 2
-    delta 7 In_APPLICATION = 7
-    delta 7 In_Alert_WARNING_CLOSE_NOTIFY = 2
-    delta 7 In_Alert_FATAL_UNEXPECTED_MESSAGE = 2
-    delta 4 In_ECDH_CLIENT_HELLO = 2
-    delta 4 In_ECDH_CLIENT_KEY_EXCHANGE = 7
-    delta 4 In_DH_CLIENT_HELLO = 2
-    delta 4 In_DH_CLIENT_KEY_EXCHANGE = 7
-    delta 4 In_RSA_CLIENT_HELLO = 2
-    delta 4 In_RSA_CLIENT_KEY_EXCHANGE = 6
-    delta 4 In_CHANGE_CIPHER_SPEC = 5
-    delta 4 In_FINISHED = 2
-    delta 4 In_APPLICATION = 4
-    delta 4 In_Alert_WARNING_CLOSE_NOTIFY = 2
-    delta 4 In_Alert_FATAL_UNEXPECTED_MESSAGE = 2
-    delta 9 In_ECDH_CLIENT_HELLO = 9
-    delta 9 In_ECDH_CLIENT_KEY_EXCHANGE = 9
-    delta 9 In_DH_CLIENT_HELLO = 9
-    delta 9 In_DH_CLIENT_KEY_EXCHANGE = 9
-    delta 9 In_RSA_CLIENT_HELLO = 9
-    delta 9 In_RSA_CLIENT_KEY_EXCHANGE = 9
-    delta 9 In_CHANGE_CIPHER_SPEC = 5
-    delta 9 In_FINISHED = 9
-    delta 9 In_APPLICATION = 9
-    delta 9 In_Alert_WARNING_CLOSE_NOTIFY = 5
-    delta 9 In_Alert_FATAL_UNEXPECTED_MESSAGE = 2
-    delta _ _ = error "haal-gen: undefined transition"
-    lambda 0 In_ECDH_CLIENT_HELLO = Out_SERVER_HELLO_CERTIFICATE_ECDHE_SERVER_KEY_EXCHANGE_SERVER_HELLO_DONE
-    lambda 0 In_ECDH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 0 In_DH_CLIENT_HELLO = Out_SERVER_HELLO_CERTIFICATE_DHE_SERVER_KEY_EXCHANGE_SERVER_HELLO_DONE
-    lambda 0 In_DH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 0 In_RSA_CLIENT_HELLO = Out_SERVER_HELLO_CERTIFICATE_SERVER_HELLO_DONE
-    lambda 0 In_RSA_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 0 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 0 In_FINISHED = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 0 In_APPLICATION = Out_TIMEOUT
-    lambda 0 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 0 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 2 In_ECDH_CLIENT_HELLO = Out_SOCKET_CLOSED
-    lambda 2 In_ECDH_CLIENT_KEY_EXCHANGE = Out_SOCKET_CLOSED
-    lambda 2 In_DH_CLIENT_HELLO = Out_SOCKET_CLOSED
-    lambda 2 In_DH_CLIENT_KEY_EXCHANGE = Out_SOCKET_CLOSED
-    lambda 2 In_RSA_CLIENT_HELLO = Out_SOCKET_CLOSED
-    lambda 2 In_RSA_CLIENT_KEY_EXCHANGE = Out_SOCKET_CLOSED
-    lambda 2 In_CHANGE_CIPHER_SPEC = Out_SOCKET_CLOSED
-    lambda 2 In_FINISHED = Out_SOCKET_CLOSED
-    lambda 2 In_APPLICATION = Out_SOCKET_CLOSED
-    lambda 2 In_Alert_WARNING_CLOSE_NOTIFY = Out_SOCKET_CLOSED
-    lambda 2 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_SOCKET_CLOSED
-    lambda 1 In_ECDH_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 1 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 1 In_DH_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 1 In_DH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_HANDSHAKE_FAILURE
-    lambda 1 In_RSA_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 1 In_RSA_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_HANDSHAKE_FAILURE
-    lambda 1 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 1 In_FINISHED = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 1 In_APPLICATION = Out_TIMEOUT
-    lambda 1 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 1 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 5 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 5 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 5 In_DH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 5 In_DH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 5 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 5 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 5 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 5 In_FINISHED = Out_TIMEOUT
-    lambda 5 In_APPLICATION = Out_TIMEOUT
-    lambda 5 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 5 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 3 In_ECDH_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 3 In_ECDH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_DECODE_ERROR
-    lambda 3 In_DH_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 3 In_DH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 3 In_RSA_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 3 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 3 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 3 In_FINISHED = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 3 In_APPLICATION = Out_TIMEOUT
-    lambda 3 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 3 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 6 In_ECDH_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 6 In_ECDH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 6 In_DH_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 6 In_DH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 6 In_RSA_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 6 In_RSA_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 6 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 6 In_FINISHED = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 6 In_APPLICATION = Out_TIMEOUT
-    lambda 6 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 6 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 8 In_ECDH_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 8 In_ECDH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 8 In_DH_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 8 In_DH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 8 In_RSA_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 8 In_RSA_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 8 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 8 In_FINISHED = Out_CHANGE_CIPHER_SPEC_FINISHED
-    lambda 8 In_APPLICATION = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 8 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 8 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 7 In_ECDH_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 7 In_ECDH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 7 In_DH_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 7 In_DH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 7 In_RSA_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 7 In_RSA_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 7 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 7 In_FINISHED = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 7 In_APPLICATION = Out_TIMEOUT
-    lambda 7 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 7 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 4 In_ECDH_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 4 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 4 In_DH_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 4 In_DH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 4 In_RSA_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 4 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 4 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 4 In_FINISHED = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 4 In_APPLICATION = Out_TIMEOUT
-    lambda 4 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 4 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 9 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 9 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 9 In_DH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 9 In_DH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 9 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 9 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 9 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 9 In_FINISHED = Out_TIMEOUT
-    lambda 9 In_APPLICATION = Out_TIMEOUT
-    lambda 9 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 9 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda _ _ = error "haal-gen: undefined transition"
+    deltaTable =
+        "\1\2\3\2\4\2\5\2\0\2\2\
+        \\2\6\2\2\2\2\5\2\1\2\2\
+        \\2\2\2\2\2\2\2\2\2\2\2\
+        \\2\2\2\6\2\7\5\2\3\2\2\
+        \\2\7\2\7\2\6\5\2\4\2\2\
+        \\5\5\5\5\5\5\5\5\5\5\5\
+        \\2\2\2\2\2\2\8\2\6\2\2\
+        \\2\2\2\2\2\2\5\2\7\2\2\
+        \\2\2\2\2\2\2\5\9\2\2\2\
+        \\9\9\9\9\9\9\5\9\9\5\2"
+    lambdaTable =
+        "\0\1\2\1\3\1\4\1\4\4\4\
+        \\1\4\1\6\1\6\4\1\4\4\4\
+        \\5\5\5\5\5\5\5\5\5\5\5\
+        \\1\7\1\4\1\4\4\1\4\4\4\
+        \\1\4\1\4\1\4\4\1\4\4\4\
+        \\4\4\4\4\4\4\4\4\4\4\4\
+        \\1\1\1\1\1\1\4\1\4\4\4\
+        \\1\1\1\1\1\1\4\1\4\4\4\
+        \\1\1\1\1\1\1\4\8\1\4\4\
+        \\4\4\4\4\4\4\4\4\4\4\9"
diff --git a/src/Haal/Models/DTLS/OpensslV1V1V1bAllCertNoneNreq.hs b/src/Haal/Models/DTLS/OpensslV1V1V1bAllCertNoneNreq.hs
--- a/src/Haal/Models/DTLS/OpensslV1V1V1bAllCertNoneNreq.hs
+++ b/src/Haal/Models/DTLS/OpensslV1V1V1bAllCertNoneNreq.hs
@@ -5,8 +5,7 @@
     , opensslV1V1V1bAllCertNoneNreq
     ) where
 
-import qualified Data.Set as Set
-import Haal.Automaton.MealyAutomaton (MealyAutomaton, mkMealyAutomaton)
+import Haal.Automaton.MealyAutomaton (MealyAutomaton, mkMealyAutomatonTable)
 
 data OpensslV1V1V1bAllCertNoneNreqInput
     = In_ECDH_CLIENT_HELLO
@@ -41,456 +40,265 @@
     | Out_CHANGE_CIPHER_SPEC_FINISHED
     deriving (Show, Eq, Ord, Enum, Bounded)
 
+{- Transitions (state  input -> next state / output):
+    0     In_ECDH_CLIENT_HELLO               -> 1 / Out_HELLO_VERIFY_REQUEST
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_DH_CLIENT_HELLO                 -> 1 / Out_HELLO_VERIFY_REQUEST
+          In_DH_CLIENT_KEY_EXCHANGE          -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_PSK_CLIENT_HELLO                -> 1 / Out_HELLO_VERIFY_REQUEST
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_RSA_CLIENT_HELLO                -> 1 / Out_HELLO_VERIFY_REQUEST
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 2 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_APPLICATION                     -> 0 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CERTIFICATE                     -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_EMPTY_CERTIFICATE               -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CERTIFICATE_VERIFY              -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 0 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 0 / Out_TIMEOUT
+    1     In_ECDH_CLIENT_HELLO               -> 4 / Out_SERVER_HELLO_CERTIFICATE_ECDHE_SERVER_KEY_EXCHANGE_SERVER_HELLO_DONE
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_DH_CLIENT_HELLO                 -> 5 / Out_SERVER_HELLO_CERTIFICATE_DHE_SERVER_KEY_EXCHANGE_SERVER_HELLO_DONE
+          In_DH_CLIENT_KEY_EXCHANGE          -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_PSK_CLIENT_HELLO                -> 6 / Out_SERVER_HELLO_SERVER_HELLO_DONE
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_RSA_CLIENT_HELLO                -> 7 / Out_SERVER_HELLO_CERTIFICATE_SERVER_HELLO_DONE
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 2 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_APPLICATION                     -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CERTIFICATE                     -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_EMPTY_CERTIFICATE               -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CERTIFICATE_VERIFY              -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 2 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 2 / Out_TIMEOUT
+    2     In_ECDH_CLIENT_HELLO               -> 2 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 2 / Out_TIMEOUT
+          In_DH_CLIENT_HELLO                 -> 2 / Out_TIMEOUT
+          In_DH_CLIENT_KEY_EXCHANGE          -> 2 / Out_TIMEOUT
+          In_PSK_CLIENT_HELLO                -> 2 / Out_TIMEOUT
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 2 / Out_TIMEOUT
+          In_RSA_CLIENT_HELLO                -> 2 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 2 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 2 / Out_TIMEOUT
+          In_APPLICATION                     -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CERTIFICATE                     -> 2 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 2 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 2 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 2 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 2 / Out_TIMEOUT
+    3     In_ECDH_CLIENT_HELLO               -> 3 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 3 / Out_TIMEOUT
+          In_DH_CLIENT_HELLO                 -> 3 / Out_TIMEOUT
+          In_DH_CLIENT_KEY_EXCHANGE          -> 3 / Out_TIMEOUT
+          In_PSK_CLIENT_HELLO                -> 3 / Out_TIMEOUT
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 3 / Out_TIMEOUT
+          In_RSA_CLIENT_HELLO                -> 3 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 3 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 3 / Out_TIMEOUT
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 3 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 3 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 3 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 3 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 3 / Out_TIMEOUT
+    4     In_ECDH_CLIENT_HELLO               -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 8 / Out_TIMEOUT
+          In_DH_CLIENT_HELLO                 -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_DH_CLIENT_KEY_EXCHANGE          -> 2 / Out_Alert_FATAL_DECODE_ERROR
+          In_PSK_CLIENT_HELLO                -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 2 / Out_Alert_FATAL_DECODE_ERROR
+          In_RSA_CLIENT_HELLO                -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 2 / Out_Alert_FATAL_DECODE_ERROR
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 2 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_APPLICATION                     -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CERTIFICATE                     -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_EMPTY_CERTIFICATE               -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CERTIFICATE_VERIFY              -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 2 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 2 / Out_TIMEOUT
+    5     In_ECDH_CLIENT_HELLO               -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 2 / Out_Alert_FATAL_DECODE_ERROR
+          In_DH_CLIENT_HELLO                 -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_DH_CLIENT_KEY_EXCHANGE          -> 8 / Out_TIMEOUT
+          In_PSK_CLIENT_HELLO                -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 9 / Out_TIMEOUT
+          In_RSA_CLIENT_HELLO                -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 9 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 2 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_APPLICATION                     -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CERTIFICATE                     -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_EMPTY_CERTIFICATE               -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CERTIFICATE_VERIFY              -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 2 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 2 / Out_TIMEOUT
+    6     In_ECDH_CLIENT_HELLO               -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 2 / Out_Alert_FATAL_DECODE_ERROR
+          In_DH_CLIENT_HELLO                 -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_DH_CLIENT_KEY_EXCHANGE          -> 2 / Out_Alert_FATAL_DECODE_ERROR
+          In_PSK_CLIENT_HELLO                -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 8 / Out_TIMEOUT
+          In_RSA_CLIENT_HELLO                -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 2 / Out_Alert_FATAL_DECODE_ERROR
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 2 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_APPLICATION                     -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CERTIFICATE                     -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_EMPTY_CERTIFICATE               -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CERTIFICATE_VERIFY              -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 2 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 2 / Out_TIMEOUT
+    7     In_ECDH_CLIENT_HELLO               -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 2 / Out_Alert_FATAL_DECODE_ERROR
+          In_DH_CLIENT_HELLO                 -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_DH_CLIENT_KEY_EXCHANGE          -> 2 / Out_Alert_FATAL_DECRYPT_ERROR
+          In_PSK_CLIENT_HELLO                -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 9 / Out_TIMEOUT
+          In_RSA_CLIENT_HELLO                -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 8 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 2 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_APPLICATION                     -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CERTIFICATE                     -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_EMPTY_CERTIFICATE               -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CERTIFICATE_VERIFY              -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 2 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 2 / Out_TIMEOUT
+    8     In_ECDH_CLIENT_HELLO               -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_DH_CLIENT_HELLO                 -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_DH_CLIENT_KEY_EXCHANGE          -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_PSK_CLIENT_HELLO                -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_RSA_CLIENT_HELLO                -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CHANGE_CIPHER_SPEC              -> 10 / Out_TIMEOUT
+          In_FINISHED                        -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_APPLICATION                     -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CERTIFICATE                     -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_EMPTY_CERTIFICATE               -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CERTIFICATE_VERIFY              -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 2 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 2 / Out_TIMEOUT
+    9     In_ECDH_CLIENT_HELLO               -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_DH_CLIENT_HELLO                 -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_DH_CLIENT_KEY_EXCHANGE          -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_PSK_CLIENT_HELLO                -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_RSA_CLIENT_HELLO                -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_APPLICATION                     -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CERTIFICATE                     -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_EMPTY_CERTIFICATE               -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CERTIFICATE_VERIFY              -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 2 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 2 / Out_TIMEOUT
+    10    In_ECDH_CLIENT_HELLO               -> 3 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 3 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_DH_CLIENT_HELLO                 -> 3 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_DH_CLIENT_KEY_EXCHANGE          -> 3 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_PSK_CLIENT_HELLO                -> 3 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 3 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_RSA_CLIENT_HELLO                -> 3 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 3 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 11 / Out_CHANGE_CIPHER_SPEC_FINISHED
+          In_APPLICATION                     -> 10 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 3 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_EMPTY_CERTIFICATE               -> 3 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CERTIFICATE_VERIFY              -> 3 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 12 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 12 / Out_TIMEOUT
+    11    In_ECDH_CLIENT_HELLO               -> 13 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 13 / Out_TIMEOUT
+          In_DH_CLIENT_HELLO                 -> 13 / Out_TIMEOUT
+          In_DH_CLIENT_KEY_EXCHANGE          -> 13 / Out_TIMEOUT
+          In_PSK_CLIENT_HELLO                -> 13 / Out_TIMEOUT
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 13 / Out_TIMEOUT
+          In_RSA_CLIENT_HELLO                -> 13 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 13 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 11 / Out_CHANGE_CIPHER_SPEC_FINISHED
+          In_APPLICATION                     -> 11 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 13 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 13 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 13 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 3 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 3 / Out_TIMEOUT
+    12    In_ECDH_CLIENT_HELLO               -> 3 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 3 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_DH_CLIENT_HELLO                 -> 3 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_DH_CLIENT_KEY_EXCHANGE          -> 3 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_PSK_CLIENT_HELLO                -> 3 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 3 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_RSA_CLIENT_HELLO                -> 3 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 3 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 3 / Out_CHANGE_CIPHER_SPEC_FINISHED
+          In_APPLICATION                     -> 12 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 3 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_EMPTY_CERTIFICATE               -> 3 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CERTIFICATE_VERIFY              -> 3 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 12 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 12 / Out_TIMEOUT
+    13    In_ECDH_CLIENT_HELLO               -> 13 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 13 / Out_TIMEOUT
+          In_DH_CLIENT_HELLO                 -> 13 / Out_TIMEOUT
+          In_DH_CLIENT_KEY_EXCHANGE          -> 13 / Out_TIMEOUT
+          In_PSK_CLIENT_HELLO                -> 13 / Out_TIMEOUT
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 13 / Out_TIMEOUT
+          In_RSA_CLIENT_HELLO                -> 13 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 13 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 13 / Out_TIMEOUT
+          In_APPLICATION                     -> 3 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CERTIFICATE                     -> 13 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 13 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 13 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 3 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 3 / Out_TIMEOUT
+-}
 opensslV1V1V1bAllCertNoneNreq :: MealyAutomaton Int OpensslV1V1V1bAllCertNoneNreqInput OpensslV1V1V1bAllCertNoneNreqOutput
-opensslV1V1V1bAllCertNoneNreq = mkMealyAutomaton delta lambda (Set.fromList [0..13]) 0
+opensslV1V1V1bAllCertNoneNreq =
+    case mkMealyAutomatonTable 14 0 deltaTable lambdaTable of
+        Right m -> m
+        Left err -> error ("haal-gen: invalid transition table: " ++ err)
   where
-    delta 0 In_ECDH_CLIENT_HELLO = 1
-    delta 0 In_ECDH_CLIENT_KEY_EXCHANGE = 2
-    delta 0 In_DH_CLIENT_HELLO = 1
-    delta 0 In_DH_CLIENT_KEY_EXCHANGE = 2
-    delta 0 In_PSK_CLIENT_HELLO = 1
-    delta 0 In_PSK_CLIENT_KEY_EXCHANGE = 2
-    delta 0 In_RSA_CLIENT_HELLO = 1
-    delta 0 In_RSA_CLIENT_KEY_EXCHANGE = 2
-    delta 0 In_CHANGE_CIPHER_SPEC = 3
-    delta 0 In_FINISHED = 2
-    delta 0 In_APPLICATION = 0
-    delta 0 In_CERTIFICATE = 2
-    delta 0 In_EMPTY_CERTIFICATE = 2
-    delta 0 In_CERTIFICATE_VERIFY = 2
-    delta 0 In_Alert_WARNING_CLOSE_NOTIFY = 0
-    delta 0 In_Alert_FATAL_UNEXPECTED_MESSAGE = 0
-    delta 2 In_ECDH_CLIENT_HELLO = 2
-    delta 2 In_ECDH_CLIENT_KEY_EXCHANGE = 2
-    delta 2 In_DH_CLIENT_HELLO = 2
-    delta 2 In_DH_CLIENT_KEY_EXCHANGE = 2
-    delta 2 In_PSK_CLIENT_HELLO = 2
-    delta 2 In_PSK_CLIENT_KEY_EXCHANGE = 2
-    delta 2 In_RSA_CLIENT_HELLO = 2
-    delta 2 In_RSA_CLIENT_KEY_EXCHANGE = 2
-    delta 2 In_CHANGE_CIPHER_SPEC = 3
-    delta 2 In_FINISHED = 2
-    delta 2 In_APPLICATION = 2
-    delta 2 In_CERTIFICATE = 2
-    delta 2 In_EMPTY_CERTIFICATE = 2
-    delta 2 In_CERTIFICATE_VERIFY = 2
-    delta 2 In_Alert_WARNING_CLOSE_NOTIFY = 2
-    delta 2 In_Alert_FATAL_UNEXPECTED_MESSAGE = 2
-    delta 1 In_ECDH_CLIENT_HELLO = 4
-    delta 1 In_ECDH_CLIENT_KEY_EXCHANGE = 2
-    delta 1 In_DH_CLIENT_HELLO = 5
-    delta 1 In_DH_CLIENT_KEY_EXCHANGE = 2
-    delta 1 In_PSK_CLIENT_HELLO = 6
-    delta 1 In_PSK_CLIENT_KEY_EXCHANGE = 2
-    delta 1 In_RSA_CLIENT_HELLO = 7
-    delta 1 In_RSA_CLIENT_KEY_EXCHANGE = 2
-    delta 1 In_CHANGE_CIPHER_SPEC = 3
-    delta 1 In_FINISHED = 2
-    delta 1 In_APPLICATION = 2
-    delta 1 In_CERTIFICATE = 2
-    delta 1 In_EMPTY_CERTIFICATE = 2
-    delta 1 In_CERTIFICATE_VERIFY = 2
-    delta 1 In_Alert_WARNING_CLOSE_NOTIFY = 2
-    delta 1 In_Alert_FATAL_UNEXPECTED_MESSAGE = 2
-    delta 4 In_ECDH_CLIENT_HELLO = 2
-    delta 4 In_ECDH_CLIENT_KEY_EXCHANGE = 8
-    delta 4 In_DH_CLIENT_HELLO = 2
-    delta 4 In_DH_CLIENT_KEY_EXCHANGE = 2
-    delta 4 In_PSK_CLIENT_HELLO = 2
-    delta 4 In_PSK_CLIENT_KEY_EXCHANGE = 2
-    delta 4 In_RSA_CLIENT_HELLO = 2
-    delta 4 In_RSA_CLIENT_KEY_EXCHANGE = 2
-    delta 4 In_CHANGE_CIPHER_SPEC = 3
-    delta 4 In_FINISHED = 2
-    delta 4 In_APPLICATION = 2
-    delta 4 In_CERTIFICATE = 2
-    delta 4 In_EMPTY_CERTIFICATE = 2
-    delta 4 In_CERTIFICATE_VERIFY = 2
-    delta 4 In_Alert_WARNING_CLOSE_NOTIFY = 2
-    delta 4 In_Alert_FATAL_UNEXPECTED_MESSAGE = 2
-    delta 3 In_ECDH_CLIENT_HELLO = 3
-    delta 3 In_ECDH_CLIENT_KEY_EXCHANGE = 3
-    delta 3 In_DH_CLIENT_HELLO = 3
-    delta 3 In_DH_CLIENT_KEY_EXCHANGE = 3
-    delta 3 In_PSK_CLIENT_HELLO = 3
-    delta 3 In_PSK_CLIENT_KEY_EXCHANGE = 3
-    delta 3 In_RSA_CLIENT_HELLO = 3
-    delta 3 In_RSA_CLIENT_KEY_EXCHANGE = 3
-    delta 3 In_CHANGE_CIPHER_SPEC = 3
-    delta 3 In_FINISHED = 3
-    delta 3 In_APPLICATION = 3
-    delta 3 In_CERTIFICATE = 3
-    delta 3 In_EMPTY_CERTIFICATE = 3
-    delta 3 In_CERTIFICATE_VERIFY = 3
-    delta 3 In_Alert_WARNING_CLOSE_NOTIFY = 3
-    delta 3 In_Alert_FATAL_UNEXPECTED_MESSAGE = 3
-    delta 5 In_ECDH_CLIENT_HELLO = 2
-    delta 5 In_ECDH_CLIENT_KEY_EXCHANGE = 2
-    delta 5 In_DH_CLIENT_HELLO = 2
-    delta 5 In_DH_CLIENT_KEY_EXCHANGE = 8
-    delta 5 In_PSK_CLIENT_HELLO = 2
-    delta 5 In_PSK_CLIENT_KEY_EXCHANGE = 9
-    delta 5 In_RSA_CLIENT_HELLO = 2
-    delta 5 In_RSA_CLIENT_KEY_EXCHANGE = 9
-    delta 5 In_CHANGE_CIPHER_SPEC = 3
-    delta 5 In_FINISHED = 2
-    delta 5 In_APPLICATION = 2
-    delta 5 In_CERTIFICATE = 2
-    delta 5 In_EMPTY_CERTIFICATE = 2
-    delta 5 In_CERTIFICATE_VERIFY = 2
-    delta 5 In_Alert_WARNING_CLOSE_NOTIFY = 2
-    delta 5 In_Alert_FATAL_UNEXPECTED_MESSAGE = 2
-    delta 8 In_ECDH_CLIENT_HELLO = 2
-    delta 8 In_ECDH_CLIENT_KEY_EXCHANGE = 2
-    delta 8 In_DH_CLIENT_HELLO = 2
-    delta 8 In_DH_CLIENT_KEY_EXCHANGE = 2
-    delta 8 In_PSK_CLIENT_HELLO = 2
-    delta 8 In_PSK_CLIENT_KEY_EXCHANGE = 2
-    delta 8 In_RSA_CLIENT_HELLO = 2
-    delta 8 In_RSA_CLIENT_KEY_EXCHANGE = 2
-    delta 8 In_CHANGE_CIPHER_SPEC = 10
-    delta 8 In_FINISHED = 2
-    delta 8 In_APPLICATION = 2
-    delta 8 In_CERTIFICATE = 2
-    delta 8 In_EMPTY_CERTIFICATE = 2
-    delta 8 In_CERTIFICATE_VERIFY = 2
-    delta 8 In_Alert_WARNING_CLOSE_NOTIFY = 2
-    delta 8 In_Alert_FATAL_UNEXPECTED_MESSAGE = 2
-    delta 7 In_ECDH_CLIENT_HELLO = 2
-    delta 7 In_ECDH_CLIENT_KEY_EXCHANGE = 2
-    delta 7 In_DH_CLIENT_HELLO = 2
-    delta 7 In_DH_CLIENT_KEY_EXCHANGE = 2
-    delta 7 In_PSK_CLIENT_HELLO = 2
-    delta 7 In_PSK_CLIENT_KEY_EXCHANGE = 9
-    delta 7 In_RSA_CLIENT_HELLO = 2
-    delta 7 In_RSA_CLIENT_KEY_EXCHANGE = 8
-    delta 7 In_CHANGE_CIPHER_SPEC = 3
-    delta 7 In_FINISHED = 2
-    delta 7 In_APPLICATION = 2
-    delta 7 In_CERTIFICATE = 2
-    delta 7 In_EMPTY_CERTIFICATE = 2
-    delta 7 In_CERTIFICATE_VERIFY = 2
-    delta 7 In_Alert_WARNING_CLOSE_NOTIFY = 2
-    delta 7 In_Alert_FATAL_UNEXPECTED_MESSAGE = 2
-    delta 6 In_ECDH_CLIENT_HELLO = 2
-    delta 6 In_ECDH_CLIENT_KEY_EXCHANGE = 2
-    delta 6 In_DH_CLIENT_HELLO = 2
-    delta 6 In_DH_CLIENT_KEY_EXCHANGE = 2
-    delta 6 In_PSK_CLIENT_HELLO = 2
-    delta 6 In_PSK_CLIENT_KEY_EXCHANGE = 8
-    delta 6 In_RSA_CLIENT_HELLO = 2
-    delta 6 In_RSA_CLIENT_KEY_EXCHANGE = 2
-    delta 6 In_CHANGE_CIPHER_SPEC = 3
-    delta 6 In_FINISHED = 2
-    delta 6 In_APPLICATION = 2
-    delta 6 In_CERTIFICATE = 2
-    delta 6 In_EMPTY_CERTIFICATE = 2
-    delta 6 In_CERTIFICATE_VERIFY = 2
-    delta 6 In_Alert_WARNING_CLOSE_NOTIFY = 2
-    delta 6 In_Alert_FATAL_UNEXPECTED_MESSAGE = 2
-    delta 9 In_ECDH_CLIENT_HELLO = 2
-    delta 9 In_ECDH_CLIENT_KEY_EXCHANGE = 2
-    delta 9 In_DH_CLIENT_HELLO = 2
-    delta 9 In_DH_CLIENT_KEY_EXCHANGE = 2
-    delta 9 In_PSK_CLIENT_HELLO = 2
-    delta 9 In_PSK_CLIENT_KEY_EXCHANGE = 2
-    delta 9 In_RSA_CLIENT_HELLO = 2
-    delta 9 In_RSA_CLIENT_KEY_EXCHANGE = 2
-    delta 9 In_CHANGE_CIPHER_SPEC = 3
-    delta 9 In_FINISHED = 2
-    delta 9 In_APPLICATION = 2
-    delta 9 In_CERTIFICATE = 2
-    delta 9 In_EMPTY_CERTIFICATE = 2
-    delta 9 In_CERTIFICATE_VERIFY = 2
-    delta 9 In_Alert_WARNING_CLOSE_NOTIFY = 2
-    delta 9 In_Alert_FATAL_UNEXPECTED_MESSAGE = 2
-    delta 10 In_ECDH_CLIENT_HELLO = 3
-    delta 10 In_ECDH_CLIENT_KEY_EXCHANGE = 3
-    delta 10 In_DH_CLIENT_HELLO = 3
-    delta 10 In_DH_CLIENT_KEY_EXCHANGE = 3
-    delta 10 In_PSK_CLIENT_HELLO = 3
-    delta 10 In_PSK_CLIENT_KEY_EXCHANGE = 3
-    delta 10 In_RSA_CLIENT_HELLO = 3
-    delta 10 In_RSA_CLIENT_KEY_EXCHANGE = 3
-    delta 10 In_CHANGE_CIPHER_SPEC = 3
-    delta 10 In_FINISHED = 11
-    delta 10 In_APPLICATION = 10
-    delta 10 In_CERTIFICATE = 3
-    delta 10 In_EMPTY_CERTIFICATE = 3
-    delta 10 In_CERTIFICATE_VERIFY = 3
-    delta 10 In_Alert_WARNING_CLOSE_NOTIFY = 12
-    delta 10 In_Alert_FATAL_UNEXPECTED_MESSAGE = 12
-    delta 11 In_ECDH_CLIENT_HELLO = 13
-    delta 11 In_ECDH_CLIENT_KEY_EXCHANGE = 13
-    delta 11 In_DH_CLIENT_HELLO = 13
-    delta 11 In_DH_CLIENT_KEY_EXCHANGE = 13
-    delta 11 In_PSK_CLIENT_HELLO = 13
-    delta 11 In_PSK_CLIENT_KEY_EXCHANGE = 13
-    delta 11 In_RSA_CLIENT_HELLO = 13
-    delta 11 In_RSA_CLIENT_KEY_EXCHANGE = 13
-    delta 11 In_CHANGE_CIPHER_SPEC = 3
-    delta 11 In_FINISHED = 11
-    delta 11 In_APPLICATION = 11
-    delta 11 In_CERTIFICATE = 13
-    delta 11 In_EMPTY_CERTIFICATE = 13
-    delta 11 In_CERTIFICATE_VERIFY = 13
-    delta 11 In_Alert_WARNING_CLOSE_NOTIFY = 3
-    delta 11 In_Alert_FATAL_UNEXPECTED_MESSAGE = 3
-    delta 13 In_ECDH_CLIENT_HELLO = 13
-    delta 13 In_ECDH_CLIENT_KEY_EXCHANGE = 13
-    delta 13 In_DH_CLIENT_HELLO = 13
-    delta 13 In_DH_CLIENT_KEY_EXCHANGE = 13
-    delta 13 In_PSK_CLIENT_HELLO = 13
-    delta 13 In_PSK_CLIENT_KEY_EXCHANGE = 13
-    delta 13 In_RSA_CLIENT_HELLO = 13
-    delta 13 In_RSA_CLIENT_KEY_EXCHANGE = 13
-    delta 13 In_CHANGE_CIPHER_SPEC = 3
-    delta 13 In_FINISHED = 13
-    delta 13 In_APPLICATION = 3
-    delta 13 In_CERTIFICATE = 13
-    delta 13 In_EMPTY_CERTIFICATE = 13
-    delta 13 In_CERTIFICATE_VERIFY = 13
-    delta 13 In_Alert_WARNING_CLOSE_NOTIFY = 3
-    delta 13 In_Alert_FATAL_UNEXPECTED_MESSAGE = 3
-    delta 12 In_ECDH_CLIENT_HELLO = 3
-    delta 12 In_ECDH_CLIENT_KEY_EXCHANGE = 3
-    delta 12 In_DH_CLIENT_HELLO = 3
-    delta 12 In_DH_CLIENT_KEY_EXCHANGE = 3
-    delta 12 In_PSK_CLIENT_HELLO = 3
-    delta 12 In_PSK_CLIENT_KEY_EXCHANGE = 3
-    delta 12 In_RSA_CLIENT_HELLO = 3
-    delta 12 In_RSA_CLIENT_KEY_EXCHANGE = 3
-    delta 12 In_CHANGE_CIPHER_SPEC = 3
-    delta 12 In_FINISHED = 3
-    delta 12 In_APPLICATION = 12
-    delta 12 In_CERTIFICATE = 3
-    delta 12 In_EMPTY_CERTIFICATE = 3
-    delta 12 In_CERTIFICATE_VERIFY = 3
-    delta 12 In_Alert_WARNING_CLOSE_NOTIFY = 12
-    delta 12 In_Alert_FATAL_UNEXPECTED_MESSAGE = 12
-    delta _ _ = error "haal-gen: undefined transition"
-    lambda 0 In_ECDH_CLIENT_HELLO = Out_HELLO_VERIFY_REQUEST
-    lambda 0 In_ECDH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 0 In_DH_CLIENT_HELLO = Out_HELLO_VERIFY_REQUEST
-    lambda 0 In_DH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 0 In_PSK_CLIENT_HELLO = Out_HELLO_VERIFY_REQUEST
-    lambda 0 In_PSK_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 0 In_RSA_CLIENT_HELLO = Out_HELLO_VERIFY_REQUEST
-    lambda 0 In_RSA_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 0 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 0 In_FINISHED = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 0 In_APPLICATION = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 0 In_CERTIFICATE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 0 In_EMPTY_CERTIFICATE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 0 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 0 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 0 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 2 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 2 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 2 In_DH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 2 In_DH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 2 In_PSK_CLIENT_HELLO = Out_TIMEOUT
-    lambda 2 In_PSK_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 2 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 2 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 2 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 2 In_FINISHED = Out_TIMEOUT
-    lambda 2 In_APPLICATION = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 2 In_CERTIFICATE = Out_TIMEOUT
-    lambda 2 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 2 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 2 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 2 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 1 In_ECDH_CLIENT_HELLO = Out_SERVER_HELLO_CERTIFICATE_ECDHE_SERVER_KEY_EXCHANGE_SERVER_HELLO_DONE
-    lambda 1 In_ECDH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 1 In_DH_CLIENT_HELLO = Out_SERVER_HELLO_CERTIFICATE_DHE_SERVER_KEY_EXCHANGE_SERVER_HELLO_DONE
-    lambda 1 In_DH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 1 In_PSK_CLIENT_HELLO = Out_SERVER_HELLO_SERVER_HELLO_DONE
-    lambda 1 In_PSK_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 1 In_RSA_CLIENT_HELLO = Out_SERVER_HELLO_CERTIFICATE_SERVER_HELLO_DONE
-    lambda 1 In_RSA_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 1 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 1 In_FINISHED = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 1 In_APPLICATION = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 1 In_CERTIFICATE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 1 In_EMPTY_CERTIFICATE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 1 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 1 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 1 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 4 In_ECDH_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 4 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 4 In_DH_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 4 In_DH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_DECODE_ERROR
-    lambda 4 In_PSK_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 4 In_PSK_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_DECODE_ERROR
-    lambda 4 In_RSA_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 4 In_RSA_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_DECODE_ERROR
-    lambda 4 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 4 In_FINISHED = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 4 In_APPLICATION = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 4 In_CERTIFICATE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 4 In_EMPTY_CERTIFICATE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 4 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 4 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 4 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 3 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 3 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 3 In_DH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 3 In_DH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 3 In_PSK_CLIENT_HELLO = Out_TIMEOUT
-    lambda 3 In_PSK_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 3 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 3 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 3 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 3 In_FINISHED = Out_TIMEOUT
-    lambda 3 In_APPLICATION = Out_TIMEOUT
-    lambda 3 In_CERTIFICATE = Out_TIMEOUT
-    lambda 3 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 3 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 3 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 3 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 5 In_ECDH_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 5 In_ECDH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_DECODE_ERROR
-    lambda 5 In_DH_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 5 In_DH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 5 In_PSK_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 5 In_PSK_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 5 In_RSA_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 5 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 5 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 5 In_FINISHED = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 5 In_APPLICATION = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 5 In_CERTIFICATE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 5 In_EMPTY_CERTIFICATE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 5 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 5 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 5 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 8 In_ECDH_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 8 In_ECDH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 8 In_DH_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 8 In_DH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 8 In_PSK_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 8 In_PSK_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 8 In_RSA_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 8 In_RSA_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 8 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 8 In_FINISHED = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 8 In_APPLICATION = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 8 In_CERTIFICATE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 8 In_EMPTY_CERTIFICATE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 8 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 8 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 8 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 7 In_ECDH_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 7 In_ECDH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_DECODE_ERROR
-    lambda 7 In_DH_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 7 In_DH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_DECRYPT_ERROR
-    lambda 7 In_PSK_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 7 In_PSK_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 7 In_RSA_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 7 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 7 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 7 In_FINISHED = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 7 In_APPLICATION = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 7 In_CERTIFICATE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 7 In_EMPTY_CERTIFICATE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 7 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 7 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 7 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 6 In_ECDH_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 6 In_ECDH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_DECODE_ERROR
-    lambda 6 In_DH_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 6 In_DH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_DECODE_ERROR
-    lambda 6 In_PSK_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 6 In_PSK_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 6 In_RSA_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 6 In_RSA_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_DECODE_ERROR
-    lambda 6 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 6 In_FINISHED = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 6 In_APPLICATION = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 6 In_CERTIFICATE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 6 In_EMPTY_CERTIFICATE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 6 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 6 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 6 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 9 In_ECDH_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 9 In_ECDH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 9 In_DH_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 9 In_DH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 9 In_PSK_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 9 In_PSK_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 9 In_RSA_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 9 In_RSA_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 9 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 9 In_FINISHED = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 9 In_APPLICATION = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 9 In_CERTIFICATE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 9 In_EMPTY_CERTIFICATE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 9 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 9 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 9 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 10 In_ECDH_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 10 In_ECDH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 10 In_DH_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 10 In_DH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 10 In_PSK_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 10 In_PSK_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 10 In_RSA_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 10 In_RSA_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 10 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 10 In_FINISHED = Out_CHANGE_CIPHER_SPEC_FINISHED
-    lambda 10 In_APPLICATION = Out_TIMEOUT
-    lambda 10 In_CERTIFICATE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 10 In_EMPTY_CERTIFICATE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 10 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 10 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 10 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 11 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 11 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 11 In_DH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 11 In_DH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 11 In_PSK_CLIENT_HELLO = Out_TIMEOUT
-    lambda 11 In_PSK_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 11 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 11 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 11 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 11 In_FINISHED = Out_CHANGE_CIPHER_SPEC_FINISHED
-    lambda 11 In_APPLICATION = Out_TIMEOUT
-    lambda 11 In_CERTIFICATE = Out_TIMEOUT
-    lambda 11 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 11 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 11 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 11 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 13 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 13 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 13 In_DH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 13 In_DH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 13 In_PSK_CLIENT_HELLO = Out_TIMEOUT
-    lambda 13 In_PSK_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 13 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 13 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 13 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 13 In_FINISHED = Out_TIMEOUT
-    lambda 13 In_APPLICATION = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 13 In_CERTIFICATE = Out_TIMEOUT
-    lambda 13 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 13 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 13 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 13 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 12 In_ECDH_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 12 In_ECDH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 12 In_DH_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 12 In_DH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 12 In_PSK_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 12 In_PSK_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 12 In_RSA_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 12 In_RSA_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 12 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 12 In_FINISHED = Out_CHANGE_CIPHER_SPEC_FINISHED
-    lambda 12 In_APPLICATION = Out_TIMEOUT
-    lambda 12 In_CERTIFICATE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 12 In_EMPTY_CERTIFICATE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 12 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 12 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 12 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda _ _ = error "haal-gen: undefined transition"
+    deltaTable =
+        "\1\2\1\2\1\2\1\2\3\2\0\2\2\2\0\0\
+        \\4\2\5\2\6\2\7\2\3\2\2\2\2\2\2\2\
+        \\2\2\2\2\2\2\2\2\3\2\2\2\2\2\2\2\
+        \\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\
+        \\2\8\2\2\2\2\2\2\3\2\2\2\2\2\2\2\
+        \\2\2\2\8\2\9\2\9\3\2\2\2\2\2\2\2\
+        \\2\2\2\2\2\8\2\2\3\2\2\2\2\2\2\2\
+        \\2\2\2\2\2\9\2\8\3\2\2\2\2\2\2\2\
+        \\2\2\2\2\2\2\2\2\10\2\2\2\2\2\2\2\
+        \\2\2\2\2\2\2\2\2\3\2\2\2\2\2\2\2\
+        \\3\3\3\3\3\3\3\3\3\11\10\3\3\3\12\12\
+        \\13\13\13\13\13\13\13\13\3\11\11\13\13\13\3\3\
+        \\3\3\3\3\3\3\3\3\3\3\12\3\3\3\12\12\
+        \\13\13\13\13\13\13\13\13\3\13\3\13\13\13\3\3"
+    lambdaTable =
+        "\0\1\0\1\0\1\0\1\2\3\1\1\1\1\2\2\
+        \\4\1\5\1\6\1\7\1\2\3\1\1\1\1\2\2\
+        \\2\2\2\2\2\2\2\2\2\2\1\2\2\2\2\2\
+        \\2\2\2\2\2\2\2\2\2\2\2\2\2\2\2\2\
+        \\1\2\1\8\1\8\1\8\2\3\1\1\1\1\2\2\
+        \\1\8\1\2\1\2\1\2\2\3\1\1\1\1\2\2\
+        \\1\8\1\8\1\2\1\8\2\3\1\1\1\1\2\2\
+        \\1\8\1\9\1\2\1\2\2\3\1\1\1\1\2\2\
+        \\1\1\1\1\1\1\1\1\2\1\1\1\1\1\2\2\
+        \\1\1\1\1\1\1\1\1\2\1\1\1\1\1\2\2\
+        \\1\1\1\1\1\1\1\1\2\10\2\1\1\1\2\2\
+        \\2\2\2\2\2\2\2\2\2\10\2\2\2\2\2\2\
+        \\1\1\1\1\1\1\1\1\2\10\2\1\1\1\2\2\
+        \\2\2\2\2\2\2\2\2\2\2\1\2\2\2\2\2"
diff --git a/src/Haal/Models/DTLS/OpensslV1V1V1bAllCertNreq.hs b/src/Haal/Models/DTLS/OpensslV1V1V1bAllCertNreq.hs
--- a/src/Haal/Models/DTLS/OpensslV1V1V1bAllCertNreq.hs
+++ b/src/Haal/Models/DTLS/OpensslV1V1V1bAllCertNreq.hs
@@ -5,748 +5,444 @@
     , opensslV1V1V1bAllCertNreq
     ) where
 
-import qualified Data.Set as Set
-import Haal.Automaton.MealyAutomaton (MealyAutomaton, mkMealyAutomaton)
-
-data OpensslV1V1V1bAllCertNreqInput
-    = In_ECDH_CLIENT_HELLO
-    | In_ECDH_CLIENT_KEY_EXCHANGE
-    | In_DH_CLIENT_HELLO
-    | In_DH_CLIENT_KEY_EXCHANGE
-    | In_PSK_CLIENT_HELLO
-    | In_PSK_CLIENT_KEY_EXCHANGE
-    | In_RSA_CLIENT_HELLO
-    | In_RSA_CLIENT_KEY_EXCHANGE
-    | In_CHANGE_CIPHER_SPEC
-    | In_FINISHED
-    | In_APPLICATION
-    | In_CERTIFICATE
-    | In_EMPTY_CERTIFICATE
-    | In_CERTIFICATE_VERIFY
-    | In_Alert_WARNING_CLOSE_NOTIFY
-    | In_Alert_FATAL_UNEXPECTED_MESSAGE
-    deriving (Show, Eq, Ord, Enum, Bounded)
-
-data OpensslV1V1V1bAllCertNreqOutput
-    = Out_HELLO_VERIFY_REQUEST
-    | Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    | Out_TIMEOUT
-    | Out_Alert_FATAL_INTERNAL_ERROR
-    | Out_SERVER_HELLO_CERTIFICATE_ECDHE_SERVER_KEY_EXCHANGE_CERTIFICATE_REQUEST_SERVER_HELLO_DONE
-    | Out_SERVER_HELLO_CERTIFICATE_DHE_SERVER_KEY_EXCHANGE_CERTIFICATE_REQUEST_SERVER_HELLO_DONE
-    | Out_SERVER_HELLO_SERVER_HELLO_DONE
-    | Out_SERVER_HELLO_CERTIFICATE_CERTIFICATE_REQUEST_SERVER_HELLO_DONE
-    | Out_Alert_FATAL_DECODE_ERROR
-    | Out_CHANGE_CIPHER_SPEC_FINISHED
-    | Out_Alert_FATAL_DECRYPT_ERROR
-    deriving (Show, Eq, Ord, Enum, Bounded)
-
-opensslV1V1V1bAllCertNreq :: MealyAutomaton Int OpensslV1V1V1bAllCertNreqInput OpensslV1V1V1bAllCertNreqOutput
-opensslV1V1V1bAllCertNreq = mkMealyAutomaton delta lambda (Set.fromList [0..21]) 0
-  where
-    delta 0 In_ECDH_CLIENT_HELLO = 1
-    delta 0 In_ECDH_CLIENT_KEY_EXCHANGE = 2
-    delta 0 In_DH_CLIENT_HELLO = 1
-    delta 0 In_DH_CLIENT_KEY_EXCHANGE = 2
-    delta 0 In_PSK_CLIENT_HELLO = 1
-    delta 0 In_PSK_CLIENT_KEY_EXCHANGE = 2
-    delta 0 In_RSA_CLIENT_HELLO = 1
-    delta 0 In_RSA_CLIENT_KEY_EXCHANGE = 2
-    delta 0 In_CHANGE_CIPHER_SPEC = 3
-    delta 0 In_FINISHED = 2
-    delta 0 In_APPLICATION = 0
-    delta 0 In_CERTIFICATE = 2
-    delta 0 In_EMPTY_CERTIFICATE = 2
-    delta 0 In_CERTIFICATE_VERIFY = 2
-    delta 0 In_Alert_WARNING_CLOSE_NOTIFY = 0
-    delta 0 In_Alert_FATAL_UNEXPECTED_MESSAGE = 0
-    delta 2 In_ECDH_CLIENT_HELLO = 2
-    delta 2 In_ECDH_CLIENT_KEY_EXCHANGE = 2
-    delta 2 In_DH_CLIENT_HELLO = 2
-    delta 2 In_DH_CLIENT_KEY_EXCHANGE = 2
-    delta 2 In_PSK_CLIENT_HELLO = 2
-    delta 2 In_PSK_CLIENT_KEY_EXCHANGE = 2
-    delta 2 In_RSA_CLIENT_HELLO = 2
-    delta 2 In_RSA_CLIENT_KEY_EXCHANGE = 2
-    delta 2 In_CHANGE_CIPHER_SPEC = 3
-    delta 2 In_FINISHED = 2
-    delta 2 In_APPLICATION = 2
-    delta 2 In_CERTIFICATE = 2
-    delta 2 In_EMPTY_CERTIFICATE = 2
-    delta 2 In_CERTIFICATE_VERIFY = 2
-    delta 2 In_Alert_WARNING_CLOSE_NOTIFY = 2
-    delta 2 In_Alert_FATAL_UNEXPECTED_MESSAGE = 2
-    delta 1 In_ECDH_CLIENT_HELLO = 4
-    delta 1 In_ECDH_CLIENT_KEY_EXCHANGE = 2
-    delta 1 In_DH_CLIENT_HELLO = 5
-    delta 1 In_DH_CLIENT_KEY_EXCHANGE = 2
-    delta 1 In_PSK_CLIENT_HELLO = 6
-    delta 1 In_PSK_CLIENT_KEY_EXCHANGE = 2
-    delta 1 In_RSA_CLIENT_HELLO = 7
-    delta 1 In_RSA_CLIENT_KEY_EXCHANGE = 2
-    delta 1 In_CHANGE_CIPHER_SPEC = 3
-    delta 1 In_FINISHED = 2
-    delta 1 In_APPLICATION = 2
-    delta 1 In_CERTIFICATE = 2
-    delta 1 In_EMPTY_CERTIFICATE = 2
-    delta 1 In_CERTIFICATE_VERIFY = 2
-    delta 1 In_Alert_WARNING_CLOSE_NOTIFY = 2
-    delta 1 In_Alert_FATAL_UNEXPECTED_MESSAGE = 2
-    delta 4 In_ECDH_CLIENT_HELLO = 2
-    delta 4 In_ECDH_CLIENT_KEY_EXCHANGE = 2
-    delta 4 In_DH_CLIENT_HELLO = 2
-    delta 4 In_DH_CLIENT_KEY_EXCHANGE = 2
-    delta 4 In_PSK_CLIENT_HELLO = 2
-    delta 4 In_PSK_CLIENT_KEY_EXCHANGE = 2
-    delta 4 In_RSA_CLIENT_HELLO = 2
-    delta 4 In_RSA_CLIENT_KEY_EXCHANGE = 2
-    delta 4 In_CHANGE_CIPHER_SPEC = 3
-    delta 4 In_FINISHED = 2
-    delta 4 In_APPLICATION = 2
-    delta 4 In_CERTIFICATE = 8
-    delta 4 In_EMPTY_CERTIFICATE = 9
-    delta 4 In_CERTIFICATE_VERIFY = 2
-    delta 4 In_Alert_WARNING_CLOSE_NOTIFY = 2
-    delta 4 In_Alert_FATAL_UNEXPECTED_MESSAGE = 2
-    delta 3 In_ECDH_CLIENT_HELLO = 3
-    delta 3 In_ECDH_CLIENT_KEY_EXCHANGE = 3
-    delta 3 In_DH_CLIENT_HELLO = 3
-    delta 3 In_DH_CLIENT_KEY_EXCHANGE = 3
-    delta 3 In_PSK_CLIENT_HELLO = 3
-    delta 3 In_PSK_CLIENT_KEY_EXCHANGE = 3
-    delta 3 In_RSA_CLIENT_HELLO = 3
-    delta 3 In_RSA_CLIENT_KEY_EXCHANGE = 3
-    delta 3 In_CHANGE_CIPHER_SPEC = 3
-    delta 3 In_FINISHED = 3
-    delta 3 In_APPLICATION = 3
-    delta 3 In_CERTIFICATE = 3
-    delta 3 In_EMPTY_CERTIFICATE = 3
-    delta 3 In_CERTIFICATE_VERIFY = 3
-    delta 3 In_Alert_WARNING_CLOSE_NOTIFY = 3
-    delta 3 In_Alert_FATAL_UNEXPECTED_MESSAGE = 3
-    delta 6 In_ECDH_CLIENT_HELLO = 2
-    delta 6 In_ECDH_CLIENT_KEY_EXCHANGE = 2
-    delta 6 In_DH_CLIENT_HELLO = 2
-    delta 6 In_DH_CLIENT_KEY_EXCHANGE = 2
-    delta 6 In_PSK_CLIENT_HELLO = 2
-    delta 6 In_PSK_CLIENT_KEY_EXCHANGE = 10
-    delta 6 In_RSA_CLIENT_HELLO = 2
-    delta 6 In_RSA_CLIENT_KEY_EXCHANGE = 2
-    delta 6 In_CHANGE_CIPHER_SPEC = 3
-    delta 6 In_FINISHED = 2
-    delta 6 In_APPLICATION = 2
-    delta 6 In_CERTIFICATE = 2
-    delta 6 In_EMPTY_CERTIFICATE = 2
-    delta 6 In_CERTIFICATE_VERIFY = 2
-    delta 6 In_Alert_WARNING_CLOSE_NOTIFY = 2
-    delta 6 In_Alert_FATAL_UNEXPECTED_MESSAGE = 2
-    delta 9 In_ECDH_CLIENT_HELLO = 2
-    delta 9 In_ECDH_CLIENT_KEY_EXCHANGE = 10
-    delta 9 In_DH_CLIENT_HELLO = 2
-    delta 9 In_DH_CLIENT_KEY_EXCHANGE = 2
-    delta 9 In_PSK_CLIENT_HELLO = 2
-    delta 9 In_PSK_CLIENT_KEY_EXCHANGE = 2
-    delta 9 In_RSA_CLIENT_HELLO = 2
-    delta 9 In_RSA_CLIENT_KEY_EXCHANGE = 2
-    delta 9 In_CHANGE_CIPHER_SPEC = 3
-    delta 9 In_FINISHED = 2
-    delta 9 In_APPLICATION = 2
-    delta 9 In_CERTIFICATE = 2
-    delta 9 In_EMPTY_CERTIFICATE = 2
-    delta 9 In_CERTIFICATE_VERIFY = 2
-    delta 9 In_Alert_WARNING_CLOSE_NOTIFY = 2
-    delta 9 In_Alert_FATAL_UNEXPECTED_MESSAGE = 2
-    delta 10 In_ECDH_CLIENT_HELLO = 2
-    delta 10 In_ECDH_CLIENT_KEY_EXCHANGE = 2
-    delta 10 In_DH_CLIENT_HELLO = 2
-    delta 10 In_DH_CLIENT_KEY_EXCHANGE = 2
-    delta 10 In_PSK_CLIENT_HELLO = 2
-    delta 10 In_PSK_CLIENT_KEY_EXCHANGE = 2
-    delta 10 In_RSA_CLIENT_HELLO = 2
-    delta 10 In_RSA_CLIENT_KEY_EXCHANGE = 2
-    delta 10 In_CHANGE_CIPHER_SPEC = 11
-    delta 10 In_FINISHED = 2
-    delta 10 In_APPLICATION = 2
-    delta 10 In_CERTIFICATE = 2
-    delta 10 In_EMPTY_CERTIFICATE = 2
-    delta 10 In_CERTIFICATE_VERIFY = 2
-    delta 10 In_Alert_WARNING_CLOSE_NOTIFY = 2
-    delta 10 In_Alert_FATAL_UNEXPECTED_MESSAGE = 2
-    delta 11 In_ECDH_CLIENT_HELLO = 3
-    delta 11 In_ECDH_CLIENT_KEY_EXCHANGE = 3
-    delta 11 In_DH_CLIENT_HELLO = 3
-    delta 11 In_DH_CLIENT_KEY_EXCHANGE = 3
-    delta 11 In_PSK_CLIENT_HELLO = 3
-    delta 11 In_PSK_CLIENT_KEY_EXCHANGE = 3
-    delta 11 In_RSA_CLIENT_HELLO = 3
-    delta 11 In_RSA_CLIENT_KEY_EXCHANGE = 3
-    delta 11 In_CHANGE_CIPHER_SPEC = 3
-    delta 11 In_FINISHED = 12
-    delta 11 In_APPLICATION = 11
-    delta 11 In_CERTIFICATE = 3
-    delta 11 In_EMPTY_CERTIFICATE = 3
-    delta 11 In_CERTIFICATE_VERIFY = 3
-    delta 11 In_Alert_WARNING_CLOSE_NOTIFY = 13
-    delta 11 In_Alert_FATAL_UNEXPECTED_MESSAGE = 13
-    delta 5 In_ECDH_CLIENT_HELLO = 2
-    delta 5 In_ECDH_CLIENT_KEY_EXCHANGE = 2
-    delta 5 In_DH_CLIENT_HELLO = 2
-    delta 5 In_DH_CLIENT_KEY_EXCHANGE = 2
-    delta 5 In_PSK_CLIENT_HELLO = 2
-    delta 5 In_PSK_CLIENT_KEY_EXCHANGE = 2
-    delta 5 In_RSA_CLIENT_HELLO = 2
-    delta 5 In_RSA_CLIENT_KEY_EXCHANGE = 2
-    delta 5 In_CHANGE_CIPHER_SPEC = 3
-    delta 5 In_FINISHED = 2
-    delta 5 In_APPLICATION = 2
-    delta 5 In_CERTIFICATE = 14
-    delta 5 In_EMPTY_CERTIFICATE = 15
-    delta 5 In_CERTIFICATE_VERIFY = 2
-    delta 5 In_Alert_WARNING_CLOSE_NOTIFY = 2
-    delta 5 In_Alert_FATAL_UNEXPECTED_MESSAGE = 2
-    delta 14 In_ECDH_CLIENT_HELLO = 2
-    delta 14 In_ECDH_CLIENT_KEY_EXCHANGE = 2
-    delta 14 In_DH_CLIENT_HELLO = 2
-    delta 14 In_DH_CLIENT_KEY_EXCHANGE = 16
-    delta 14 In_PSK_CLIENT_HELLO = 2
-    delta 14 In_PSK_CLIENT_KEY_EXCHANGE = 17
-    delta 14 In_RSA_CLIENT_HELLO = 2
-    delta 14 In_RSA_CLIENT_KEY_EXCHANGE = 17
-    delta 14 In_CHANGE_CIPHER_SPEC = 3
-    delta 14 In_FINISHED = 2
-    delta 14 In_APPLICATION = 2
-    delta 14 In_CERTIFICATE = 2
-    delta 14 In_EMPTY_CERTIFICATE = 2
-    delta 14 In_CERTIFICATE_VERIFY = 2
-    delta 14 In_Alert_WARNING_CLOSE_NOTIFY = 2
-    delta 14 In_Alert_FATAL_UNEXPECTED_MESSAGE = 2
-    delta 7 In_ECDH_CLIENT_HELLO = 2
-    delta 7 In_ECDH_CLIENT_KEY_EXCHANGE = 2
-    delta 7 In_DH_CLIENT_HELLO = 2
-    delta 7 In_DH_CLIENT_KEY_EXCHANGE = 2
-    delta 7 In_PSK_CLIENT_HELLO = 2
-    delta 7 In_PSK_CLIENT_KEY_EXCHANGE = 2
-    delta 7 In_RSA_CLIENT_HELLO = 2
-    delta 7 In_RSA_CLIENT_KEY_EXCHANGE = 2
-    delta 7 In_CHANGE_CIPHER_SPEC = 3
-    delta 7 In_FINISHED = 2
-    delta 7 In_APPLICATION = 2
-    delta 7 In_CERTIFICATE = 18
-    delta 7 In_EMPTY_CERTIFICATE = 19
-    delta 7 In_CERTIFICATE_VERIFY = 2
-    delta 7 In_Alert_WARNING_CLOSE_NOTIFY = 2
-    delta 7 In_Alert_FATAL_UNEXPECTED_MESSAGE = 2
-    delta 18 In_ECDH_CLIENT_HELLO = 2
-    delta 18 In_ECDH_CLIENT_KEY_EXCHANGE = 2
-    delta 18 In_DH_CLIENT_HELLO = 2
-    delta 18 In_DH_CLIENT_KEY_EXCHANGE = 2
-    delta 18 In_PSK_CLIENT_HELLO = 2
-    delta 18 In_PSK_CLIENT_KEY_EXCHANGE = 17
-    delta 18 In_RSA_CLIENT_HELLO = 2
-    delta 18 In_RSA_CLIENT_KEY_EXCHANGE = 16
-    delta 18 In_CHANGE_CIPHER_SPEC = 3
-    delta 18 In_FINISHED = 2
-    delta 18 In_APPLICATION = 2
-    delta 18 In_CERTIFICATE = 2
-    delta 18 In_EMPTY_CERTIFICATE = 2
-    delta 18 In_CERTIFICATE_VERIFY = 2
-    delta 18 In_Alert_WARNING_CLOSE_NOTIFY = 2
-    delta 18 In_Alert_FATAL_UNEXPECTED_MESSAGE = 2
-    delta 17 In_ECDH_CLIENT_HELLO = 2
-    delta 17 In_ECDH_CLIENT_KEY_EXCHANGE = 2
-    delta 17 In_DH_CLIENT_HELLO = 2
-    delta 17 In_DH_CLIENT_KEY_EXCHANGE = 2
-    delta 17 In_PSK_CLIENT_HELLO = 2
-    delta 17 In_PSK_CLIENT_KEY_EXCHANGE = 2
-    delta 17 In_RSA_CLIENT_HELLO = 2
-    delta 17 In_RSA_CLIENT_KEY_EXCHANGE = 2
-    delta 17 In_CHANGE_CIPHER_SPEC = 3
-    delta 17 In_FINISHED = 2
-    delta 17 In_APPLICATION = 2
-    delta 17 In_CERTIFICATE = 2
-    delta 17 In_EMPTY_CERTIFICATE = 2
-    delta 17 In_CERTIFICATE_VERIFY = 20
-    delta 17 In_Alert_WARNING_CLOSE_NOTIFY = 2
-    delta 17 In_Alert_FATAL_UNEXPECTED_MESSAGE = 2
-    delta 15 In_ECDH_CLIENT_HELLO = 2
-    delta 15 In_ECDH_CLIENT_KEY_EXCHANGE = 2
-    delta 15 In_DH_CLIENT_HELLO = 2
-    delta 15 In_DH_CLIENT_KEY_EXCHANGE = 10
-    delta 15 In_PSK_CLIENT_HELLO = 2
-    delta 15 In_PSK_CLIENT_KEY_EXCHANGE = 20
-    delta 15 In_RSA_CLIENT_HELLO = 2
-    delta 15 In_RSA_CLIENT_KEY_EXCHANGE = 20
-    delta 15 In_CHANGE_CIPHER_SPEC = 3
-    delta 15 In_FINISHED = 2
-    delta 15 In_APPLICATION = 2
-    delta 15 In_CERTIFICATE = 2
-    delta 15 In_EMPTY_CERTIFICATE = 2
-    delta 15 In_CERTIFICATE_VERIFY = 2
-    delta 15 In_Alert_WARNING_CLOSE_NOTIFY = 2
-    delta 15 In_Alert_FATAL_UNEXPECTED_MESSAGE = 2
-    delta 19 In_ECDH_CLIENT_HELLO = 2
-    delta 19 In_ECDH_CLIENT_KEY_EXCHANGE = 2
-    delta 19 In_DH_CLIENT_HELLO = 2
-    delta 19 In_DH_CLIENT_KEY_EXCHANGE = 2
-    delta 19 In_PSK_CLIENT_HELLO = 2
-    delta 19 In_PSK_CLIENT_KEY_EXCHANGE = 20
-    delta 19 In_RSA_CLIENT_HELLO = 2
-    delta 19 In_RSA_CLIENT_KEY_EXCHANGE = 10
-    delta 19 In_CHANGE_CIPHER_SPEC = 3
-    delta 19 In_FINISHED = 2
-    delta 19 In_APPLICATION = 2
-    delta 19 In_CERTIFICATE = 2
-    delta 19 In_EMPTY_CERTIFICATE = 2
-    delta 19 In_CERTIFICATE_VERIFY = 2
-    delta 19 In_Alert_WARNING_CLOSE_NOTIFY = 2
-    delta 19 In_Alert_FATAL_UNEXPECTED_MESSAGE = 2
-    delta 12 In_ECDH_CLIENT_HELLO = 21
-    delta 12 In_ECDH_CLIENT_KEY_EXCHANGE = 21
-    delta 12 In_DH_CLIENT_HELLO = 21
-    delta 12 In_DH_CLIENT_KEY_EXCHANGE = 21
-    delta 12 In_PSK_CLIENT_HELLO = 21
-    delta 12 In_PSK_CLIENT_KEY_EXCHANGE = 21
-    delta 12 In_RSA_CLIENT_HELLO = 21
-    delta 12 In_RSA_CLIENT_KEY_EXCHANGE = 21
-    delta 12 In_CHANGE_CIPHER_SPEC = 3
-    delta 12 In_FINISHED = 12
-    delta 12 In_APPLICATION = 12
-    delta 12 In_CERTIFICATE = 21
-    delta 12 In_EMPTY_CERTIFICATE = 21
-    delta 12 In_CERTIFICATE_VERIFY = 21
-    delta 12 In_Alert_WARNING_CLOSE_NOTIFY = 3
-    delta 12 In_Alert_FATAL_UNEXPECTED_MESSAGE = 3
-    delta 21 In_ECDH_CLIENT_HELLO = 21
-    delta 21 In_ECDH_CLIENT_KEY_EXCHANGE = 21
-    delta 21 In_DH_CLIENT_HELLO = 21
-    delta 21 In_DH_CLIENT_KEY_EXCHANGE = 21
-    delta 21 In_PSK_CLIENT_HELLO = 21
-    delta 21 In_PSK_CLIENT_KEY_EXCHANGE = 21
-    delta 21 In_RSA_CLIENT_HELLO = 21
-    delta 21 In_RSA_CLIENT_KEY_EXCHANGE = 21
-    delta 21 In_CHANGE_CIPHER_SPEC = 3
-    delta 21 In_FINISHED = 21
-    delta 21 In_APPLICATION = 3
-    delta 21 In_CERTIFICATE = 21
-    delta 21 In_EMPTY_CERTIFICATE = 21
-    delta 21 In_CERTIFICATE_VERIFY = 21
-    delta 21 In_Alert_WARNING_CLOSE_NOTIFY = 3
-    delta 21 In_Alert_FATAL_UNEXPECTED_MESSAGE = 3
-    delta 20 In_ECDH_CLIENT_HELLO = 2
-    delta 20 In_ECDH_CLIENT_KEY_EXCHANGE = 2
-    delta 20 In_DH_CLIENT_HELLO = 2
-    delta 20 In_DH_CLIENT_KEY_EXCHANGE = 2
-    delta 20 In_PSK_CLIENT_HELLO = 2
-    delta 20 In_PSK_CLIENT_KEY_EXCHANGE = 2
-    delta 20 In_RSA_CLIENT_HELLO = 2
-    delta 20 In_RSA_CLIENT_KEY_EXCHANGE = 2
-    delta 20 In_CHANGE_CIPHER_SPEC = 3
-    delta 20 In_FINISHED = 2
-    delta 20 In_APPLICATION = 2
-    delta 20 In_CERTIFICATE = 2
-    delta 20 In_EMPTY_CERTIFICATE = 2
-    delta 20 In_CERTIFICATE_VERIFY = 2
-    delta 20 In_Alert_WARNING_CLOSE_NOTIFY = 2
-    delta 20 In_Alert_FATAL_UNEXPECTED_MESSAGE = 2
-    delta 16 In_ECDH_CLIENT_HELLO = 2
-    delta 16 In_ECDH_CLIENT_KEY_EXCHANGE = 2
-    delta 16 In_DH_CLIENT_HELLO = 2
-    delta 16 In_DH_CLIENT_KEY_EXCHANGE = 2
-    delta 16 In_PSK_CLIENT_HELLO = 2
-    delta 16 In_PSK_CLIENT_KEY_EXCHANGE = 2
-    delta 16 In_RSA_CLIENT_HELLO = 2
-    delta 16 In_RSA_CLIENT_KEY_EXCHANGE = 2
-    delta 16 In_CHANGE_CIPHER_SPEC = 3
-    delta 16 In_FINISHED = 2
-    delta 16 In_APPLICATION = 2
-    delta 16 In_CERTIFICATE = 2
-    delta 16 In_EMPTY_CERTIFICATE = 2
-    delta 16 In_CERTIFICATE_VERIFY = 10
-    delta 16 In_Alert_WARNING_CLOSE_NOTIFY = 2
-    delta 16 In_Alert_FATAL_UNEXPECTED_MESSAGE = 2
-    delta 8 In_ECDH_CLIENT_HELLO = 2
-    delta 8 In_ECDH_CLIENT_KEY_EXCHANGE = 16
-    delta 8 In_DH_CLIENT_HELLO = 2
-    delta 8 In_DH_CLIENT_KEY_EXCHANGE = 2
-    delta 8 In_PSK_CLIENT_HELLO = 2
-    delta 8 In_PSK_CLIENT_KEY_EXCHANGE = 2
-    delta 8 In_RSA_CLIENT_HELLO = 2
-    delta 8 In_RSA_CLIENT_KEY_EXCHANGE = 2
-    delta 8 In_CHANGE_CIPHER_SPEC = 3
-    delta 8 In_FINISHED = 2
-    delta 8 In_APPLICATION = 2
-    delta 8 In_CERTIFICATE = 2
-    delta 8 In_EMPTY_CERTIFICATE = 2
-    delta 8 In_CERTIFICATE_VERIFY = 2
-    delta 8 In_Alert_WARNING_CLOSE_NOTIFY = 2
-    delta 8 In_Alert_FATAL_UNEXPECTED_MESSAGE = 2
-    delta 13 In_ECDH_CLIENT_HELLO = 3
-    delta 13 In_ECDH_CLIENT_KEY_EXCHANGE = 3
-    delta 13 In_DH_CLIENT_HELLO = 3
-    delta 13 In_DH_CLIENT_KEY_EXCHANGE = 3
-    delta 13 In_PSK_CLIENT_HELLO = 3
-    delta 13 In_PSK_CLIENT_KEY_EXCHANGE = 3
-    delta 13 In_RSA_CLIENT_HELLO = 3
-    delta 13 In_RSA_CLIENT_KEY_EXCHANGE = 3
-    delta 13 In_CHANGE_CIPHER_SPEC = 3
-    delta 13 In_FINISHED = 3
-    delta 13 In_APPLICATION = 13
-    delta 13 In_CERTIFICATE = 3
-    delta 13 In_EMPTY_CERTIFICATE = 3
-    delta 13 In_CERTIFICATE_VERIFY = 3
-    delta 13 In_Alert_WARNING_CLOSE_NOTIFY = 13
-    delta 13 In_Alert_FATAL_UNEXPECTED_MESSAGE = 13
-    delta _ _ = error "haal-gen: undefined transition"
-    lambda 0 In_ECDH_CLIENT_HELLO = Out_HELLO_VERIFY_REQUEST
-    lambda 0 In_ECDH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 0 In_DH_CLIENT_HELLO = Out_HELLO_VERIFY_REQUEST
-    lambda 0 In_DH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 0 In_PSK_CLIENT_HELLO = Out_HELLO_VERIFY_REQUEST
-    lambda 0 In_PSK_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 0 In_RSA_CLIENT_HELLO = Out_HELLO_VERIFY_REQUEST
-    lambda 0 In_RSA_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 0 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 0 In_FINISHED = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 0 In_APPLICATION = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 0 In_CERTIFICATE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 0 In_EMPTY_CERTIFICATE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 0 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 0 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 0 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 2 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 2 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 2 In_DH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 2 In_DH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 2 In_PSK_CLIENT_HELLO = Out_TIMEOUT
-    lambda 2 In_PSK_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 2 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 2 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 2 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 2 In_FINISHED = Out_TIMEOUT
-    lambda 2 In_APPLICATION = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 2 In_CERTIFICATE = Out_TIMEOUT
-    lambda 2 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 2 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 2 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 2 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 1 In_ECDH_CLIENT_HELLO = Out_SERVER_HELLO_CERTIFICATE_ECDHE_SERVER_KEY_EXCHANGE_CERTIFICATE_REQUEST_SERVER_HELLO_DONE
-    lambda 1 In_ECDH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 1 In_DH_CLIENT_HELLO = Out_SERVER_HELLO_CERTIFICATE_DHE_SERVER_KEY_EXCHANGE_CERTIFICATE_REQUEST_SERVER_HELLO_DONE
-    lambda 1 In_DH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 1 In_PSK_CLIENT_HELLO = Out_SERVER_HELLO_SERVER_HELLO_DONE
-    lambda 1 In_PSK_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 1 In_RSA_CLIENT_HELLO = Out_SERVER_HELLO_CERTIFICATE_CERTIFICATE_REQUEST_SERVER_HELLO_DONE
-    lambda 1 In_RSA_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 1 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 1 In_FINISHED = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 1 In_APPLICATION = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 1 In_CERTIFICATE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 1 In_EMPTY_CERTIFICATE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 1 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 1 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 1 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 4 In_ECDH_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 4 In_ECDH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 4 In_DH_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 4 In_DH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 4 In_PSK_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 4 In_PSK_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 4 In_RSA_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 4 In_RSA_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 4 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 4 In_FINISHED = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 4 In_APPLICATION = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 4 In_CERTIFICATE = Out_TIMEOUT
-    lambda 4 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 4 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 4 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 4 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 3 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 3 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 3 In_DH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 3 In_DH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 3 In_PSK_CLIENT_HELLO = Out_TIMEOUT
-    lambda 3 In_PSK_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 3 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 3 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 3 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 3 In_FINISHED = Out_TIMEOUT
-    lambda 3 In_APPLICATION = Out_TIMEOUT
-    lambda 3 In_CERTIFICATE = Out_TIMEOUT
-    lambda 3 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 3 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 3 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 3 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 6 In_ECDH_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 6 In_ECDH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_DECODE_ERROR
-    lambda 6 In_DH_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 6 In_DH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_DECODE_ERROR
-    lambda 6 In_PSK_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 6 In_PSK_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 6 In_RSA_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 6 In_RSA_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_DECODE_ERROR
-    lambda 6 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 6 In_FINISHED = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 6 In_APPLICATION = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 6 In_CERTIFICATE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 6 In_EMPTY_CERTIFICATE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 6 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 6 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 6 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 9 In_ECDH_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 9 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 9 In_DH_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 9 In_DH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_DECODE_ERROR
-    lambda 9 In_PSK_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 9 In_PSK_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_DECODE_ERROR
-    lambda 9 In_RSA_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 9 In_RSA_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_DECODE_ERROR
-    lambda 9 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 9 In_FINISHED = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 9 In_APPLICATION = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 9 In_CERTIFICATE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 9 In_EMPTY_CERTIFICATE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 9 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 9 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 9 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 10 In_ECDH_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 10 In_ECDH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 10 In_DH_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 10 In_DH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 10 In_PSK_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 10 In_PSK_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 10 In_RSA_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 10 In_RSA_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 10 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 10 In_FINISHED = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 10 In_APPLICATION = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 10 In_CERTIFICATE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 10 In_EMPTY_CERTIFICATE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 10 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 10 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 10 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 11 In_ECDH_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 11 In_ECDH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 11 In_DH_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 11 In_DH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 11 In_PSK_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 11 In_PSK_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 11 In_RSA_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 11 In_RSA_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 11 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 11 In_FINISHED = Out_CHANGE_CIPHER_SPEC_FINISHED
-    lambda 11 In_APPLICATION = Out_TIMEOUT
-    lambda 11 In_CERTIFICATE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 11 In_EMPTY_CERTIFICATE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 11 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 11 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 11 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 5 In_ECDH_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 5 In_ECDH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 5 In_DH_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 5 In_DH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 5 In_PSK_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 5 In_PSK_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 5 In_RSA_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 5 In_RSA_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 5 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 5 In_FINISHED = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 5 In_APPLICATION = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 5 In_CERTIFICATE = Out_TIMEOUT
-    lambda 5 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 5 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 5 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 5 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 14 In_ECDH_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 14 In_ECDH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_DECODE_ERROR
-    lambda 14 In_DH_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 14 In_DH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 14 In_PSK_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 14 In_PSK_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 14 In_RSA_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 14 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 14 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 14 In_FINISHED = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 14 In_APPLICATION = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 14 In_CERTIFICATE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 14 In_EMPTY_CERTIFICATE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 14 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 14 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 14 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 7 In_ECDH_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 7 In_ECDH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 7 In_DH_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 7 In_DH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 7 In_PSK_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 7 In_PSK_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 7 In_RSA_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 7 In_RSA_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 7 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 7 In_FINISHED = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 7 In_APPLICATION = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 7 In_CERTIFICATE = Out_TIMEOUT
-    lambda 7 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 7 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 7 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 7 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 18 In_ECDH_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 18 In_ECDH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_DECODE_ERROR
-    lambda 18 In_DH_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 18 In_DH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_DECRYPT_ERROR
-    lambda 18 In_PSK_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 18 In_PSK_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 18 In_RSA_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 18 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 18 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 18 In_FINISHED = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 18 In_APPLICATION = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 18 In_CERTIFICATE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 18 In_EMPTY_CERTIFICATE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 18 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 18 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 18 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 17 In_ECDH_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 17 In_ECDH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 17 In_DH_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 17 In_DH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 17 In_PSK_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 17 In_PSK_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 17 In_RSA_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 17 In_RSA_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 17 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 17 In_FINISHED = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 17 In_APPLICATION = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 17 In_CERTIFICATE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 17 In_EMPTY_CERTIFICATE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 17 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 17 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 17 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 15 In_ECDH_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 15 In_ECDH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_DECODE_ERROR
-    lambda 15 In_DH_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 15 In_DH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 15 In_PSK_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 15 In_PSK_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 15 In_RSA_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 15 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 15 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 15 In_FINISHED = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 15 In_APPLICATION = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 15 In_CERTIFICATE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 15 In_EMPTY_CERTIFICATE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 15 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 15 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 15 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 19 In_ECDH_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 19 In_ECDH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_DECODE_ERROR
-    lambda 19 In_DH_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 19 In_DH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_DECRYPT_ERROR
-    lambda 19 In_PSK_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 19 In_PSK_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 19 In_RSA_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 19 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 19 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 19 In_FINISHED = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 19 In_APPLICATION = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 19 In_CERTIFICATE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 19 In_EMPTY_CERTIFICATE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 19 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 19 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 19 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 12 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 12 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 12 In_DH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 12 In_DH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 12 In_PSK_CLIENT_HELLO = Out_TIMEOUT
-    lambda 12 In_PSK_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 12 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 12 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 12 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 12 In_FINISHED = Out_CHANGE_CIPHER_SPEC_FINISHED
-    lambda 12 In_APPLICATION = Out_TIMEOUT
-    lambda 12 In_CERTIFICATE = Out_TIMEOUT
-    lambda 12 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 12 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 12 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 12 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 21 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 21 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 21 In_DH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 21 In_DH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 21 In_PSK_CLIENT_HELLO = Out_TIMEOUT
-    lambda 21 In_PSK_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 21 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 21 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 21 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 21 In_FINISHED = Out_TIMEOUT
-    lambda 21 In_APPLICATION = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 21 In_CERTIFICATE = Out_TIMEOUT
-    lambda 21 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 21 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 21 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 21 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 20 In_ECDH_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 20 In_ECDH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 20 In_DH_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 20 In_DH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 20 In_PSK_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 20 In_PSK_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 20 In_RSA_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 20 In_RSA_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 20 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 20 In_FINISHED = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 20 In_APPLICATION = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 20 In_CERTIFICATE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 20 In_EMPTY_CERTIFICATE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 20 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 20 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 20 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 16 In_ECDH_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 16 In_ECDH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 16 In_DH_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 16 In_DH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 16 In_PSK_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 16 In_PSK_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 16 In_RSA_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 16 In_RSA_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 16 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 16 In_FINISHED = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 16 In_APPLICATION = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 16 In_CERTIFICATE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 16 In_EMPTY_CERTIFICATE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 16 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 16 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 16 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 8 In_ECDH_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 8 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 8 In_DH_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 8 In_DH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_DECODE_ERROR
-    lambda 8 In_PSK_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 8 In_PSK_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_DECODE_ERROR
-    lambda 8 In_RSA_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 8 In_RSA_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_DECODE_ERROR
-    lambda 8 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 8 In_FINISHED = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 8 In_APPLICATION = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 8 In_CERTIFICATE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 8 In_EMPTY_CERTIFICATE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 8 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 8 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 8 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 13 In_ECDH_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 13 In_ECDH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 13 In_DH_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 13 In_DH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 13 In_PSK_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 13 In_PSK_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 13 In_RSA_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 13 In_RSA_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 13 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 13 In_FINISHED = Out_CHANGE_CIPHER_SPEC_FINISHED
-    lambda 13 In_APPLICATION = Out_TIMEOUT
-    lambda 13 In_CERTIFICATE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 13 In_EMPTY_CERTIFICATE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 13 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 13 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 13 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda _ _ = error "haal-gen: undefined transition"
+import Haal.Automaton.MealyAutomaton (MealyAutomaton, mkMealyAutomatonTable)
+
+data OpensslV1V1V1bAllCertNreqInput
+    = In_ECDH_CLIENT_HELLO
+    | In_ECDH_CLIENT_KEY_EXCHANGE
+    | In_DH_CLIENT_HELLO
+    | In_DH_CLIENT_KEY_EXCHANGE
+    | In_PSK_CLIENT_HELLO
+    | In_PSK_CLIENT_KEY_EXCHANGE
+    | In_RSA_CLIENT_HELLO
+    | In_RSA_CLIENT_KEY_EXCHANGE
+    | In_CHANGE_CIPHER_SPEC
+    | In_FINISHED
+    | In_APPLICATION
+    | In_CERTIFICATE
+    | In_EMPTY_CERTIFICATE
+    | In_CERTIFICATE_VERIFY
+    | In_Alert_WARNING_CLOSE_NOTIFY
+    | In_Alert_FATAL_UNEXPECTED_MESSAGE
+    deriving (Show, Eq, Ord, Enum, Bounded)
+
+data OpensslV1V1V1bAllCertNreqOutput
+    = Out_HELLO_VERIFY_REQUEST
+    | Out_Alert_FATAL_UNEXPECTED_MESSAGE
+    | Out_TIMEOUT
+    | Out_Alert_FATAL_INTERNAL_ERROR
+    | Out_SERVER_HELLO_CERTIFICATE_ECDHE_SERVER_KEY_EXCHANGE_CERTIFICATE_REQUEST_SERVER_HELLO_DONE
+    | Out_SERVER_HELLO_CERTIFICATE_DHE_SERVER_KEY_EXCHANGE_CERTIFICATE_REQUEST_SERVER_HELLO_DONE
+    | Out_SERVER_HELLO_SERVER_HELLO_DONE
+    | Out_SERVER_HELLO_CERTIFICATE_CERTIFICATE_REQUEST_SERVER_HELLO_DONE
+    | Out_Alert_FATAL_DECODE_ERROR
+    | Out_CHANGE_CIPHER_SPEC_FINISHED
+    | Out_Alert_FATAL_DECRYPT_ERROR
+    deriving (Show, Eq, Ord, Enum, Bounded)
+
+{- Transitions (state  input -> next state / output):
+    0     In_ECDH_CLIENT_HELLO               -> 1 / Out_HELLO_VERIFY_REQUEST
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_DH_CLIENT_HELLO                 -> 1 / Out_HELLO_VERIFY_REQUEST
+          In_DH_CLIENT_KEY_EXCHANGE          -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_PSK_CLIENT_HELLO                -> 1 / Out_HELLO_VERIFY_REQUEST
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_RSA_CLIENT_HELLO                -> 1 / Out_HELLO_VERIFY_REQUEST
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 2 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_APPLICATION                     -> 0 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CERTIFICATE                     -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_EMPTY_CERTIFICATE               -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CERTIFICATE_VERIFY              -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 0 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 0 / Out_TIMEOUT
+    1     In_ECDH_CLIENT_HELLO               -> 4 / Out_SERVER_HELLO_CERTIFICATE_ECDHE_SERVER_KEY_EXCHANGE_CERTIFICATE_REQUEST_SERVER_HELLO_DONE
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_DH_CLIENT_HELLO                 -> 5 / Out_SERVER_HELLO_CERTIFICATE_DHE_SERVER_KEY_EXCHANGE_CERTIFICATE_REQUEST_SERVER_HELLO_DONE
+          In_DH_CLIENT_KEY_EXCHANGE          -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_PSK_CLIENT_HELLO                -> 6 / Out_SERVER_HELLO_SERVER_HELLO_DONE
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_RSA_CLIENT_HELLO                -> 7 / Out_SERVER_HELLO_CERTIFICATE_CERTIFICATE_REQUEST_SERVER_HELLO_DONE
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 2 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_APPLICATION                     -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CERTIFICATE                     -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_EMPTY_CERTIFICATE               -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CERTIFICATE_VERIFY              -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 2 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 2 / Out_TIMEOUT
+    2     In_ECDH_CLIENT_HELLO               -> 2 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 2 / Out_TIMEOUT
+          In_DH_CLIENT_HELLO                 -> 2 / Out_TIMEOUT
+          In_DH_CLIENT_KEY_EXCHANGE          -> 2 / Out_TIMEOUT
+          In_PSK_CLIENT_HELLO                -> 2 / Out_TIMEOUT
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 2 / Out_TIMEOUT
+          In_RSA_CLIENT_HELLO                -> 2 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 2 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 2 / Out_TIMEOUT
+          In_APPLICATION                     -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CERTIFICATE                     -> 2 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 2 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 2 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 2 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 2 / Out_TIMEOUT
+    3     In_ECDH_CLIENT_HELLO               -> 3 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 3 / Out_TIMEOUT
+          In_DH_CLIENT_HELLO                 -> 3 / Out_TIMEOUT
+          In_DH_CLIENT_KEY_EXCHANGE          -> 3 / Out_TIMEOUT
+          In_PSK_CLIENT_HELLO                -> 3 / Out_TIMEOUT
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 3 / Out_TIMEOUT
+          In_RSA_CLIENT_HELLO                -> 3 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 3 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 3 / Out_TIMEOUT
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 3 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 3 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 3 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 3 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 3 / Out_TIMEOUT
+    4     In_ECDH_CLIENT_HELLO               -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_DH_CLIENT_HELLO                 -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_DH_CLIENT_KEY_EXCHANGE          -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_PSK_CLIENT_HELLO                -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_RSA_CLIENT_HELLO                -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 2 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_APPLICATION                     -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CERTIFICATE                     -> 8 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 9 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 2 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 2 / Out_TIMEOUT
+    5     In_ECDH_CLIENT_HELLO               -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_DH_CLIENT_HELLO                 -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_DH_CLIENT_KEY_EXCHANGE          -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_PSK_CLIENT_HELLO                -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_RSA_CLIENT_HELLO                -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 2 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_APPLICATION                     -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CERTIFICATE                     -> 14 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 15 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 2 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 2 / Out_TIMEOUT
+    6     In_ECDH_CLIENT_HELLO               -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 2 / Out_Alert_FATAL_DECODE_ERROR
+          In_DH_CLIENT_HELLO                 -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_DH_CLIENT_KEY_EXCHANGE          -> 2 / Out_Alert_FATAL_DECODE_ERROR
+          In_PSK_CLIENT_HELLO                -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 10 / Out_TIMEOUT
+          In_RSA_CLIENT_HELLO                -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 2 / Out_Alert_FATAL_DECODE_ERROR
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 2 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_APPLICATION                     -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CERTIFICATE                     -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_EMPTY_CERTIFICATE               -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CERTIFICATE_VERIFY              -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 2 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 2 / Out_TIMEOUT
+    7     In_ECDH_CLIENT_HELLO               -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_DH_CLIENT_HELLO                 -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_DH_CLIENT_KEY_EXCHANGE          -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_PSK_CLIENT_HELLO                -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_RSA_CLIENT_HELLO                -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 2 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_APPLICATION                     -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CERTIFICATE                     -> 18 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 19 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 2 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 2 / Out_TIMEOUT
+    8     In_ECDH_CLIENT_HELLO               -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 16 / Out_TIMEOUT
+          In_DH_CLIENT_HELLO                 -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_DH_CLIENT_KEY_EXCHANGE          -> 2 / Out_Alert_FATAL_DECODE_ERROR
+          In_PSK_CLIENT_HELLO                -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 2 / Out_Alert_FATAL_DECODE_ERROR
+          In_RSA_CLIENT_HELLO                -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 2 / Out_Alert_FATAL_DECODE_ERROR
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 2 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_APPLICATION                     -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CERTIFICATE                     -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_EMPTY_CERTIFICATE               -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CERTIFICATE_VERIFY              -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 2 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 2 / Out_TIMEOUT
+    9     In_ECDH_CLIENT_HELLO               -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 10 / Out_TIMEOUT
+          In_DH_CLIENT_HELLO                 -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_DH_CLIENT_KEY_EXCHANGE          -> 2 / Out_Alert_FATAL_DECODE_ERROR
+          In_PSK_CLIENT_HELLO                -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 2 / Out_Alert_FATAL_DECODE_ERROR
+          In_RSA_CLIENT_HELLO                -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 2 / Out_Alert_FATAL_DECODE_ERROR
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 2 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_APPLICATION                     -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CERTIFICATE                     -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_EMPTY_CERTIFICATE               -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CERTIFICATE_VERIFY              -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 2 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 2 / Out_TIMEOUT
+    10    In_ECDH_CLIENT_HELLO               -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_DH_CLIENT_HELLO                 -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_DH_CLIENT_KEY_EXCHANGE          -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_PSK_CLIENT_HELLO                -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_RSA_CLIENT_HELLO                -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CHANGE_CIPHER_SPEC              -> 11 / Out_TIMEOUT
+          In_FINISHED                        -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_APPLICATION                     -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CERTIFICATE                     -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_EMPTY_CERTIFICATE               -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CERTIFICATE_VERIFY              -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 2 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 2 / Out_TIMEOUT
+    11    In_ECDH_CLIENT_HELLO               -> 3 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 3 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_DH_CLIENT_HELLO                 -> 3 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_DH_CLIENT_KEY_EXCHANGE          -> 3 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_PSK_CLIENT_HELLO                -> 3 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 3 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_RSA_CLIENT_HELLO                -> 3 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 3 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 12 / Out_CHANGE_CIPHER_SPEC_FINISHED
+          In_APPLICATION                     -> 11 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 3 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_EMPTY_CERTIFICATE               -> 3 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CERTIFICATE_VERIFY              -> 3 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 13 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 13 / Out_TIMEOUT
+    12    In_ECDH_CLIENT_HELLO               -> 21 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 21 / Out_TIMEOUT
+          In_DH_CLIENT_HELLO                 -> 21 / Out_TIMEOUT
+          In_DH_CLIENT_KEY_EXCHANGE          -> 21 / Out_TIMEOUT
+          In_PSK_CLIENT_HELLO                -> 21 / Out_TIMEOUT
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 21 / Out_TIMEOUT
+          In_RSA_CLIENT_HELLO                -> 21 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 21 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 12 / Out_CHANGE_CIPHER_SPEC_FINISHED
+          In_APPLICATION                     -> 12 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 21 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 21 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 21 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 3 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 3 / Out_TIMEOUT
+    13    In_ECDH_CLIENT_HELLO               -> 3 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 3 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_DH_CLIENT_HELLO                 -> 3 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_DH_CLIENT_KEY_EXCHANGE          -> 3 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_PSK_CLIENT_HELLO                -> 3 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 3 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_RSA_CLIENT_HELLO                -> 3 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 3 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 3 / Out_CHANGE_CIPHER_SPEC_FINISHED
+          In_APPLICATION                     -> 13 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 3 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_EMPTY_CERTIFICATE               -> 3 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CERTIFICATE_VERIFY              -> 3 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 13 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 13 / Out_TIMEOUT
+    14    In_ECDH_CLIENT_HELLO               -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 2 / Out_Alert_FATAL_DECODE_ERROR
+          In_DH_CLIENT_HELLO                 -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_DH_CLIENT_KEY_EXCHANGE          -> 16 / Out_TIMEOUT
+          In_PSK_CLIENT_HELLO                -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 17 / Out_TIMEOUT
+          In_RSA_CLIENT_HELLO                -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 17 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 2 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_APPLICATION                     -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CERTIFICATE                     -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_EMPTY_CERTIFICATE               -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CERTIFICATE_VERIFY              -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 2 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 2 / Out_TIMEOUT
+    15    In_ECDH_CLIENT_HELLO               -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 2 / Out_Alert_FATAL_DECODE_ERROR
+          In_DH_CLIENT_HELLO                 -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_DH_CLIENT_KEY_EXCHANGE          -> 10 / Out_TIMEOUT
+          In_PSK_CLIENT_HELLO                -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 20 / Out_TIMEOUT
+          In_RSA_CLIENT_HELLO                -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 20 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 2 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_APPLICATION                     -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CERTIFICATE                     -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_EMPTY_CERTIFICATE               -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CERTIFICATE_VERIFY              -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 2 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 2 / Out_TIMEOUT
+    16    In_ECDH_CLIENT_HELLO               -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_DH_CLIENT_HELLO                 -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_DH_CLIENT_KEY_EXCHANGE          -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_PSK_CLIENT_HELLO                -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_RSA_CLIENT_HELLO                -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_APPLICATION                     -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CERTIFICATE                     -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_EMPTY_CERTIFICATE               -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CERTIFICATE_VERIFY              -> 10 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 2 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 2 / Out_TIMEOUT
+    17    In_ECDH_CLIENT_HELLO               -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_DH_CLIENT_HELLO                 -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_DH_CLIENT_KEY_EXCHANGE          -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_PSK_CLIENT_HELLO                -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_RSA_CLIENT_HELLO                -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_APPLICATION                     -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CERTIFICATE                     -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_EMPTY_CERTIFICATE               -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CERTIFICATE_VERIFY              -> 20 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 2 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 2 / Out_TIMEOUT
+    18    In_ECDH_CLIENT_HELLO               -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 2 / Out_Alert_FATAL_DECODE_ERROR
+          In_DH_CLIENT_HELLO                 -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_DH_CLIENT_KEY_EXCHANGE          -> 2 / Out_Alert_FATAL_DECRYPT_ERROR
+          In_PSK_CLIENT_HELLO                -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 17 / Out_TIMEOUT
+          In_RSA_CLIENT_HELLO                -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 16 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 2 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_APPLICATION                     -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CERTIFICATE                     -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_EMPTY_CERTIFICATE               -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CERTIFICATE_VERIFY              -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 2 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 2 / Out_TIMEOUT
+    19    In_ECDH_CLIENT_HELLO               -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 2 / Out_Alert_FATAL_DECODE_ERROR
+          In_DH_CLIENT_HELLO                 -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_DH_CLIENT_KEY_EXCHANGE          -> 2 / Out_Alert_FATAL_DECRYPT_ERROR
+          In_PSK_CLIENT_HELLO                -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 20 / Out_TIMEOUT
+          In_RSA_CLIENT_HELLO                -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 10 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 2 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_APPLICATION                     -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CERTIFICATE                     -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_EMPTY_CERTIFICATE               -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CERTIFICATE_VERIFY              -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 2 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 2 / Out_TIMEOUT
+    20    In_ECDH_CLIENT_HELLO               -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_DH_CLIENT_HELLO                 -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_DH_CLIENT_KEY_EXCHANGE          -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_PSK_CLIENT_HELLO                -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_RSA_CLIENT_HELLO                -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_APPLICATION                     -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CERTIFICATE                     -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_EMPTY_CERTIFICATE               -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CERTIFICATE_VERIFY              -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 2 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 2 / Out_TIMEOUT
+    21    In_ECDH_CLIENT_HELLO               -> 21 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 21 / Out_TIMEOUT
+          In_DH_CLIENT_HELLO                 -> 21 / Out_TIMEOUT
+          In_DH_CLIENT_KEY_EXCHANGE          -> 21 / Out_TIMEOUT
+          In_PSK_CLIENT_HELLO                -> 21 / Out_TIMEOUT
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 21 / Out_TIMEOUT
+          In_RSA_CLIENT_HELLO                -> 21 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 21 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 21 / Out_TIMEOUT
+          In_APPLICATION                     -> 3 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CERTIFICATE                     -> 21 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 21 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 21 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 3 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 3 / Out_TIMEOUT
+-}
+opensslV1V1V1bAllCertNreq :: MealyAutomaton Int OpensslV1V1V1bAllCertNreqInput OpensslV1V1V1bAllCertNreqOutput
+opensslV1V1V1bAllCertNreq =
+    case mkMealyAutomatonTable 22 0 deltaTable lambdaTable of
+        Right m -> m
+        Left err -> error ("haal-gen: invalid transition table: " ++ err)
+  where
+    deltaTable =
+        "\1\2\1\2\1\2\1\2\3\2\0\2\2\2\0\0\
+        \\4\2\5\2\6\2\7\2\3\2\2\2\2\2\2\2\
+        \\2\2\2\2\2\2\2\2\3\2\2\2\2\2\2\2\
+        \\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\
+        \\2\2\2\2\2\2\2\2\3\2\2\8\9\2\2\2\
+        \\2\2\2\2\2\2\2\2\3\2\2\14\15\2\2\2\
+        \\2\2\2\2\2\10\2\2\3\2\2\2\2\2\2\2\
+        \\2\2\2\2\2\2\2\2\3\2\2\18\19\2\2\2\
+        \\2\16\2\2\2\2\2\2\3\2\2\2\2\2\2\2\
+        \\2\10\2\2\2\2\2\2\3\2\2\2\2\2\2\2\
+        \\2\2\2\2\2\2\2\2\11\2\2\2\2\2\2\2\
+        \\3\3\3\3\3\3\3\3\3\12\11\3\3\3\13\13\
+        \\21\21\21\21\21\21\21\21\3\12\12\21\21\21\3\3\
+        \\3\3\3\3\3\3\3\3\3\3\13\3\3\3\13\13\
+        \\2\2\2\16\2\17\2\17\3\2\2\2\2\2\2\2\
+        \\2\2\2\10\2\20\2\20\3\2\2\2\2\2\2\2\
+        \\2\2\2\2\2\2\2\2\3\2\2\2\2\10\2\2\
+        \\2\2\2\2\2\2\2\2\3\2\2\2\2\20\2\2\
+        \\2\2\2\2\2\17\2\16\3\2\2\2\2\2\2\2\
+        \\2\2\2\2\2\20\2\10\3\2\2\2\2\2\2\2\
+        \\2\2\2\2\2\2\2\2\3\2\2\2\2\2\2\2\
+        \\21\21\21\21\21\21\21\21\3\21\3\21\21\21\3\3"
+    lambdaTable =
+        "\0\1\0\1\0\1\0\1\2\3\1\1\1\1\2\2\
+        \\4\1\5\1\6\1\7\1\2\3\1\1\1\1\2\2\
+        \\2\2\2\2\2\2\2\2\2\2\1\2\2\2\2\2\
+        \\2\2\2\2\2\2\2\2\2\2\2\2\2\2\2\2\
+        \\1\1\1\1\1\1\1\1\2\3\1\2\2\1\2\2\
+        \\1\1\1\1\1\1\1\1\2\3\1\2\2\1\2\2\
+        \\1\8\1\8\1\2\1\8\2\3\1\1\1\1\2\2\
+        \\1\1\1\1\1\1\1\1\2\3\1\2\2\1\2\2\
+        \\1\2\1\8\1\8\1\8\2\3\1\1\1\1\2\2\
+        \\1\2\1\8\1\8\1\8\2\3\1\1\1\1\2\2\
+        \\1\1\1\1\1\1\1\1\2\1\1\1\1\1\2\2\
+        \\1\1\1\1\1\1\1\1\2\9\2\1\1\1\2\2\
+        \\2\2\2\2\2\2\2\2\2\9\2\2\2\2\2\2\
+        \\1\1\1\1\1\1\1\1\2\9\2\1\1\1\2\2\
+        \\1\8\1\2\1\2\1\2\2\3\1\1\1\1\2\2\
+        \\1\8\1\2\1\2\1\2\2\3\1\1\1\1\2\2\
+        \\1\1\1\1\1\1\1\1\2\1\1\1\1\2\2\2\
+        \\1\1\1\1\1\1\1\1\2\1\1\1\1\2\2\2\
+        \\1\8\1\10\1\2\1\2\2\3\1\1\1\1\2\2\
+        \\1\8\1\10\1\2\1\2\2\3\1\1\1\1\2\2\
+        \\1\1\1\1\1\1\1\1\2\1\1\1\1\1\2\2\
+        \\2\2\2\2\2\2\2\2\2\2\1\2\2\2\2\2"
diff --git a/src/Haal/Models/DTLS/OpensslV1V1V1bAllCertReq.hs b/src/Haal/Models/DTLS/OpensslV1V1V1bAllCertReq.hs
--- a/src/Haal/Models/DTLS/OpensslV1V1V1bAllCertReq.hs
+++ b/src/Haal/Models/DTLS/OpensslV1V1V1bAllCertReq.hs
@@ -5,8 +5,7 @@
     , opensslV1V1V1bAllCertReq
     ) where
 
-import qualified Data.Set as Set
-import Haal.Automaton.MealyAutomaton (MealyAutomaton, mkMealyAutomaton)
+import Haal.Automaton.MealyAutomaton (MealyAutomaton, mkMealyAutomatonTable)
 
 data OpensslV1V1V1bAllCertReqInput
     = In_ECDH_CLIENT_HELLO
@@ -42,616 +41,355 @@
     | Out_Alert_FATAL_DECRYPT_ERROR
     deriving (Show, Eq, Ord, Enum, Bounded)
 
+{- Transitions (state  input -> next state / output):
+    0     In_ECDH_CLIENT_HELLO               -> 1 / Out_HELLO_VERIFY_REQUEST
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_DH_CLIENT_HELLO                 -> 1 / Out_HELLO_VERIFY_REQUEST
+          In_DH_CLIENT_KEY_EXCHANGE          -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_PSK_CLIENT_HELLO                -> 1 / Out_HELLO_VERIFY_REQUEST
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_RSA_CLIENT_HELLO                -> 1 / Out_HELLO_VERIFY_REQUEST
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 2 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_APPLICATION                     -> 0 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CERTIFICATE                     -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_EMPTY_CERTIFICATE               -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CERTIFICATE_VERIFY              -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 0 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 0 / Out_TIMEOUT
+    1     In_ECDH_CLIENT_HELLO               -> 4 / Out_SERVER_HELLO_CERTIFICATE_ECDHE_SERVER_KEY_EXCHANGE_CERTIFICATE_REQUEST_SERVER_HELLO_DONE
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_DH_CLIENT_HELLO                 -> 5 / Out_SERVER_HELLO_CERTIFICATE_DHE_SERVER_KEY_EXCHANGE_CERTIFICATE_REQUEST_SERVER_HELLO_DONE
+          In_DH_CLIENT_KEY_EXCHANGE          -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_PSK_CLIENT_HELLO                -> 6 / Out_SERVER_HELLO_SERVER_HELLO_DONE
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_RSA_CLIENT_HELLO                -> 7 / Out_SERVER_HELLO_CERTIFICATE_CERTIFICATE_REQUEST_SERVER_HELLO_DONE
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 2 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_APPLICATION                     -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CERTIFICATE                     -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_EMPTY_CERTIFICATE               -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CERTIFICATE_VERIFY              -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 2 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 2 / Out_TIMEOUT
+    2     In_ECDH_CLIENT_HELLO               -> 2 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 2 / Out_TIMEOUT
+          In_DH_CLIENT_HELLO                 -> 2 / Out_TIMEOUT
+          In_DH_CLIENT_KEY_EXCHANGE          -> 2 / Out_TIMEOUT
+          In_PSK_CLIENT_HELLO                -> 2 / Out_TIMEOUT
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 2 / Out_TIMEOUT
+          In_RSA_CLIENT_HELLO                -> 2 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 2 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 2 / Out_TIMEOUT
+          In_APPLICATION                     -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CERTIFICATE                     -> 2 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 2 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 2 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 2 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 2 / Out_TIMEOUT
+    3     In_ECDH_CLIENT_HELLO               -> 3 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 3 / Out_TIMEOUT
+          In_DH_CLIENT_HELLO                 -> 3 / Out_TIMEOUT
+          In_DH_CLIENT_KEY_EXCHANGE          -> 3 / Out_TIMEOUT
+          In_PSK_CLIENT_HELLO                -> 3 / Out_TIMEOUT
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 3 / Out_TIMEOUT
+          In_RSA_CLIENT_HELLO                -> 3 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 3 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 3 / Out_TIMEOUT
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 3 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 3 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 3 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 3 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 3 / Out_TIMEOUT
+    4     In_ECDH_CLIENT_HELLO               -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_DH_CLIENT_HELLO                 -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_DH_CLIENT_KEY_EXCHANGE          -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_PSK_CLIENT_HELLO                -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_RSA_CLIENT_HELLO                -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 2 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_APPLICATION                     -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CERTIFICATE                     -> 8 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 2 / Out_Alert_FATAL_HANDSHAKE_FAILURE
+          In_CERTIFICATE_VERIFY              -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 2 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 2 / Out_TIMEOUT
+    5     In_ECDH_CLIENT_HELLO               -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_DH_CLIENT_HELLO                 -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_DH_CLIENT_KEY_EXCHANGE          -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_PSK_CLIENT_HELLO                -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_RSA_CLIENT_HELLO                -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 2 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_APPLICATION                     -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CERTIFICATE                     -> 14 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 2 / Out_Alert_FATAL_HANDSHAKE_FAILURE
+          In_CERTIFICATE_VERIFY              -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 2 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 2 / Out_TIMEOUT
+    6     In_ECDH_CLIENT_HELLO               -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 2 / Out_Alert_FATAL_DECODE_ERROR
+          In_DH_CLIENT_HELLO                 -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_DH_CLIENT_KEY_EXCHANGE          -> 2 / Out_Alert_FATAL_DECODE_ERROR
+          In_PSK_CLIENT_HELLO                -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 9 / Out_TIMEOUT
+          In_RSA_CLIENT_HELLO                -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 2 / Out_Alert_FATAL_DECODE_ERROR
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 2 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_APPLICATION                     -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CERTIFICATE                     -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_EMPTY_CERTIFICATE               -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CERTIFICATE_VERIFY              -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 2 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 2 / Out_TIMEOUT
+    7     In_ECDH_CLIENT_HELLO               -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_DH_CLIENT_HELLO                 -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_DH_CLIENT_KEY_EXCHANGE          -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_PSK_CLIENT_HELLO                -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_RSA_CLIENT_HELLO                -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 2 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_APPLICATION                     -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CERTIFICATE                     -> 16 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 2 / Out_Alert_FATAL_HANDSHAKE_FAILURE
+          In_CERTIFICATE_VERIFY              -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 2 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 2 / Out_TIMEOUT
+    8     In_ECDH_CLIENT_HELLO               -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 10 / Out_TIMEOUT
+          In_DH_CLIENT_HELLO                 -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_DH_CLIENT_KEY_EXCHANGE          -> 2 / Out_Alert_FATAL_DECODE_ERROR
+          In_PSK_CLIENT_HELLO                -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 2 / Out_Alert_FATAL_DECODE_ERROR
+          In_RSA_CLIENT_HELLO                -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 2 / Out_Alert_FATAL_DECODE_ERROR
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 2 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_APPLICATION                     -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CERTIFICATE                     -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_EMPTY_CERTIFICATE               -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CERTIFICATE_VERIFY              -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 2 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 2 / Out_TIMEOUT
+    9     In_ECDH_CLIENT_HELLO               -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_DH_CLIENT_HELLO                 -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_DH_CLIENT_KEY_EXCHANGE          -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_PSK_CLIENT_HELLO                -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_RSA_CLIENT_HELLO                -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CHANGE_CIPHER_SPEC              -> 11 / Out_TIMEOUT
+          In_FINISHED                        -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_APPLICATION                     -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CERTIFICATE                     -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_EMPTY_CERTIFICATE               -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CERTIFICATE_VERIFY              -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 2 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 2 / Out_TIMEOUT
+    10    In_ECDH_CLIENT_HELLO               -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_DH_CLIENT_HELLO                 -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_DH_CLIENT_KEY_EXCHANGE          -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_PSK_CLIENT_HELLO                -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_RSA_CLIENT_HELLO                -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_APPLICATION                     -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CERTIFICATE                     -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_EMPTY_CERTIFICATE               -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CERTIFICATE_VERIFY              -> 9 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 2 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 2 / Out_TIMEOUT
+    11    In_ECDH_CLIENT_HELLO               -> 3 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 3 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_DH_CLIENT_HELLO                 -> 3 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_DH_CLIENT_KEY_EXCHANGE          -> 3 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_PSK_CLIENT_HELLO                -> 3 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 3 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_RSA_CLIENT_HELLO                -> 3 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 3 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 12 / Out_CHANGE_CIPHER_SPEC_FINISHED
+          In_APPLICATION                     -> 11 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 3 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_EMPTY_CERTIFICATE               -> 3 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CERTIFICATE_VERIFY              -> 3 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 13 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 13 / Out_TIMEOUT
+    12    In_ECDH_CLIENT_HELLO               -> 18 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 18 / Out_TIMEOUT
+          In_DH_CLIENT_HELLO                 -> 18 / Out_TIMEOUT
+          In_DH_CLIENT_KEY_EXCHANGE          -> 18 / Out_TIMEOUT
+          In_PSK_CLIENT_HELLO                -> 18 / Out_TIMEOUT
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 18 / Out_TIMEOUT
+          In_RSA_CLIENT_HELLO                -> 18 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 18 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 12 / Out_CHANGE_CIPHER_SPEC_FINISHED
+          In_APPLICATION                     -> 12 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 18 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 18 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 18 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 3 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 3 / Out_TIMEOUT
+    13    In_ECDH_CLIENT_HELLO               -> 3 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 3 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_DH_CLIENT_HELLO                 -> 3 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_DH_CLIENT_KEY_EXCHANGE          -> 3 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_PSK_CLIENT_HELLO                -> 3 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 3 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_RSA_CLIENT_HELLO                -> 3 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 3 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 3 / Out_CHANGE_CIPHER_SPEC_FINISHED
+          In_APPLICATION                     -> 13 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 3 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_EMPTY_CERTIFICATE               -> 3 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CERTIFICATE_VERIFY              -> 3 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 13 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 13 / Out_TIMEOUT
+    14    In_ECDH_CLIENT_HELLO               -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 2 / Out_Alert_FATAL_DECODE_ERROR
+          In_DH_CLIENT_HELLO                 -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_DH_CLIENT_KEY_EXCHANGE          -> 10 / Out_TIMEOUT
+          In_PSK_CLIENT_HELLO                -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 15 / Out_TIMEOUT
+          In_RSA_CLIENT_HELLO                -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 15 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 2 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_APPLICATION                     -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CERTIFICATE                     -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_EMPTY_CERTIFICATE               -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CERTIFICATE_VERIFY              -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 2 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 2 / Out_TIMEOUT
+    15    In_ECDH_CLIENT_HELLO               -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_DH_CLIENT_HELLO                 -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_DH_CLIENT_KEY_EXCHANGE          -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_PSK_CLIENT_HELLO                -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_RSA_CLIENT_HELLO                -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_APPLICATION                     -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CERTIFICATE                     -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_EMPTY_CERTIFICATE               -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CERTIFICATE_VERIFY              -> 17 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 2 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 2 / Out_TIMEOUT
+    16    In_ECDH_CLIENT_HELLO               -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 2 / Out_Alert_FATAL_DECODE_ERROR
+          In_DH_CLIENT_HELLO                 -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_DH_CLIENT_KEY_EXCHANGE          -> 2 / Out_Alert_FATAL_DECRYPT_ERROR
+          In_PSK_CLIENT_HELLO                -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 15 / Out_TIMEOUT
+          In_RSA_CLIENT_HELLO                -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 10 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 2 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_APPLICATION                     -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CERTIFICATE                     -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_EMPTY_CERTIFICATE               -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CERTIFICATE_VERIFY              -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 2 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 2 / Out_TIMEOUT
+    17    In_ECDH_CLIENT_HELLO               -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_DH_CLIENT_HELLO                 -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_DH_CLIENT_KEY_EXCHANGE          -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_PSK_CLIENT_HELLO                -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_RSA_CLIENT_HELLO                -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_APPLICATION                     -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CERTIFICATE                     -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_EMPTY_CERTIFICATE               -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CERTIFICATE_VERIFY              -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 2 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 2 / Out_TIMEOUT
+    18    In_ECDH_CLIENT_HELLO               -> 18 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 18 / Out_TIMEOUT
+          In_DH_CLIENT_HELLO                 -> 18 / Out_TIMEOUT
+          In_DH_CLIENT_KEY_EXCHANGE          -> 18 / Out_TIMEOUT
+          In_PSK_CLIENT_HELLO                -> 18 / Out_TIMEOUT
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 18 / Out_TIMEOUT
+          In_RSA_CLIENT_HELLO                -> 18 / Out_TIMEOUT
+          In_RSA_CLIENT_KEY_EXCHANGE         -> 18 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 18 / Out_TIMEOUT
+          In_APPLICATION                     -> 3 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
+          In_CERTIFICATE                     -> 18 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 18 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 18 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 3 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 3 / Out_TIMEOUT
+-}
 opensslV1V1V1bAllCertReq :: MealyAutomaton Int OpensslV1V1V1bAllCertReqInput OpensslV1V1V1bAllCertReqOutput
-opensslV1V1V1bAllCertReq = mkMealyAutomaton delta lambda (Set.fromList [0..18]) 0
+opensslV1V1V1bAllCertReq =
+    case mkMealyAutomatonTable 19 0 deltaTable lambdaTable of
+        Right m -> m
+        Left err -> error ("haal-gen: invalid transition table: " ++ err)
   where
-    delta 0 In_ECDH_CLIENT_HELLO = 1
-    delta 0 In_ECDH_CLIENT_KEY_EXCHANGE = 2
-    delta 0 In_DH_CLIENT_HELLO = 1
-    delta 0 In_DH_CLIENT_KEY_EXCHANGE = 2
-    delta 0 In_PSK_CLIENT_HELLO = 1
-    delta 0 In_PSK_CLIENT_KEY_EXCHANGE = 2
-    delta 0 In_RSA_CLIENT_HELLO = 1
-    delta 0 In_RSA_CLIENT_KEY_EXCHANGE = 2
-    delta 0 In_CHANGE_CIPHER_SPEC = 3
-    delta 0 In_FINISHED = 2
-    delta 0 In_APPLICATION = 0
-    delta 0 In_CERTIFICATE = 2
-    delta 0 In_EMPTY_CERTIFICATE = 2
-    delta 0 In_CERTIFICATE_VERIFY = 2
-    delta 0 In_Alert_WARNING_CLOSE_NOTIFY = 0
-    delta 0 In_Alert_FATAL_UNEXPECTED_MESSAGE = 0
-    delta 2 In_ECDH_CLIENT_HELLO = 2
-    delta 2 In_ECDH_CLIENT_KEY_EXCHANGE = 2
-    delta 2 In_DH_CLIENT_HELLO = 2
-    delta 2 In_DH_CLIENT_KEY_EXCHANGE = 2
-    delta 2 In_PSK_CLIENT_HELLO = 2
-    delta 2 In_PSK_CLIENT_KEY_EXCHANGE = 2
-    delta 2 In_RSA_CLIENT_HELLO = 2
-    delta 2 In_RSA_CLIENT_KEY_EXCHANGE = 2
-    delta 2 In_CHANGE_CIPHER_SPEC = 3
-    delta 2 In_FINISHED = 2
-    delta 2 In_APPLICATION = 2
-    delta 2 In_CERTIFICATE = 2
-    delta 2 In_EMPTY_CERTIFICATE = 2
-    delta 2 In_CERTIFICATE_VERIFY = 2
-    delta 2 In_Alert_WARNING_CLOSE_NOTIFY = 2
-    delta 2 In_Alert_FATAL_UNEXPECTED_MESSAGE = 2
-    delta 1 In_ECDH_CLIENT_HELLO = 4
-    delta 1 In_ECDH_CLIENT_KEY_EXCHANGE = 2
-    delta 1 In_DH_CLIENT_HELLO = 5
-    delta 1 In_DH_CLIENT_KEY_EXCHANGE = 2
-    delta 1 In_PSK_CLIENT_HELLO = 6
-    delta 1 In_PSK_CLIENT_KEY_EXCHANGE = 2
-    delta 1 In_RSA_CLIENT_HELLO = 7
-    delta 1 In_RSA_CLIENT_KEY_EXCHANGE = 2
-    delta 1 In_CHANGE_CIPHER_SPEC = 3
-    delta 1 In_FINISHED = 2
-    delta 1 In_APPLICATION = 2
-    delta 1 In_CERTIFICATE = 2
-    delta 1 In_EMPTY_CERTIFICATE = 2
-    delta 1 In_CERTIFICATE_VERIFY = 2
-    delta 1 In_Alert_WARNING_CLOSE_NOTIFY = 2
-    delta 1 In_Alert_FATAL_UNEXPECTED_MESSAGE = 2
-    delta 4 In_ECDH_CLIENT_HELLO = 2
-    delta 4 In_ECDH_CLIENT_KEY_EXCHANGE = 2
-    delta 4 In_DH_CLIENT_HELLO = 2
-    delta 4 In_DH_CLIENT_KEY_EXCHANGE = 2
-    delta 4 In_PSK_CLIENT_HELLO = 2
-    delta 4 In_PSK_CLIENT_KEY_EXCHANGE = 2
-    delta 4 In_RSA_CLIENT_HELLO = 2
-    delta 4 In_RSA_CLIENT_KEY_EXCHANGE = 2
-    delta 4 In_CHANGE_CIPHER_SPEC = 3
-    delta 4 In_FINISHED = 2
-    delta 4 In_APPLICATION = 2
-    delta 4 In_CERTIFICATE = 8
-    delta 4 In_EMPTY_CERTIFICATE = 2
-    delta 4 In_CERTIFICATE_VERIFY = 2
-    delta 4 In_Alert_WARNING_CLOSE_NOTIFY = 2
-    delta 4 In_Alert_FATAL_UNEXPECTED_MESSAGE = 2
-    delta 3 In_ECDH_CLIENT_HELLO = 3
-    delta 3 In_ECDH_CLIENT_KEY_EXCHANGE = 3
-    delta 3 In_DH_CLIENT_HELLO = 3
-    delta 3 In_DH_CLIENT_KEY_EXCHANGE = 3
-    delta 3 In_PSK_CLIENT_HELLO = 3
-    delta 3 In_PSK_CLIENT_KEY_EXCHANGE = 3
-    delta 3 In_RSA_CLIENT_HELLO = 3
-    delta 3 In_RSA_CLIENT_KEY_EXCHANGE = 3
-    delta 3 In_CHANGE_CIPHER_SPEC = 3
-    delta 3 In_FINISHED = 3
-    delta 3 In_APPLICATION = 3
-    delta 3 In_CERTIFICATE = 3
-    delta 3 In_EMPTY_CERTIFICATE = 3
-    delta 3 In_CERTIFICATE_VERIFY = 3
-    delta 3 In_Alert_WARNING_CLOSE_NOTIFY = 3
-    delta 3 In_Alert_FATAL_UNEXPECTED_MESSAGE = 3
-    delta 6 In_ECDH_CLIENT_HELLO = 2
-    delta 6 In_ECDH_CLIENT_KEY_EXCHANGE = 2
-    delta 6 In_DH_CLIENT_HELLO = 2
-    delta 6 In_DH_CLIENT_KEY_EXCHANGE = 2
-    delta 6 In_PSK_CLIENT_HELLO = 2
-    delta 6 In_PSK_CLIENT_KEY_EXCHANGE = 9
-    delta 6 In_RSA_CLIENT_HELLO = 2
-    delta 6 In_RSA_CLIENT_KEY_EXCHANGE = 2
-    delta 6 In_CHANGE_CIPHER_SPEC = 3
-    delta 6 In_FINISHED = 2
-    delta 6 In_APPLICATION = 2
-    delta 6 In_CERTIFICATE = 2
-    delta 6 In_EMPTY_CERTIFICATE = 2
-    delta 6 In_CERTIFICATE_VERIFY = 2
-    delta 6 In_Alert_WARNING_CLOSE_NOTIFY = 2
-    delta 6 In_Alert_FATAL_UNEXPECTED_MESSAGE = 2
-    delta 8 In_ECDH_CLIENT_HELLO = 2
-    delta 8 In_ECDH_CLIENT_KEY_EXCHANGE = 10
-    delta 8 In_DH_CLIENT_HELLO = 2
-    delta 8 In_DH_CLIENT_KEY_EXCHANGE = 2
-    delta 8 In_PSK_CLIENT_HELLO = 2
-    delta 8 In_PSK_CLIENT_KEY_EXCHANGE = 2
-    delta 8 In_RSA_CLIENT_HELLO = 2
-    delta 8 In_RSA_CLIENT_KEY_EXCHANGE = 2
-    delta 8 In_CHANGE_CIPHER_SPEC = 3
-    delta 8 In_FINISHED = 2
-    delta 8 In_APPLICATION = 2
-    delta 8 In_CERTIFICATE = 2
-    delta 8 In_EMPTY_CERTIFICATE = 2
-    delta 8 In_CERTIFICATE_VERIFY = 2
-    delta 8 In_Alert_WARNING_CLOSE_NOTIFY = 2
-    delta 8 In_Alert_FATAL_UNEXPECTED_MESSAGE = 2
-    delta 9 In_ECDH_CLIENT_HELLO = 2
-    delta 9 In_ECDH_CLIENT_KEY_EXCHANGE = 2
-    delta 9 In_DH_CLIENT_HELLO = 2
-    delta 9 In_DH_CLIENT_KEY_EXCHANGE = 2
-    delta 9 In_PSK_CLIENT_HELLO = 2
-    delta 9 In_PSK_CLIENT_KEY_EXCHANGE = 2
-    delta 9 In_RSA_CLIENT_HELLO = 2
-    delta 9 In_RSA_CLIENT_KEY_EXCHANGE = 2
-    delta 9 In_CHANGE_CIPHER_SPEC = 11
-    delta 9 In_FINISHED = 2
-    delta 9 In_APPLICATION = 2
-    delta 9 In_CERTIFICATE = 2
-    delta 9 In_EMPTY_CERTIFICATE = 2
-    delta 9 In_CERTIFICATE_VERIFY = 2
-    delta 9 In_Alert_WARNING_CLOSE_NOTIFY = 2
-    delta 9 In_Alert_FATAL_UNEXPECTED_MESSAGE = 2
-    delta 11 In_ECDH_CLIENT_HELLO = 3
-    delta 11 In_ECDH_CLIENT_KEY_EXCHANGE = 3
-    delta 11 In_DH_CLIENT_HELLO = 3
-    delta 11 In_DH_CLIENT_KEY_EXCHANGE = 3
-    delta 11 In_PSK_CLIENT_HELLO = 3
-    delta 11 In_PSK_CLIENT_KEY_EXCHANGE = 3
-    delta 11 In_RSA_CLIENT_HELLO = 3
-    delta 11 In_RSA_CLIENT_KEY_EXCHANGE = 3
-    delta 11 In_CHANGE_CIPHER_SPEC = 3
-    delta 11 In_FINISHED = 12
-    delta 11 In_APPLICATION = 11
-    delta 11 In_CERTIFICATE = 3
-    delta 11 In_EMPTY_CERTIFICATE = 3
-    delta 11 In_CERTIFICATE_VERIFY = 3
-    delta 11 In_Alert_WARNING_CLOSE_NOTIFY = 13
-    delta 11 In_Alert_FATAL_UNEXPECTED_MESSAGE = 13
-    delta 5 In_ECDH_CLIENT_HELLO = 2
-    delta 5 In_ECDH_CLIENT_KEY_EXCHANGE = 2
-    delta 5 In_DH_CLIENT_HELLO = 2
-    delta 5 In_DH_CLIENT_KEY_EXCHANGE = 2
-    delta 5 In_PSK_CLIENT_HELLO = 2
-    delta 5 In_PSK_CLIENT_KEY_EXCHANGE = 2
-    delta 5 In_RSA_CLIENT_HELLO = 2
-    delta 5 In_RSA_CLIENT_KEY_EXCHANGE = 2
-    delta 5 In_CHANGE_CIPHER_SPEC = 3
-    delta 5 In_FINISHED = 2
-    delta 5 In_APPLICATION = 2
-    delta 5 In_CERTIFICATE = 14
-    delta 5 In_EMPTY_CERTIFICATE = 2
-    delta 5 In_CERTIFICATE_VERIFY = 2
-    delta 5 In_Alert_WARNING_CLOSE_NOTIFY = 2
-    delta 5 In_Alert_FATAL_UNEXPECTED_MESSAGE = 2
-    delta 14 In_ECDH_CLIENT_HELLO = 2
-    delta 14 In_ECDH_CLIENT_KEY_EXCHANGE = 2
-    delta 14 In_DH_CLIENT_HELLO = 2
-    delta 14 In_DH_CLIENT_KEY_EXCHANGE = 10
-    delta 14 In_PSK_CLIENT_HELLO = 2
-    delta 14 In_PSK_CLIENT_KEY_EXCHANGE = 15
-    delta 14 In_RSA_CLIENT_HELLO = 2
-    delta 14 In_RSA_CLIENT_KEY_EXCHANGE = 15
-    delta 14 In_CHANGE_CIPHER_SPEC = 3
-    delta 14 In_FINISHED = 2
-    delta 14 In_APPLICATION = 2
-    delta 14 In_CERTIFICATE = 2
-    delta 14 In_EMPTY_CERTIFICATE = 2
-    delta 14 In_CERTIFICATE_VERIFY = 2
-    delta 14 In_Alert_WARNING_CLOSE_NOTIFY = 2
-    delta 14 In_Alert_FATAL_UNEXPECTED_MESSAGE = 2
-    delta 7 In_ECDH_CLIENT_HELLO = 2
-    delta 7 In_ECDH_CLIENT_KEY_EXCHANGE = 2
-    delta 7 In_DH_CLIENT_HELLO = 2
-    delta 7 In_DH_CLIENT_KEY_EXCHANGE = 2
-    delta 7 In_PSK_CLIENT_HELLO = 2
-    delta 7 In_PSK_CLIENT_KEY_EXCHANGE = 2
-    delta 7 In_RSA_CLIENT_HELLO = 2
-    delta 7 In_RSA_CLIENT_KEY_EXCHANGE = 2
-    delta 7 In_CHANGE_CIPHER_SPEC = 3
-    delta 7 In_FINISHED = 2
-    delta 7 In_APPLICATION = 2
-    delta 7 In_CERTIFICATE = 16
-    delta 7 In_EMPTY_CERTIFICATE = 2
-    delta 7 In_CERTIFICATE_VERIFY = 2
-    delta 7 In_Alert_WARNING_CLOSE_NOTIFY = 2
-    delta 7 In_Alert_FATAL_UNEXPECTED_MESSAGE = 2
-    delta 16 In_ECDH_CLIENT_HELLO = 2
-    delta 16 In_ECDH_CLIENT_KEY_EXCHANGE = 2
-    delta 16 In_DH_CLIENT_HELLO = 2
-    delta 16 In_DH_CLIENT_KEY_EXCHANGE = 2
-    delta 16 In_PSK_CLIENT_HELLO = 2
-    delta 16 In_PSK_CLIENT_KEY_EXCHANGE = 15
-    delta 16 In_RSA_CLIENT_HELLO = 2
-    delta 16 In_RSA_CLIENT_KEY_EXCHANGE = 10
-    delta 16 In_CHANGE_CIPHER_SPEC = 3
-    delta 16 In_FINISHED = 2
-    delta 16 In_APPLICATION = 2
-    delta 16 In_CERTIFICATE = 2
-    delta 16 In_EMPTY_CERTIFICATE = 2
-    delta 16 In_CERTIFICATE_VERIFY = 2
-    delta 16 In_Alert_WARNING_CLOSE_NOTIFY = 2
-    delta 16 In_Alert_FATAL_UNEXPECTED_MESSAGE = 2
-    delta 15 In_ECDH_CLIENT_HELLO = 2
-    delta 15 In_ECDH_CLIENT_KEY_EXCHANGE = 2
-    delta 15 In_DH_CLIENT_HELLO = 2
-    delta 15 In_DH_CLIENT_KEY_EXCHANGE = 2
-    delta 15 In_PSK_CLIENT_HELLO = 2
-    delta 15 In_PSK_CLIENT_KEY_EXCHANGE = 2
-    delta 15 In_RSA_CLIENT_HELLO = 2
-    delta 15 In_RSA_CLIENT_KEY_EXCHANGE = 2
-    delta 15 In_CHANGE_CIPHER_SPEC = 3
-    delta 15 In_FINISHED = 2
-    delta 15 In_APPLICATION = 2
-    delta 15 In_CERTIFICATE = 2
-    delta 15 In_EMPTY_CERTIFICATE = 2
-    delta 15 In_CERTIFICATE_VERIFY = 17
-    delta 15 In_Alert_WARNING_CLOSE_NOTIFY = 2
-    delta 15 In_Alert_FATAL_UNEXPECTED_MESSAGE = 2
-    delta 17 In_ECDH_CLIENT_HELLO = 2
-    delta 17 In_ECDH_CLIENT_KEY_EXCHANGE = 2
-    delta 17 In_DH_CLIENT_HELLO = 2
-    delta 17 In_DH_CLIENT_KEY_EXCHANGE = 2
-    delta 17 In_PSK_CLIENT_HELLO = 2
-    delta 17 In_PSK_CLIENT_KEY_EXCHANGE = 2
-    delta 17 In_RSA_CLIENT_HELLO = 2
-    delta 17 In_RSA_CLIENT_KEY_EXCHANGE = 2
-    delta 17 In_CHANGE_CIPHER_SPEC = 3
-    delta 17 In_FINISHED = 2
-    delta 17 In_APPLICATION = 2
-    delta 17 In_CERTIFICATE = 2
-    delta 17 In_EMPTY_CERTIFICATE = 2
-    delta 17 In_CERTIFICATE_VERIFY = 2
-    delta 17 In_Alert_WARNING_CLOSE_NOTIFY = 2
-    delta 17 In_Alert_FATAL_UNEXPECTED_MESSAGE = 2
-    delta 12 In_ECDH_CLIENT_HELLO = 18
-    delta 12 In_ECDH_CLIENT_KEY_EXCHANGE = 18
-    delta 12 In_DH_CLIENT_HELLO = 18
-    delta 12 In_DH_CLIENT_KEY_EXCHANGE = 18
-    delta 12 In_PSK_CLIENT_HELLO = 18
-    delta 12 In_PSK_CLIENT_KEY_EXCHANGE = 18
-    delta 12 In_RSA_CLIENT_HELLO = 18
-    delta 12 In_RSA_CLIENT_KEY_EXCHANGE = 18
-    delta 12 In_CHANGE_CIPHER_SPEC = 3
-    delta 12 In_FINISHED = 12
-    delta 12 In_APPLICATION = 12
-    delta 12 In_CERTIFICATE = 18
-    delta 12 In_EMPTY_CERTIFICATE = 18
-    delta 12 In_CERTIFICATE_VERIFY = 18
-    delta 12 In_Alert_WARNING_CLOSE_NOTIFY = 3
-    delta 12 In_Alert_FATAL_UNEXPECTED_MESSAGE = 3
-    delta 18 In_ECDH_CLIENT_HELLO = 18
-    delta 18 In_ECDH_CLIENT_KEY_EXCHANGE = 18
-    delta 18 In_DH_CLIENT_HELLO = 18
-    delta 18 In_DH_CLIENT_KEY_EXCHANGE = 18
-    delta 18 In_PSK_CLIENT_HELLO = 18
-    delta 18 In_PSK_CLIENT_KEY_EXCHANGE = 18
-    delta 18 In_RSA_CLIENT_HELLO = 18
-    delta 18 In_RSA_CLIENT_KEY_EXCHANGE = 18
-    delta 18 In_CHANGE_CIPHER_SPEC = 3
-    delta 18 In_FINISHED = 18
-    delta 18 In_APPLICATION = 3
-    delta 18 In_CERTIFICATE = 18
-    delta 18 In_EMPTY_CERTIFICATE = 18
-    delta 18 In_CERTIFICATE_VERIFY = 18
-    delta 18 In_Alert_WARNING_CLOSE_NOTIFY = 3
-    delta 18 In_Alert_FATAL_UNEXPECTED_MESSAGE = 3
-    delta 10 In_ECDH_CLIENT_HELLO = 2
-    delta 10 In_ECDH_CLIENT_KEY_EXCHANGE = 2
-    delta 10 In_DH_CLIENT_HELLO = 2
-    delta 10 In_DH_CLIENT_KEY_EXCHANGE = 2
-    delta 10 In_PSK_CLIENT_HELLO = 2
-    delta 10 In_PSK_CLIENT_KEY_EXCHANGE = 2
-    delta 10 In_RSA_CLIENT_HELLO = 2
-    delta 10 In_RSA_CLIENT_KEY_EXCHANGE = 2
-    delta 10 In_CHANGE_CIPHER_SPEC = 3
-    delta 10 In_FINISHED = 2
-    delta 10 In_APPLICATION = 2
-    delta 10 In_CERTIFICATE = 2
-    delta 10 In_EMPTY_CERTIFICATE = 2
-    delta 10 In_CERTIFICATE_VERIFY = 9
-    delta 10 In_Alert_WARNING_CLOSE_NOTIFY = 2
-    delta 10 In_Alert_FATAL_UNEXPECTED_MESSAGE = 2
-    delta 13 In_ECDH_CLIENT_HELLO = 3
-    delta 13 In_ECDH_CLIENT_KEY_EXCHANGE = 3
-    delta 13 In_DH_CLIENT_HELLO = 3
-    delta 13 In_DH_CLIENT_KEY_EXCHANGE = 3
-    delta 13 In_PSK_CLIENT_HELLO = 3
-    delta 13 In_PSK_CLIENT_KEY_EXCHANGE = 3
-    delta 13 In_RSA_CLIENT_HELLO = 3
-    delta 13 In_RSA_CLIENT_KEY_EXCHANGE = 3
-    delta 13 In_CHANGE_CIPHER_SPEC = 3
-    delta 13 In_FINISHED = 3
-    delta 13 In_APPLICATION = 13
-    delta 13 In_CERTIFICATE = 3
-    delta 13 In_EMPTY_CERTIFICATE = 3
-    delta 13 In_CERTIFICATE_VERIFY = 3
-    delta 13 In_Alert_WARNING_CLOSE_NOTIFY = 13
-    delta 13 In_Alert_FATAL_UNEXPECTED_MESSAGE = 13
-    delta _ _ = error "haal-gen: undefined transition"
-    lambda 0 In_ECDH_CLIENT_HELLO = Out_HELLO_VERIFY_REQUEST
-    lambda 0 In_ECDH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 0 In_DH_CLIENT_HELLO = Out_HELLO_VERIFY_REQUEST
-    lambda 0 In_DH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 0 In_PSK_CLIENT_HELLO = Out_HELLO_VERIFY_REQUEST
-    lambda 0 In_PSK_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 0 In_RSA_CLIENT_HELLO = Out_HELLO_VERIFY_REQUEST
-    lambda 0 In_RSA_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 0 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 0 In_FINISHED = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 0 In_APPLICATION = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 0 In_CERTIFICATE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 0 In_EMPTY_CERTIFICATE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 0 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 0 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 0 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 2 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 2 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 2 In_DH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 2 In_DH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 2 In_PSK_CLIENT_HELLO = Out_TIMEOUT
-    lambda 2 In_PSK_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 2 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 2 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 2 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 2 In_FINISHED = Out_TIMEOUT
-    lambda 2 In_APPLICATION = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 2 In_CERTIFICATE = Out_TIMEOUT
-    lambda 2 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 2 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 2 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 2 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 1 In_ECDH_CLIENT_HELLO = Out_SERVER_HELLO_CERTIFICATE_ECDHE_SERVER_KEY_EXCHANGE_CERTIFICATE_REQUEST_SERVER_HELLO_DONE
-    lambda 1 In_ECDH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 1 In_DH_CLIENT_HELLO = Out_SERVER_HELLO_CERTIFICATE_DHE_SERVER_KEY_EXCHANGE_CERTIFICATE_REQUEST_SERVER_HELLO_DONE
-    lambda 1 In_DH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 1 In_PSK_CLIENT_HELLO = Out_SERVER_HELLO_SERVER_HELLO_DONE
-    lambda 1 In_PSK_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 1 In_RSA_CLIENT_HELLO = Out_SERVER_HELLO_CERTIFICATE_CERTIFICATE_REQUEST_SERVER_HELLO_DONE
-    lambda 1 In_RSA_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 1 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 1 In_FINISHED = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 1 In_APPLICATION = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 1 In_CERTIFICATE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 1 In_EMPTY_CERTIFICATE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 1 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 1 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 1 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 4 In_ECDH_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 4 In_ECDH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 4 In_DH_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 4 In_DH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 4 In_PSK_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 4 In_PSK_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 4 In_RSA_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 4 In_RSA_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 4 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 4 In_FINISHED = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 4 In_APPLICATION = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 4 In_CERTIFICATE = Out_TIMEOUT
-    lambda 4 In_EMPTY_CERTIFICATE = Out_Alert_FATAL_HANDSHAKE_FAILURE
-    lambda 4 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 4 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 4 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 3 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 3 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 3 In_DH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 3 In_DH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 3 In_PSK_CLIENT_HELLO = Out_TIMEOUT
-    lambda 3 In_PSK_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 3 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 3 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 3 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 3 In_FINISHED = Out_TIMEOUT
-    lambda 3 In_APPLICATION = Out_TIMEOUT
-    lambda 3 In_CERTIFICATE = Out_TIMEOUT
-    lambda 3 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 3 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 3 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 3 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 6 In_ECDH_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 6 In_ECDH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_DECODE_ERROR
-    lambda 6 In_DH_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 6 In_DH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_DECODE_ERROR
-    lambda 6 In_PSK_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 6 In_PSK_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 6 In_RSA_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 6 In_RSA_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_DECODE_ERROR
-    lambda 6 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 6 In_FINISHED = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 6 In_APPLICATION = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 6 In_CERTIFICATE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 6 In_EMPTY_CERTIFICATE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 6 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 6 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 6 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 8 In_ECDH_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 8 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 8 In_DH_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 8 In_DH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_DECODE_ERROR
-    lambda 8 In_PSK_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 8 In_PSK_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_DECODE_ERROR
-    lambda 8 In_RSA_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 8 In_RSA_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_DECODE_ERROR
-    lambda 8 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 8 In_FINISHED = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 8 In_APPLICATION = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 8 In_CERTIFICATE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 8 In_EMPTY_CERTIFICATE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 8 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 8 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 8 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 9 In_ECDH_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 9 In_ECDH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 9 In_DH_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 9 In_DH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 9 In_PSK_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 9 In_PSK_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 9 In_RSA_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 9 In_RSA_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 9 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 9 In_FINISHED = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 9 In_APPLICATION = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 9 In_CERTIFICATE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 9 In_EMPTY_CERTIFICATE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 9 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 9 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 9 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 11 In_ECDH_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 11 In_ECDH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 11 In_DH_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 11 In_DH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 11 In_PSK_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 11 In_PSK_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 11 In_RSA_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 11 In_RSA_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 11 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 11 In_FINISHED = Out_CHANGE_CIPHER_SPEC_FINISHED
-    lambda 11 In_APPLICATION = Out_TIMEOUT
-    lambda 11 In_CERTIFICATE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 11 In_EMPTY_CERTIFICATE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 11 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 11 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 11 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 5 In_ECDH_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 5 In_ECDH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 5 In_DH_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 5 In_DH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 5 In_PSK_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 5 In_PSK_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 5 In_RSA_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 5 In_RSA_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 5 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 5 In_FINISHED = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 5 In_APPLICATION = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 5 In_CERTIFICATE = Out_TIMEOUT
-    lambda 5 In_EMPTY_CERTIFICATE = Out_Alert_FATAL_HANDSHAKE_FAILURE
-    lambda 5 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 5 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 5 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 14 In_ECDH_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 14 In_ECDH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_DECODE_ERROR
-    lambda 14 In_DH_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 14 In_DH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 14 In_PSK_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 14 In_PSK_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 14 In_RSA_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 14 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 14 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 14 In_FINISHED = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 14 In_APPLICATION = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 14 In_CERTIFICATE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 14 In_EMPTY_CERTIFICATE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 14 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 14 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 14 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 7 In_ECDH_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 7 In_ECDH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 7 In_DH_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 7 In_DH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 7 In_PSK_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 7 In_PSK_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 7 In_RSA_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 7 In_RSA_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 7 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 7 In_FINISHED = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 7 In_APPLICATION = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 7 In_CERTIFICATE = Out_TIMEOUT
-    lambda 7 In_EMPTY_CERTIFICATE = Out_Alert_FATAL_HANDSHAKE_FAILURE
-    lambda 7 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 7 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 7 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 16 In_ECDH_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 16 In_ECDH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_DECODE_ERROR
-    lambda 16 In_DH_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 16 In_DH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_DECRYPT_ERROR
-    lambda 16 In_PSK_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 16 In_PSK_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 16 In_RSA_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 16 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 16 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 16 In_FINISHED = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 16 In_APPLICATION = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 16 In_CERTIFICATE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 16 In_EMPTY_CERTIFICATE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 16 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 16 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 16 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 15 In_ECDH_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 15 In_ECDH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 15 In_DH_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 15 In_DH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 15 In_PSK_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 15 In_PSK_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 15 In_RSA_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 15 In_RSA_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 15 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 15 In_FINISHED = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 15 In_APPLICATION = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 15 In_CERTIFICATE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 15 In_EMPTY_CERTIFICATE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 15 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 15 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 15 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 17 In_ECDH_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 17 In_ECDH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 17 In_DH_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 17 In_DH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 17 In_PSK_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 17 In_PSK_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 17 In_RSA_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 17 In_RSA_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 17 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 17 In_FINISHED = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 17 In_APPLICATION = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 17 In_CERTIFICATE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 17 In_EMPTY_CERTIFICATE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 17 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 17 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 17 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 12 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 12 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 12 In_DH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 12 In_DH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 12 In_PSK_CLIENT_HELLO = Out_TIMEOUT
-    lambda 12 In_PSK_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 12 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 12 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 12 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 12 In_FINISHED = Out_CHANGE_CIPHER_SPEC_FINISHED
-    lambda 12 In_APPLICATION = Out_TIMEOUT
-    lambda 12 In_CERTIFICATE = Out_TIMEOUT
-    lambda 12 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 12 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 12 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 12 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 18 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 18 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 18 In_DH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 18 In_DH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 18 In_PSK_CLIENT_HELLO = Out_TIMEOUT
-    lambda 18 In_PSK_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 18 In_RSA_CLIENT_HELLO = Out_TIMEOUT
-    lambda 18 In_RSA_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 18 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 18 In_FINISHED = Out_TIMEOUT
-    lambda 18 In_APPLICATION = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 18 In_CERTIFICATE = Out_TIMEOUT
-    lambda 18 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 18 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 18 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 18 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 10 In_ECDH_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 10 In_ECDH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 10 In_DH_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 10 In_DH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 10 In_PSK_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 10 In_PSK_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 10 In_RSA_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 10 In_RSA_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 10 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 10 In_FINISHED = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 10 In_APPLICATION = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 10 In_CERTIFICATE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 10 In_EMPTY_CERTIFICATE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 10 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 10 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 10 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 13 In_ECDH_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 13 In_ECDH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 13 In_DH_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 13 In_DH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 13 In_PSK_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 13 In_PSK_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 13 In_RSA_CLIENT_HELLO = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 13 In_RSA_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 13 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 13 In_FINISHED = Out_CHANGE_CIPHER_SPEC_FINISHED
-    lambda 13 In_APPLICATION = Out_TIMEOUT
-    lambda 13 In_CERTIFICATE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 13 In_EMPTY_CERTIFICATE = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 13 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_UNEXPECTED_MESSAGE
-    lambda 13 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 13 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda _ _ = error "haal-gen: undefined transition"
+    deltaTable =
+        "\1\2\1\2\1\2\1\2\3\2\0\2\2\2\0\0\
+        \\4\2\5\2\6\2\7\2\3\2\2\2\2\2\2\2\
+        \\2\2\2\2\2\2\2\2\3\2\2\2\2\2\2\2\
+        \\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\
+        \\2\2\2\2\2\2\2\2\3\2\2\8\2\2\2\2\
+        \\2\2\2\2\2\2\2\2\3\2\2\14\2\2\2\2\
+        \\2\2\2\2\2\9\2\2\3\2\2\2\2\2\2\2\
+        \\2\2\2\2\2\2\2\2\3\2\2\16\2\2\2\2\
+        \\2\10\2\2\2\2\2\2\3\2\2\2\2\2\2\2\
+        \\2\2\2\2\2\2\2\2\11\2\2\2\2\2\2\2\
+        \\2\2\2\2\2\2\2\2\3\2\2\2\2\9\2\2\
+        \\3\3\3\3\3\3\3\3\3\12\11\3\3\3\13\13\
+        \\18\18\18\18\18\18\18\18\3\12\12\18\18\18\3\3\
+        \\3\3\3\3\3\3\3\3\3\3\13\3\3\3\13\13\
+        \\2\2\2\10\2\15\2\15\3\2\2\2\2\2\2\2\
+        \\2\2\2\2\2\2\2\2\3\2\2\2\2\17\2\2\
+        \\2\2\2\2\2\15\2\10\3\2\2\2\2\2\2\2\
+        \\2\2\2\2\2\2\2\2\3\2\2\2\2\2\2\2\
+        \\18\18\18\18\18\18\18\18\3\18\3\18\18\18\3\3"
+    lambdaTable =
+        "\0\1\0\1\0\1\0\1\2\3\1\1\1\1\2\2\
+        \\4\1\5\1\6\1\7\1\2\3\1\1\1\1\2\2\
+        \\2\2\2\2\2\2\2\2\2\2\1\2\2\2\2\2\
+        \\2\2\2\2\2\2\2\2\2\2\2\2\2\2\2\2\
+        \\1\1\1\1\1\1\1\1\2\3\1\2\8\1\2\2\
+        \\1\1\1\1\1\1\1\1\2\3\1\2\8\1\2\2\
+        \\1\9\1\9\1\2\1\9\2\3\1\1\1\1\2\2\
+        \\1\1\1\1\1\1\1\1\2\3\1\2\8\1\2\2\
+        \\1\2\1\9\1\9\1\9\2\3\1\1\1\1\2\2\
+        \\1\1\1\1\1\1\1\1\2\1\1\1\1\1\2\2\
+        \\1\1\1\1\1\1\1\1\2\1\1\1\1\2\2\2\
+        \\1\1\1\1\1\1\1\1\2\10\2\1\1\1\2\2\
+        \\2\2\2\2\2\2\2\2\2\10\2\2\2\2\2\2\
+        \\1\1\1\1\1\1\1\1\2\10\2\1\1\1\2\2\
+        \\1\9\1\2\1\2\1\2\2\3\1\1\1\1\2\2\
+        \\1\1\1\1\1\1\1\1\2\1\1\1\1\2\2\2\
+        \\1\9\1\11\1\2\1\2\2\3\1\1\1\1\2\2\
+        \\1\1\1\1\1\1\1\1\2\1\1\1\1\1\2\2\
+        \\2\2\2\2\2\2\2\2\2\2\1\2\2\2\2\2"
diff --git a/src/Haal/Models/DTLS/PionEcdheCertNone.hs b/src/Haal/Models/DTLS/PionEcdheCertNone.hs
--- a/src/Haal/Models/DTLS/PionEcdheCertNone.hs
+++ b/src/Haal/Models/DTLS/PionEcdheCertNone.hs
@@ -5,1358 +5,834 @@
     , pionEcdheCertNone
     ) where
 
-import qualified Data.Set as Set
-import Haal.Automaton.MealyAutomaton (MealyAutomaton, mkMealyAutomaton)
-
-data PionEcdheCertNoneInput
-    = In_ECDH_CLIENT_HELLO
-    | In_ECDH_CLIENT_KEY_EXCHANGE
-    | In_CHANGE_CIPHER_SPEC
-    | In_FINISHED
-    | In_APPLICATION
-    | In_CERTIFICATE
-    | In_EMPTY_CERTIFICATE
-    | In_CERTIFICATE_VERIFY
-    | In_Alert_WARNING_CLOSE_NOTIFY
-    | In_Alert_FATAL_UNEXPECTED_MESSAGE
-    deriving (Show, Eq, Ord, Enum, Bounded)
-
-data PionEcdheCertNoneOutput
-    = Out_HELLO_VERIFY_REQUEST
-    | Out_TIMEOUT
-    | Out_Alert_FATAL_CLOSE_NOTIFY
-    | Out_SOCKET_CLOSED
-    | Out_SERVER_HELLO_CERTIFICATE_ECDHE_SERVER_KEY_EXCHANGE_SERVER_HELLO_DONE
-    | Out_CHANGE_CIPHER_SPEC_FINISHED
-    | Out_Alert_FATAL_NO_CERTIFICATE_RESERVED
-    | Out_Alert_FATAL_HANDSHAKE_FAILURE
-    | Out_Alert_FATAL_BAD_CERTIFICATE
-    | Out_Alert_FATAL_DECODE_ERROR
-    | Out_APPLICATION
-    deriving (Show, Eq, Ord, Enum, Bounded)
-
-pionEcdheCertNone :: MealyAutomaton Int PionEcdheCertNoneInput PionEcdheCertNoneOutput
-pionEcdheCertNone = mkMealyAutomaton delta lambda (Set.fromList [0..65]) 0
-  where
-    delta 0 In_ECDH_CLIENT_HELLO = 1
-    delta 0 In_ECDH_CLIENT_KEY_EXCHANGE = 2
-    delta 0 In_CHANGE_CIPHER_SPEC = 3
-    delta 0 In_FINISHED = 2
-    delta 0 In_APPLICATION = 3
-    delta 0 In_CERTIFICATE = 2
-    delta 0 In_EMPTY_CERTIFICATE = 2
-    delta 0 In_CERTIFICATE_VERIFY = 2
-    delta 0 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 0 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 4 In_ECDH_CLIENT_HELLO = 4
-    delta 4 In_ECDH_CLIENT_KEY_EXCHANGE = 4
-    delta 4 In_CHANGE_CIPHER_SPEC = 4
-    delta 4 In_FINISHED = 4
-    delta 4 In_APPLICATION = 4
-    delta 4 In_CERTIFICATE = 4
-    delta 4 In_EMPTY_CERTIFICATE = 4
-    delta 4 In_CERTIFICATE_VERIFY = 4
-    delta 4 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 4 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 2 In_ECDH_CLIENT_HELLO = 2
-    delta 2 In_ECDH_CLIENT_KEY_EXCHANGE = 2
-    delta 2 In_CHANGE_CIPHER_SPEC = 3
-    delta 2 In_FINISHED = 2
-    delta 2 In_APPLICATION = 3
-    delta 2 In_CERTIFICATE = 2
-    delta 2 In_EMPTY_CERTIFICATE = 2
-    delta 2 In_CERTIFICATE_VERIFY = 2
-    delta 2 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 2 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 1 In_ECDH_CLIENT_HELLO = 5
-    delta 1 In_ECDH_CLIENT_KEY_EXCHANGE = 2
-    delta 1 In_CHANGE_CIPHER_SPEC = 3
-    delta 1 In_FINISHED = 2
-    delta 1 In_APPLICATION = 3
-    delta 1 In_CERTIFICATE = 2
-    delta 1 In_EMPTY_CERTIFICATE = 2
-    delta 1 In_CERTIFICATE_VERIFY = 2
-    delta 1 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 1 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 3 In_ECDH_CLIENT_HELLO = 3
-    delta 3 In_ECDH_CLIENT_KEY_EXCHANGE = 3
-    delta 3 In_CHANGE_CIPHER_SPEC = 3
-    delta 3 In_FINISHED = 3
-    delta 3 In_APPLICATION = 3
-    delta 3 In_CERTIFICATE = 3
-    delta 3 In_EMPTY_CERTIFICATE = 3
-    delta 3 In_CERTIFICATE_VERIFY = 3
-    delta 3 In_Alert_WARNING_CLOSE_NOTIFY = 3
-    delta 3 In_Alert_FATAL_UNEXPECTED_MESSAGE = 3
-    delta 5 In_ECDH_CLIENT_HELLO = 6
-    delta 5 In_ECDH_CLIENT_KEY_EXCHANGE = 7
-    delta 5 In_CHANGE_CIPHER_SPEC = 3
-    delta 5 In_FINISHED = 8
-    delta 5 In_APPLICATION = 3
-    delta 5 In_CERTIFICATE = 9
-    delta 5 In_EMPTY_CERTIFICATE = 10
-    delta 5 In_CERTIFICATE_VERIFY = 11
-    delta 5 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 5 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 7 In_ECDH_CLIENT_HELLO = 12
-    delta 7 In_ECDH_CLIENT_KEY_EXCHANGE = 13
-    delta 7 In_CHANGE_CIPHER_SPEC = 14
-    delta 7 In_FINISHED = 15
-    delta 7 In_APPLICATION = 3
-    delta 7 In_CERTIFICATE = 16
-    delta 7 In_EMPTY_CERTIFICATE = 17
-    delta 7 In_CERTIFICATE_VERIFY = 4
-    delta 7 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 7 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 13 In_ECDH_CLIENT_HELLO = 12
-    delta 13 In_ECDH_CLIENT_KEY_EXCHANGE = 13
-    delta 13 In_CHANGE_CIPHER_SPEC = 18
-    delta 13 In_FINISHED = 4
-    delta 13 In_APPLICATION = 3
-    delta 13 In_CERTIFICATE = 16
-    delta 13 In_EMPTY_CERTIFICATE = 17
-    delta 13 In_CERTIFICATE_VERIFY = 4
-    delta 13 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 13 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 8 In_ECDH_CLIENT_HELLO = 8
-    delta 8 In_ECDH_CLIENT_KEY_EXCHANGE = 4
-    delta 8 In_CHANGE_CIPHER_SPEC = 3
-    delta 8 In_FINISHED = 8
-    delta 8 In_APPLICATION = 3
-    delta 8 In_CERTIFICATE = 19
-    delta 8 In_EMPTY_CERTIFICATE = 19
-    delta 8 In_CERTIFICATE_VERIFY = 11
-    delta 8 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 8 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 16 In_ECDH_CLIENT_HELLO = 20
-    delta 16 In_ECDH_CLIENT_KEY_EXCHANGE = 21
-    delta 16 In_CHANGE_CIPHER_SPEC = 22
-    delta 16 In_FINISHED = 23
-    delta 16 In_APPLICATION = 3
-    delta 16 In_CERTIFICATE = 16
-    delta 16 In_EMPTY_CERTIFICATE = 17
-    delta 16 In_CERTIFICATE_VERIFY = 24
-    delta 16 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 16 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 12 In_ECDH_CLIENT_HELLO = 12
-    delta 12 In_ECDH_CLIENT_KEY_EXCHANGE = 13
-    delta 12 In_CHANGE_CIPHER_SPEC = 25
-    delta 12 In_FINISHED = 4
-    delta 12 In_APPLICATION = 3
-    delta 12 In_CERTIFICATE = 16
-    delta 12 In_EMPTY_CERTIFICATE = 17
-    delta 12 In_CERTIFICATE_VERIFY = 26
-    delta 12 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 12 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 21 In_ECDH_CLIENT_HELLO = 27
-    delta 21 In_ECDH_CLIENT_KEY_EXCHANGE = 20
-    delta 21 In_CHANGE_CIPHER_SPEC = 28
-    delta 21 In_FINISHED = 4
-    delta 21 In_APPLICATION = 3
-    delta 21 In_CERTIFICATE = 16
-    delta 21 In_EMPTY_CERTIFICATE = 17
-    delta 21 In_CERTIFICATE_VERIFY = 4
-    delta 21 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 21 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 6 In_ECDH_CLIENT_HELLO = 6
-    delta 6 In_ECDH_CLIENT_KEY_EXCHANGE = 13
-    delta 6 In_CHANGE_CIPHER_SPEC = 3
-    delta 6 In_FINISHED = 8
-    delta 6 In_APPLICATION = 3
-    delta 6 In_CERTIFICATE = 29
-    delta 6 In_EMPTY_CERTIFICATE = 30
-    delta 6 In_CERTIFICATE_VERIFY = 11
-    delta 6 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 6 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 26 In_ECDH_CLIENT_HELLO = 26
-    delta 26 In_ECDH_CLIENT_KEY_EXCHANGE = 31
-    delta 26 In_CHANGE_CIPHER_SPEC = 32
-    delta 26 In_FINISHED = 26
-    delta 26 In_APPLICATION = 3
-    delta 26 In_CERTIFICATE = 33
-    delta 26 In_EMPTY_CERTIFICATE = 34
-    delta 26 In_CERTIFICATE_VERIFY = 26
-    delta 26 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 26 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 32 In_ECDH_CLIENT_HELLO = 32
-    delta 32 In_ECDH_CLIENT_KEY_EXCHANGE = 35
-    delta 32 In_CHANGE_CIPHER_SPEC = 4
-    delta 32 In_FINISHED = 32
-    delta 32 In_APPLICATION = 3
-    delta 32 In_CERTIFICATE = 36
-    delta 32 In_EMPTY_CERTIFICATE = 37
-    delta 32 In_CERTIFICATE_VERIFY = 32
-    delta 32 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 32 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 15 In_ECDH_CLIENT_HELLO = 15
-    delta 15 In_ECDH_CLIENT_KEY_EXCHANGE = 15
-    delta 15 In_CHANGE_CIPHER_SPEC = 38
-    delta 15 In_FINISHED = 15
-    delta 15 In_APPLICATION = 4
-    delta 15 In_CERTIFICATE = 15
-    delta 15 In_EMPTY_CERTIFICATE = 15
-    delta 15 In_CERTIFICATE_VERIFY = 15
-    delta 15 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 15 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 17 In_ECDH_CLIENT_HELLO = 20
-    delta 17 In_ECDH_CLIENT_KEY_EXCHANGE = 39
-    delta 17 In_CHANGE_CIPHER_SPEC = 40
-    delta 17 In_FINISHED = 23
-    delta 17 In_APPLICATION = 3
-    delta 17 In_CERTIFICATE = 16
-    delta 17 In_EMPTY_CERTIFICATE = 17
-    delta 17 In_CERTIFICATE_VERIFY = 24
-    delta 17 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 17 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 40 In_ECDH_CLIENT_HELLO = 41
-    delta 40 In_ECDH_CLIENT_KEY_EXCHANGE = 42
-    delta 40 In_CHANGE_CIPHER_SPEC = 4
-    delta 40 In_FINISHED = 43
-    delta 40 In_APPLICATION = 3
-    delta 40 In_CERTIFICATE = 22
-    delta 40 In_EMPTY_CERTIFICATE = 40
-    delta 40 In_CERTIFICATE_VERIFY = 44
-    delta 40 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 40 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 22 In_ECDH_CLIENT_HELLO = 41
-    delta 22 In_ECDH_CLIENT_KEY_EXCHANGE = 28
-    delta 22 In_CHANGE_CIPHER_SPEC = 4
-    delta 22 In_FINISHED = 43
-    delta 22 In_APPLICATION = 3
-    delta 22 In_CERTIFICATE = 22
-    delta 22 In_EMPTY_CERTIFICATE = 40
-    delta 22 In_CERTIFICATE_VERIFY = 44
-    delta 22 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 22 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 38 In_ECDH_CLIENT_HELLO = 38
-    delta 38 In_ECDH_CLIENT_KEY_EXCHANGE = 38
-    delta 38 In_CHANGE_CIPHER_SPEC = 4
-    delta 38 In_FINISHED = 38
-    delta 38 In_APPLICATION = 4
-    delta 38 In_CERTIFICATE = 38
-    delta 38 In_EMPTY_CERTIFICATE = 38
-    delta 38 In_CERTIFICATE_VERIFY = 38
-    delta 38 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 38 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 19 In_ECDH_CLIENT_HELLO = 45
-    delta 19 In_ECDH_CLIENT_KEY_EXCHANGE = 4
-    delta 19 In_CHANGE_CIPHER_SPEC = 3
-    delta 19 In_FINISHED = 45
-    delta 19 In_APPLICATION = 3
-    delta 19 In_CERTIFICATE = 19
-    delta 19 In_EMPTY_CERTIFICATE = 19
-    delta 19 In_CERTIFICATE_VERIFY = 46
-    delta 19 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 19 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 29 In_ECDH_CLIENT_HELLO = 47
-    delta 29 In_ECDH_CLIENT_KEY_EXCHANGE = 21
-    delta 29 In_CHANGE_CIPHER_SPEC = 3
-    delta 29 In_FINISHED = 45
-    delta 29 In_APPLICATION = 3
-    delta 29 In_CERTIFICATE = 29
-    delta 29 In_EMPTY_CERTIFICATE = 30
-    delta 29 In_CERTIFICATE_VERIFY = 46
-    delta 29 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 29 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 42 In_ECDH_CLIENT_HELLO = 48
-    delta 42 In_ECDH_CLIENT_KEY_EXCHANGE = 41
-    delta 42 In_CHANGE_CIPHER_SPEC = 4
-    delta 42 In_FINISHED = 4
-    delta 42 In_APPLICATION = 3
-    delta 42 In_CERTIFICATE = 22
-    delta 42 In_EMPTY_CERTIFICATE = 40
-    delta 42 In_CERTIFICATE_VERIFY = 4
-    delta 42 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 42 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 20 In_ECDH_CLIENT_HELLO = 20
-    delta 20 In_ECDH_CLIENT_KEY_EXCHANGE = 20
-    delta 20 In_CHANGE_CIPHER_SPEC = 41
-    delta 20 In_FINISHED = 23
-    delta 20 In_APPLICATION = 3
-    delta 20 In_CERTIFICATE = 16
-    delta 20 In_EMPTY_CERTIFICATE = 17
-    delta 20 In_CERTIFICATE_VERIFY = 24
-    delta 20 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 20 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 23 In_ECDH_CLIENT_HELLO = 23
-    delta 23 In_ECDH_CLIENT_KEY_EXCHANGE = 23
-    delta 23 In_CHANGE_CIPHER_SPEC = 43
-    delta 23 In_FINISHED = 23
-    delta 23 In_APPLICATION = 3
-    delta 23 In_CERTIFICATE = 49
-    delta 23 In_EMPTY_CERTIFICATE = 49
-    delta 23 In_CERTIFICATE_VERIFY = 24
-    delta 23 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 23 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 28 In_ECDH_CLIENT_HELLO = 48
-    delta 28 In_ECDH_CLIENT_KEY_EXCHANGE = 41
-    delta 28 In_CHANGE_CIPHER_SPEC = 4
-    delta 28 In_FINISHED = 4
-    delta 28 In_APPLICATION = 3
-    delta 28 In_CERTIFICATE = 22
-    delta 28 In_EMPTY_CERTIFICATE = 40
-    delta 28 In_CERTIFICATE_VERIFY = 4
-    delta 28 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 28 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 18 In_ECDH_CLIENT_HELLO = 25
-    delta 18 In_ECDH_CLIENT_KEY_EXCHANGE = 18
-    delta 18 In_CHANGE_CIPHER_SPEC = 4
-    delta 18 In_FINISHED = 4
-    delta 18 In_APPLICATION = 3
-    delta 18 In_CERTIFICATE = 22
-    delta 18 In_EMPTY_CERTIFICATE = 40
-    delta 18 In_CERTIFICATE_VERIFY = 4
-    delta 18 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 18 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 49 In_ECDH_CLIENT_HELLO = 23
-    delta 49 In_ECDH_CLIENT_KEY_EXCHANGE = 4
-    delta 49 In_CHANGE_CIPHER_SPEC = 50
-    delta 49 In_FINISHED = 23
-    delta 49 In_APPLICATION = 3
-    delta 49 In_CERTIFICATE = 49
-    delta 49 In_EMPTY_CERTIFICATE = 49
-    delta 49 In_CERTIFICATE_VERIFY = 24
-    delta 49 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 49 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 50 In_ECDH_CLIENT_HELLO = 43
-    delta 50 In_ECDH_CLIENT_KEY_EXCHANGE = 4
-    delta 50 In_CHANGE_CIPHER_SPEC = 4
-    delta 50 In_FINISHED = 43
-    delta 50 In_APPLICATION = 3
-    delta 50 In_CERTIFICATE = 50
-    delta 50 In_EMPTY_CERTIFICATE = 50
-    delta 50 In_CERTIFICATE_VERIFY = 44
-    delta 50 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 50 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 25 In_ECDH_CLIENT_HELLO = 25
-    delta 25 In_ECDH_CLIENT_KEY_EXCHANGE = 18
-    delta 25 In_CHANGE_CIPHER_SPEC = 4
-    delta 25 In_FINISHED = 4
-    delta 25 In_APPLICATION = 3
-    delta 25 In_CERTIFICATE = 22
-    delta 25 In_EMPTY_CERTIFICATE = 40
-    delta 25 In_CERTIFICATE_VERIFY = 32
-    delta 25 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 25 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 43 In_ECDH_CLIENT_HELLO = 43
-    delta 43 In_ECDH_CLIENT_KEY_EXCHANGE = 43
-    delta 43 In_CHANGE_CIPHER_SPEC = 4
-    delta 43 In_FINISHED = 43
-    delta 43 In_APPLICATION = 3
-    delta 43 In_CERTIFICATE = 50
-    delta 43 In_EMPTY_CERTIFICATE = 50
-    delta 43 In_CERTIFICATE_VERIFY = 44
-    delta 43 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 43 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 41 In_ECDH_CLIENT_HELLO = 41
-    delta 41 In_ECDH_CLIENT_KEY_EXCHANGE = 41
-    delta 41 In_CHANGE_CIPHER_SPEC = 4
-    delta 41 In_FINISHED = 43
-    delta 41 In_APPLICATION = 3
-    delta 41 In_CERTIFICATE = 22
-    delta 41 In_EMPTY_CERTIFICATE = 40
-    delta 41 In_CERTIFICATE_VERIFY = 44
-    delta 41 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 41 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 45 In_ECDH_CLIENT_HELLO = 45
-    delta 45 In_ECDH_CLIENT_KEY_EXCHANGE = 45
-    delta 45 In_CHANGE_CIPHER_SPEC = 3
-    delta 45 In_FINISHED = 45
-    delta 45 In_APPLICATION = 3
-    delta 45 In_CERTIFICATE = 19
-    delta 45 In_EMPTY_CERTIFICATE = 19
-    delta 45 In_CERTIFICATE_VERIFY = 46
-    delta 45 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 45 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 47 In_ECDH_CLIENT_HELLO = 47
-    delta 47 In_ECDH_CLIENT_KEY_EXCHANGE = 47
-    delta 47 In_CHANGE_CIPHER_SPEC = 3
-    delta 47 In_FINISHED = 45
-    delta 47 In_APPLICATION = 3
-    delta 47 In_CERTIFICATE = 29
-    delta 47 In_EMPTY_CERTIFICATE = 30
-    delta 47 In_CERTIFICATE_VERIFY = 46
-    delta 47 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 47 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 35 In_ECDH_CLIENT_HELLO = 32
-    delta 35 In_ECDH_CLIENT_KEY_EXCHANGE = 35
-    delta 35 In_CHANGE_CIPHER_SPEC = 4
-    delta 35 In_FINISHED = 32
-    delta 35 In_APPLICATION = 3
-    delta 35 In_CERTIFICATE = 36
-    delta 35 In_EMPTY_CERTIFICATE = 37
-    delta 35 In_CERTIFICATE_VERIFY = 4
-    delta 35 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 35 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 11 In_ECDH_CLIENT_HELLO = 11
-    delta 11 In_ECDH_CLIENT_KEY_EXCHANGE = 51
-    delta 11 In_CHANGE_CIPHER_SPEC = 3
-    delta 11 In_FINISHED = 11
-    delta 11 In_APPLICATION = 3
-    delta 11 In_CERTIFICATE = 52
-    delta 11 In_EMPTY_CERTIFICATE = 53
-    delta 11 In_CERTIFICATE_VERIFY = 11
-    delta 11 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 11 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 51 In_ECDH_CLIENT_HELLO = 11
-    delta 51 In_ECDH_CLIENT_KEY_EXCHANGE = 51
-    delta 51 In_CHANGE_CIPHER_SPEC = 3
-    delta 51 In_FINISHED = 11
-    delta 51 In_APPLICATION = 3
-    delta 51 In_CERTIFICATE = 52
-    delta 51 In_EMPTY_CERTIFICATE = 53
-    delta 51 In_CERTIFICATE_VERIFY = 4
-    delta 51 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 51 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 52 In_ECDH_CLIENT_HELLO = 46
-    delta 52 In_ECDH_CLIENT_KEY_EXCHANGE = 54
-    delta 52 In_CHANGE_CIPHER_SPEC = 3
-    delta 52 In_FINISHED = 46
-    delta 52 In_APPLICATION = 3
-    delta 52 In_CERTIFICATE = 52
-    delta 52 In_EMPTY_CERTIFICATE = 53
-    delta 52 In_CERTIFICATE_VERIFY = 46
-    delta 52 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 52 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 54 In_ECDH_CLIENT_HELLO = 46
-    delta 54 In_ECDH_CLIENT_KEY_EXCHANGE = 46
-    delta 54 In_CHANGE_CIPHER_SPEC = 3
-    delta 54 In_FINISHED = 46
-    delta 54 In_APPLICATION = 3
-    delta 54 In_CERTIFICATE = 52
-    delta 54 In_EMPTY_CERTIFICATE = 53
-    delta 54 In_CERTIFICATE_VERIFY = 4
-    delta 54 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 54 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 36 In_ECDH_CLIENT_HELLO = 44
-    delta 36 In_ECDH_CLIENT_KEY_EXCHANGE = 55
-    delta 36 In_CHANGE_CIPHER_SPEC = 4
-    delta 36 In_FINISHED = 44
-    delta 36 In_APPLICATION = 3
-    delta 36 In_CERTIFICATE = 36
-    delta 36 In_EMPTY_CERTIFICATE = 37
-    delta 36 In_CERTIFICATE_VERIFY = 44
-    delta 36 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 36 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 55 In_ECDH_CLIENT_HELLO = 44
-    delta 55 In_ECDH_CLIENT_KEY_EXCHANGE = 44
-    delta 55 In_CHANGE_CIPHER_SPEC = 4
-    delta 55 In_FINISHED = 44
-    delta 55 In_APPLICATION = 3
-    delta 55 In_CERTIFICATE = 36
-    delta 55 In_EMPTY_CERTIFICATE = 37
-    delta 55 In_CERTIFICATE_VERIFY = 4
-    delta 55 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 55 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 44 In_ECDH_CLIENT_HELLO = 44
-    delta 44 In_ECDH_CLIENT_KEY_EXCHANGE = 44
-    delta 44 In_CHANGE_CIPHER_SPEC = 4
-    delta 44 In_FINISHED = 44
-    delta 44 In_APPLICATION = 3
-    delta 44 In_CERTIFICATE = 36
-    delta 44 In_EMPTY_CERTIFICATE = 37
-    delta 44 In_CERTIFICATE_VERIFY = 44
-    delta 44 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 44 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 48 In_ECDH_CLIENT_HELLO = 48
-    delta 48 In_ECDH_CLIENT_KEY_EXCHANGE = 41
-    delta 48 In_CHANGE_CIPHER_SPEC = 4
-    delta 48 In_FINISHED = 4
-    delta 48 In_APPLICATION = 3
-    delta 48 In_CERTIFICATE = 22
-    delta 48 In_EMPTY_CERTIFICATE = 40
-    delta 48 In_CERTIFICATE_VERIFY = 44
-    delta 48 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 48 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 24 In_ECDH_CLIENT_HELLO = 24
-    delta 24 In_ECDH_CLIENT_KEY_EXCHANGE = 24
-    delta 24 In_CHANGE_CIPHER_SPEC = 44
-    delta 24 In_FINISHED = 24
-    delta 24 In_APPLICATION = 3
-    delta 24 In_CERTIFICATE = 33
-    delta 24 In_EMPTY_CERTIFICATE = 34
-    delta 24 In_CERTIFICATE_VERIFY = 24
-    delta 24 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 24 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 33 In_ECDH_CLIENT_HELLO = 24
-    delta 33 In_ECDH_CLIENT_KEY_EXCHANGE = 56
-    delta 33 In_CHANGE_CIPHER_SPEC = 36
-    delta 33 In_FINISHED = 24
-    delta 33 In_APPLICATION = 3
-    delta 33 In_CERTIFICATE = 33
-    delta 33 In_EMPTY_CERTIFICATE = 34
-    delta 33 In_CERTIFICATE_VERIFY = 24
-    delta 33 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 33 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 10 In_ECDH_CLIENT_HELLO = 47
-    delta 10 In_ECDH_CLIENT_KEY_EXCHANGE = 57
-    delta 10 In_CHANGE_CIPHER_SPEC = 3
-    delta 10 In_FINISHED = 45
-    delta 10 In_APPLICATION = 3
-    delta 10 In_CERTIFICATE = 29
-    delta 10 In_EMPTY_CERTIFICATE = 30
-    delta 10 In_CERTIFICATE_VERIFY = 46
-    delta 10 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 10 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 57 In_ECDH_CLIENT_HELLO = 27
-    delta 57 In_ECDH_CLIENT_KEY_EXCHANGE = 20
-    delta 57 In_CHANGE_CIPHER_SPEC = 58
-    delta 57 In_FINISHED = 15
-    delta 57 In_APPLICATION = 3
-    delta 57 In_CERTIFICATE = 16
-    delta 57 In_EMPTY_CERTIFICATE = 17
-    delta 57 In_CERTIFICATE_VERIFY = 4
-    delta 57 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 57 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 9 In_ECDH_CLIENT_HELLO = 47
-    delta 9 In_ECDH_CLIENT_KEY_EXCHANGE = 59
-    delta 9 In_CHANGE_CIPHER_SPEC = 3
-    delta 9 In_FINISHED = 45
-    delta 9 In_APPLICATION = 3
-    delta 9 In_CERTIFICATE = 29
-    delta 9 In_EMPTY_CERTIFICATE = 30
-    delta 9 In_CERTIFICATE_VERIFY = 46
-    delta 9 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 9 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 59 In_ECDH_CLIENT_HELLO = 27
-    delta 59 In_ECDH_CLIENT_KEY_EXCHANGE = 20
-    delta 59 In_CHANGE_CIPHER_SPEC = 60
-    delta 59 In_FINISHED = 15
-    delta 59 In_APPLICATION = 3
-    delta 59 In_CERTIFICATE = 16
-    delta 59 In_EMPTY_CERTIFICATE = 17
-    delta 59 In_CERTIFICATE_VERIFY = 61
-    delta 59 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 59 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 61 In_ECDH_CLIENT_HELLO = 4
-    delta 61 In_ECDH_CLIENT_KEY_EXCHANGE = 24
-    delta 61 In_CHANGE_CIPHER_SPEC = 62
-    delta 61 In_FINISHED = 15
-    delta 61 In_APPLICATION = 3
-    delta 61 In_CERTIFICATE = 33
-    delta 61 In_EMPTY_CERTIFICATE = 34
-    delta 61 In_CERTIFICATE_VERIFY = 24
-    delta 61 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 61 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 60 In_ECDH_CLIENT_HELLO = 48
-    delta 60 In_ECDH_CLIENT_KEY_EXCHANGE = 41
-    delta 60 In_CHANGE_CIPHER_SPEC = 4
-    delta 60 In_FINISHED = 38
-    delta 60 In_APPLICATION = 3
-    delta 60 In_CERTIFICATE = 22
-    delta 60 In_EMPTY_CERTIFICATE = 40
-    delta 60 In_CERTIFICATE_VERIFY = 62
-    delta 60 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 60 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 62 In_ECDH_CLIENT_HELLO = 4
-    delta 62 In_ECDH_CLIENT_KEY_EXCHANGE = 44
-    delta 62 In_CHANGE_CIPHER_SPEC = 4
-    delta 62 In_FINISHED = 38
-    delta 62 In_APPLICATION = 3
-    delta 62 In_CERTIFICATE = 36
-    delta 62 In_EMPTY_CERTIFICATE = 37
-    delta 62 In_CERTIFICATE_VERIFY = 44
-    delta 62 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 62 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 37 In_ECDH_CLIENT_HELLO = 44
-    delta 37 In_ECDH_CLIENT_KEY_EXCHANGE = 63
-    delta 37 In_CHANGE_CIPHER_SPEC = 4
-    delta 37 In_FINISHED = 44
-    delta 37 In_APPLICATION = 3
-    delta 37 In_CERTIFICATE = 36
-    delta 37 In_EMPTY_CERTIFICATE = 37
-    delta 37 In_CERTIFICATE_VERIFY = 44
-    delta 37 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 37 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 56 In_ECDH_CLIENT_HELLO = 24
-    delta 56 In_ECDH_CLIENT_KEY_EXCHANGE = 24
-    delta 56 In_CHANGE_CIPHER_SPEC = 55
-    delta 56 In_FINISHED = 24
-    delta 56 In_APPLICATION = 3
-    delta 56 In_CERTIFICATE = 33
-    delta 56 In_EMPTY_CERTIFICATE = 34
-    delta 56 In_CERTIFICATE_VERIFY = 4
-    delta 56 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 56 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 58 In_ECDH_CLIENT_HELLO = 48
-    delta 58 In_ECDH_CLIENT_KEY_EXCHANGE = 41
-    delta 58 In_CHANGE_CIPHER_SPEC = 4
-    delta 58 In_FINISHED = 38
-    delta 58 In_APPLICATION = 3
-    delta 58 In_CERTIFICATE = 22
-    delta 58 In_EMPTY_CERTIFICATE = 40
-    delta 58 In_CERTIFICATE_VERIFY = 4
-    delta 58 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 58 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 31 In_ECDH_CLIENT_HELLO = 26
-    delta 31 In_ECDH_CLIENT_KEY_EXCHANGE = 31
-    delta 31 In_CHANGE_CIPHER_SPEC = 35
-    delta 31 In_FINISHED = 26
-    delta 31 In_APPLICATION = 3
-    delta 31 In_CERTIFICATE = 33
-    delta 31 In_EMPTY_CERTIFICATE = 34
-    delta 31 In_CERTIFICATE_VERIFY = 4
-    delta 31 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 31 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 30 In_ECDH_CLIENT_HELLO = 47
-    delta 30 In_ECDH_CLIENT_KEY_EXCHANGE = 39
-    delta 30 In_CHANGE_CIPHER_SPEC = 3
-    delta 30 In_FINISHED = 45
-    delta 30 In_APPLICATION = 3
-    delta 30 In_CERTIFICATE = 29
-    delta 30 In_EMPTY_CERTIFICATE = 30
-    delta 30 In_CERTIFICATE_VERIFY = 46
-    delta 30 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 30 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 14 In_ECDH_CLIENT_HELLO = 25
-    delta 14 In_ECDH_CLIENT_KEY_EXCHANGE = 18
-    delta 14 In_CHANGE_CIPHER_SPEC = 4
-    delta 14 In_FINISHED = 38
-    delta 14 In_APPLICATION = 3
-    delta 14 In_CERTIFICATE = 22
-    delta 14 In_EMPTY_CERTIFICATE = 40
-    delta 14 In_CERTIFICATE_VERIFY = 4
-    delta 14 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 14 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 46 In_ECDH_CLIENT_HELLO = 46
-    delta 46 In_ECDH_CLIENT_KEY_EXCHANGE = 46
-    delta 46 In_CHANGE_CIPHER_SPEC = 3
-    delta 46 In_FINISHED = 46
-    delta 46 In_APPLICATION = 3
-    delta 46 In_CERTIFICATE = 52
-    delta 46 In_EMPTY_CERTIFICATE = 53
-    delta 46 In_CERTIFICATE_VERIFY = 46
-    delta 46 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 46 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 27 In_ECDH_CLIENT_HELLO = 27
-    delta 27 In_ECDH_CLIENT_KEY_EXCHANGE = 20
-    delta 27 In_CHANGE_CIPHER_SPEC = 48
-    delta 27 In_FINISHED = 4
-    delta 27 In_APPLICATION = 3
-    delta 27 In_CERTIFICATE = 16
-    delta 27 In_EMPTY_CERTIFICATE = 17
-    delta 27 In_CERTIFICATE_VERIFY = 24
-    delta 27 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 27 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 34 In_ECDH_CLIENT_HELLO = 24
-    delta 34 In_ECDH_CLIENT_KEY_EXCHANGE = 64
-    delta 34 In_CHANGE_CIPHER_SPEC = 37
-    delta 34 In_FINISHED = 24
-    delta 34 In_APPLICATION = 3
-    delta 34 In_CERTIFICATE = 33
-    delta 34 In_EMPTY_CERTIFICATE = 34
-    delta 34 In_CERTIFICATE_VERIFY = 24
-    delta 34 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 34 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 64 In_ECDH_CLIENT_HELLO = 24
-    delta 64 In_ECDH_CLIENT_KEY_EXCHANGE = 24
-    delta 64 In_CHANGE_CIPHER_SPEC = 63
-    delta 64 In_FINISHED = 24
-    delta 64 In_APPLICATION = 3
-    delta 64 In_CERTIFICATE = 33
-    delta 64 In_EMPTY_CERTIFICATE = 34
-    delta 64 In_CERTIFICATE_VERIFY = 4
-    delta 64 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 64 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 63 In_ECDH_CLIENT_HELLO = 44
-    delta 63 In_ECDH_CLIENT_KEY_EXCHANGE = 44
-    delta 63 In_CHANGE_CIPHER_SPEC = 4
-    delta 63 In_FINISHED = 44
-    delta 63 In_APPLICATION = 3
-    delta 63 In_CERTIFICATE = 36
-    delta 63 In_EMPTY_CERTIFICATE = 37
-    delta 63 In_CERTIFICATE_VERIFY = 4
-    delta 63 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 63 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 39 In_ECDH_CLIENT_HELLO = 27
-    delta 39 In_ECDH_CLIENT_KEY_EXCHANGE = 20
-    delta 39 In_CHANGE_CIPHER_SPEC = 42
-    delta 39 In_FINISHED = 4
-    delta 39 In_APPLICATION = 3
-    delta 39 In_CERTIFICATE = 16
-    delta 39 In_EMPTY_CERTIFICATE = 17
-    delta 39 In_CERTIFICATE_VERIFY = 4
-    delta 39 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 39 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 53 In_ECDH_CLIENT_HELLO = 46
-    delta 53 In_ECDH_CLIENT_KEY_EXCHANGE = 65
-    delta 53 In_CHANGE_CIPHER_SPEC = 3
-    delta 53 In_FINISHED = 46
-    delta 53 In_APPLICATION = 3
-    delta 53 In_CERTIFICATE = 52
-    delta 53 In_EMPTY_CERTIFICATE = 53
-    delta 53 In_CERTIFICATE_VERIFY = 46
-    delta 53 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 53 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 65 In_ECDH_CLIENT_HELLO = 46
-    delta 65 In_ECDH_CLIENT_KEY_EXCHANGE = 46
-    delta 65 In_CHANGE_CIPHER_SPEC = 3
-    delta 65 In_FINISHED = 46
-    delta 65 In_APPLICATION = 3
-    delta 65 In_CERTIFICATE = 52
-    delta 65 In_EMPTY_CERTIFICATE = 53
-    delta 65 In_CERTIFICATE_VERIFY = 4
-    delta 65 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 65 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta _ _ = error "haal-gen: undefined transition"
-    lambda 0 In_ECDH_CLIENT_HELLO = Out_HELLO_VERIFY_REQUEST
-    lambda 0 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 0 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 0 In_FINISHED = Out_TIMEOUT
-    lambda 0 In_APPLICATION = Out_TIMEOUT
-    lambda 0 In_CERTIFICATE = Out_TIMEOUT
-    lambda 0 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 0 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 0 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 0 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 4 In_ECDH_CLIENT_HELLO = Out_SOCKET_CLOSED
-    lambda 4 In_ECDH_CLIENT_KEY_EXCHANGE = Out_SOCKET_CLOSED
-    lambda 4 In_CHANGE_CIPHER_SPEC = Out_SOCKET_CLOSED
-    lambda 4 In_FINISHED = Out_SOCKET_CLOSED
-    lambda 4 In_APPLICATION = Out_SOCKET_CLOSED
-    lambda 4 In_CERTIFICATE = Out_SOCKET_CLOSED
-    lambda 4 In_EMPTY_CERTIFICATE = Out_SOCKET_CLOSED
-    lambda 4 In_CERTIFICATE_VERIFY = Out_SOCKET_CLOSED
-    lambda 4 In_Alert_WARNING_CLOSE_NOTIFY = Out_SOCKET_CLOSED
-    lambda 4 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_SOCKET_CLOSED
-    lambda 2 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 2 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 2 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 2 In_FINISHED = Out_TIMEOUT
-    lambda 2 In_APPLICATION = Out_TIMEOUT
-    lambda 2 In_CERTIFICATE = Out_TIMEOUT
-    lambda 2 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 2 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 2 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 2 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 1 In_ECDH_CLIENT_HELLO = Out_SERVER_HELLO_CERTIFICATE_ECDHE_SERVER_KEY_EXCHANGE_SERVER_HELLO_DONE
-    lambda 1 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 1 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 1 In_FINISHED = Out_TIMEOUT
-    lambda 1 In_APPLICATION = Out_TIMEOUT
-    lambda 1 In_CERTIFICATE = Out_TIMEOUT
-    lambda 1 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 1 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 1 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 1 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 3 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 3 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 3 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 3 In_FINISHED = Out_TIMEOUT
-    lambda 3 In_APPLICATION = Out_TIMEOUT
-    lambda 3 In_CERTIFICATE = Out_TIMEOUT
-    lambda 3 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 3 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 3 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 3 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 5 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 5 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 5 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 5 In_FINISHED = Out_TIMEOUT
-    lambda 5 In_APPLICATION = Out_TIMEOUT
-    lambda 5 In_CERTIFICATE = Out_TIMEOUT
-    lambda 5 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 5 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 5 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 5 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 7 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 7 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 7 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 7 In_FINISHED = Out_CHANGE_CIPHER_SPEC_FINISHED
-    lambda 7 In_APPLICATION = Out_TIMEOUT
-    lambda 7 In_CERTIFICATE = Out_TIMEOUT
-    lambda 7 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 7 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_NO_CERTIFICATE_RESERVED
-    lambda 7 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 7 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 13 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 13 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 13 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 13 In_FINISHED = Out_Alert_FATAL_HANDSHAKE_FAILURE
-    lambda 13 In_APPLICATION = Out_TIMEOUT
-    lambda 13 In_CERTIFICATE = Out_TIMEOUT
-    lambda 13 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 13 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_NO_CERTIFICATE_RESERVED
-    lambda 13 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 13 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 8 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 8 In_ECDH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_HANDSHAKE_FAILURE
-    lambda 8 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 8 In_FINISHED = Out_TIMEOUT
-    lambda 8 In_APPLICATION = Out_TIMEOUT
-    lambda 8 In_CERTIFICATE = Out_TIMEOUT
-    lambda 8 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 8 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 8 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 8 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 16 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 16 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 16 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 16 In_FINISHED = Out_TIMEOUT
-    lambda 16 In_APPLICATION = Out_TIMEOUT
-    lambda 16 In_CERTIFICATE = Out_TIMEOUT
-    lambda 16 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 16 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 16 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 16 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 12 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 12 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 12 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 12 In_FINISHED = Out_Alert_FATAL_HANDSHAKE_FAILURE
-    lambda 12 In_APPLICATION = Out_TIMEOUT
-    lambda 12 In_CERTIFICATE = Out_TIMEOUT
-    lambda 12 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 12 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 12 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 12 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 21 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 21 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 21 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 21 In_FINISHED = Out_Alert_FATAL_HANDSHAKE_FAILURE
-    lambda 21 In_APPLICATION = Out_TIMEOUT
-    lambda 21 In_CERTIFICATE = Out_TIMEOUT
-    lambda 21 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 21 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_BAD_CERTIFICATE
-    lambda 21 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 21 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 6 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 6 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 6 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 6 In_FINISHED = Out_TIMEOUT
-    lambda 6 In_APPLICATION = Out_TIMEOUT
-    lambda 6 In_CERTIFICATE = Out_TIMEOUT
-    lambda 6 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 6 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 6 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 6 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 26 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 26 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 26 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 26 In_FINISHED = Out_TIMEOUT
-    lambda 26 In_APPLICATION = Out_TIMEOUT
-    lambda 26 In_CERTIFICATE = Out_TIMEOUT
-    lambda 26 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 26 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 26 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 26 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 32 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 32 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 32 In_CHANGE_CIPHER_SPEC = Out_Alert_FATAL_DECODE_ERROR
-    lambda 32 In_FINISHED = Out_TIMEOUT
-    lambda 32 In_APPLICATION = Out_TIMEOUT
-    lambda 32 In_CERTIFICATE = Out_TIMEOUT
-    lambda 32 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 32 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 32 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 32 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 15 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 15 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 15 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 15 In_FINISHED = Out_TIMEOUT
-    lambda 15 In_APPLICATION = Out_APPLICATION
-    lambda 15 In_CERTIFICATE = Out_TIMEOUT
-    lambda 15 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 15 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 15 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 15 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 17 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 17 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 17 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 17 In_FINISHED = Out_TIMEOUT
-    lambda 17 In_APPLICATION = Out_TIMEOUT
-    lambda 17 In_CERTIFICATE = Out_TIMEOUT
-    lambda 17 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 17 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 17 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 17 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 40 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 40 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 40 In_CHANGE_CIPHER_SPEC = Out_Alert_FATAL_DECODE_ERROR
-    lambda 40 In_FINISHED = Out_TIMEOUT
-    lambda 40 In_APPLICATION = Out_TIMEOUT
-    lambda 40 In_CERTIFICATE = Out_TIMEOUT
-    lambda 40 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 40 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 40 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 40 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 22 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 22 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 22 In_CHANGE_CIPHER_SPEC = Out_Alert_FATAL_DECODE_ERROR
-    lambda 22 In_FINISHED = Out_TIMEOUT
-    lambda 22 In_APPLICATION = Out_TIMEOUT
-    lambda 22 In_CERTIFICATE = Out_TIMEOUT
-    lambda 22 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 22 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 22 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 22 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 38 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 38 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 38 In_CHANGE_CIPHER_SPEC = Out_Alert_FATAL_DECODE_ERROR
-    lambda 38 In_FINISHED = Out_TIMEOUT
-    lambda 38 In_APPLICATION = Out_APPLICATION
-    lambda 38 In_CERTIFICATE = Out_TIMEOUT
-    lambda 38 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 38 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 38 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 38 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 19 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 19 In_ECDH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_HANDSHAKE_FAILURE
-    lambda 19 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 19 In_FINISHED = Out_TIMEOUT
-    lambda 19 In_APPLICATION = Out_TIMEOUT
-    lambda 19 In_CERTIFICATE = Out_TIMEOUT
-    lambda 19 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 19 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 19 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 19 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 29 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 29 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 29 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 29 In_FINISHED = Out_TIMEOUT
-    lambda 29 In_APPLICATION = Out_TIMEOUT
-    lambda 29 In_CERTIFICATE = Out_TIMEOUT
-    lambda 29 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 29 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 29 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 29 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 42 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 42 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 42 In_CHANGE_CIPHER_SPEC = Out_Alert_FATAL_DECODE_ERROR
-    lambda 42 In_FINISHED = Out_Alert_FATAL_HANDSHAKE_FAILURE
-    lambda 42 In_APPLICATION = Out_TIMEOUT
-    lambda 42 In_CERTIFICATE = Out_TIMEOUT
-    lambda 42 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 42 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_NO_CERTIFICATE_RESERVED
-    lambda 42 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 42 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 20 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 20 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 20 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 20 In_FINISHED = Out_TIMEOUT
-    lambda 20 In_APPLICATION = Out_TIMEOUT
-    lambda 20 In_CERTIFICATE = Out_TIMEOUT
-    lambda 20 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 20 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 20 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 20 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 23 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 23 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 23 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 23 In_FINISHED = Out_TIMEOUT
-    lambda 23 In_APPLICATION = Out_TIMEOUT
-    lambda 23 In_CERTIFICATE = Out_TIMEOUT
-    lambda 23 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 23 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 23 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 23 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 28 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 28 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 28 In_CHANGE_CIPHER_SPEC = Out_Alert_FATAL_DECODE_ERROR
-    lambda 28 In_FINISHED = Out_Alert_FATAL_HANDSHAKE_FAILURE
-    lambda 28 In_APPLICATION = Out_TIMEOUT
-    lambda 28 In_CERTIFICATE = Out_TIMEOUT
-    lambda 28 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 28 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_BAD_CERTIFICATE
-    lambda 28 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 28 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 18 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 18 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 18 In_CHANGE_CIPHER_SPEC = Out_Alert_FATAL_DECODE_ERROR
-    lambda 18 In_FINISHED = Out_Alert_FATAL_HANDSHAKE_FAILURE
-    lambda 18 In_APPLICATION = Out_TIMEOUT
-    lambda 18 In_CERTIFICATE = Out_TIMEOUT
-    lambda 18 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 18 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_NO_CERTIFICATE_RESERVED
-    lambda 18 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 18 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 49 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 49 In_ECDH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_HANDSHAKE_FAILURE
-    lambda 49 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 49 In_FINISHED = Out_TIMEOUT
-    lambda 49 In_APPLICATION = Out_TIMEOUT
-    lambda 49 In_CERTIFICATE = Out_TIMEOUT
-    lambda 49 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 49 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 49 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 49 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 50 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 50 In_ECDH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_HANDSHAKE_FAILURE
-    lambda 50 In_CHANGE_CIPHER_SPEC = Out_Alert_FATAL_DECODE_ERROR
-    lambda 50 In_FINISHED = Out_TIMEOUT
-    lambda 50 In_APPLICATION = Out_TIMEOUT
-    lambda 50 In_CERTIFICATE = Out_TIMEOUT
-    lambda 50 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 50 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 50 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 50 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 25 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 25 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 25 In_CHANGE_CIPHER_SPEC = Out_Alert_FATAL_DECODE_ERROR
-    lambda 25 In_FINISHED = Out_Alert_FATAL_HANDSHAKE_FAILURE
-    lambda 25 In_APPLICATION = Out_TIMEOUT
-    lambda 25 In_CERTIFICATE = Out_TIMEOUT
-    lambda 25 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 25 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 25 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 25 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 43 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 43 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 43 In_CHANGE_CIPHER_SPEC = Out_Alert_FATAL_DECODE_ERROR
-    lambda 43 In_FINISHED = Out_TIMEOUT
-    lambda 43 In_APPLICATION = Out_TIMEOUT
-    lambda 43 In_CERTIFICATE = Out_TIMEOUT
-    lambda 43 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 43 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 43 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 43 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 41 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 41 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 41 In_CHANGE_CIPHER_SPEC = Out_Alert_FATAL_DECODE_ERROR
-    lambda 41 In_FINISHED = Out_TIMEOUT
-    lambda 41 In_APPLICATION = Out_TIMEOUT
-    lambda 41 In_CERTIFICATE = Out_TIMEOUT
-    lambda 41 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 41 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 41 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 41 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 45 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 45 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 45 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 45 In_FINISHED = Out_TIMEOUT
-    lambda 45 In_APPLICATION = Out_TIMEOUT
-    lambda 45 In_CERTIFICATE = Out_TIMEOUT
-    lambda 45 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 45 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 45 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 45 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 47 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 47 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 47 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 47 In_FINISHED = Out_TIMEOUT
-    lambda 47 In_APPLICATION = Out_TIMEOUT
-    lambda 47 In_CERTIFICATE = Out_TIMEOUT
-    lambda 47 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 47 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 47 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 47 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 35 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 35 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 35 In_CHANGE_CIPHER_SPEC = Out_Alert_FATAL_DECODE_ERROR
-    lambda 35 In_FINISHED = Out_TIMEOUT
-    lambda 35 In_APPLICATION = Out_TIMEOUT
-    lambda 35 In_CERTIFICATE = Out_TIMEOUT
-    lambda 35 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 35 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_NO_CERTIFICATE_RESERVED
-    lambda 35 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 35 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 11 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 11 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 11 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 11 In_FINISHED = Out_TIMEOUT
-    lambda 11 In_APPLICATION = Out_TIMEOUT
-    lambda 11 In_CERTIFICATE = Out_TIMEOUT
-    lambda 11 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 11 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 11 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 11 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 51 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 51 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 51 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 51 In_FINISHED = Out_TIMEOUT
-    lambda 51 In_APPLICATION = Out_TIMEOUT
-    lambda 51 In_CERTIFICATE = Out_TIMEOUT
-    lambda 51 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 51 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_NO_CERTIFICATE_RESERVED
-    lambda 51 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 51 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 52 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 52 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 52 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 52 In_FINISHED = Out_TIMEOUT
-    lambda 52 In_APPLICATION = Out_TIMEOUT
-    lambda 52 In_CERTIFICATE = Out_TIMEOUT
-    lambda 52 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 52 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 52 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 52 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 54 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 54 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 54 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 54 In_FINISHED = Out_TIMEOUT
-    lambda 54 In_APPLICATION = Out_TIMEOUT
-    lambda 54 In_CERTIFICATE = Out_TIMEOUT
-    lambda 54 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 54 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_BAD_CERTIFICATE
-    lambda 54 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 54 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 36 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 36 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 36 In_CHANGE_CIPHER_SPEC = Out_Alert_FATAL_DECODE_ERROR
-    lambda 36 In_FINISHED = Out_TIMEOUT
-    lambda 36 In_APPLICATION = Out_TIMEOUT
-    lambda 36 In_CERTIFICATE = Out_TIMEOUT
-    lambda 36 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 36 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 36 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 36 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 55 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 55 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 55 In_CHANGE_CIPHER_SPEC = Out_Alert_FATAL_DECODE_ERROR
-    lambda 55 In_FINISHED = Out_TIMEOUT
-    lambda 55 In_APPLICATION = Out_TIMEOUT
-    lambda 55 In_CERTIFICATE = Out_TIMEOUT
-    lambda 55 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 55 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_BAD_CERTIFICATE
-    lambda 55 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 55 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 44 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 44 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 44 In_CHANGE_CIPHER_SPEC = Out_Alert_FATAL_DECODE_ERROR
-    lambda 44 In_FINISHED = Out_TIMEOUT
-    lambda 44 In_APPLICATION = Out_TIMEOUT
-    lambda 44 In_CERTIFICATE = Out_TIMEOUT
-    lambda 44 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 44 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 44 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 44 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 48 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 48 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 48 In_CHANGE_CIPHER_SPEC = Out_Alert_FATAL_DECODE_ERROR
-    lambda 48 In_FINISHED = Out_Alert_FATAL_HANDSHAKE_FAILURE
-    lambda 48 In_APPLICATION = Out_TIMEOUT
-    lambda 48 In_CERTIFICATE = Out_TIMEOUT
-    lambda 48 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 48 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 48 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 48 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 24 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 24 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 24 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 24 In_FINISHED = Out_TIMEOUT
-    lambda 24 In_APPLICATION = Out_TIMEOUT
-    lambda 24 In_CERTIFICATE = Out_TIMEOUT
-    lambda 24 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 24 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 24 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 24 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 33 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 33 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 33 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 33 In_FINISHED = Out_TIMEOUT
-    lambda 33 In_APPLICATION = Out_TIMEOUT
-    lambda 33 In_CERTIFICATE = Out_TIMEOUT
-    lambda 33 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 33 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 33 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 33 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 10 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 10 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 10 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 10 In_FINISHED = Out_TIMEOUT
-    lambda 10 In_APPLICATION = Out_TIMEOUT
-    lambda 10 In_CERTIFICATE = Out_TIMEOUT
-    lambda 10 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 10 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 10 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 10 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 57 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 57 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 57 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 57 In_FINISHED = Out_CHANGE_CIPHER_SPEC_FINISHED
-    lambda 57 In_APPLICATION = Out_TIMEOUT
-    lambda 57 In_CERTIFICATE = Out_TIMEOUT
-    lambda 57 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 57 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_NO_CERTIFICATE_RESERVED
-    lambda 57 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 57 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 9 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 9 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 9 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 9 In_FINISHED = Out_TIMEOUT
-    lambda 9 In_APPLICATION = Out_TIMEOUT
-    lambda 9 In_CERTIFICATE = Out_TIMEOUT
-    lambda 9 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 9 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 9 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 9 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 59 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 59 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 59 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 59 In_FINISHED = Out_CHANGE_CIPHER_SPEC_FINISHED
-    lambda 59 In_APPLICATION = Out_TIMEOUT
-    lambda 59 In_CERTIFICATE = Out_TIMEOUT
-    lambda 59 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 59 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 59 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 59 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 61 In_ECDH_CLIENT_HELLO = Out_Alert_FATAL_BAD_CERTIFICATE
-    lambda 61 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 61 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 61 In_FINISHED = Out_CHANGE_CIPHER_SPEC_FINISHED
-    lambda 61 In_APPLICATION = Out_TIMEOUT
-    lambda 61 In_CERTIFICATE = Out_TIMEOUT
-    lambda 61 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 61 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 61 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 61 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 60 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 60 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 60 In_CHANGE_CIPHER_SPEC = Out_Alert_FATAL_DECODE_ERROR
-    lambda 60 In_FINISHED = Out_CHANGE_CIPHER_SPEC_FINISHED
-    lambda 60 In_APPLICATION = Out_TIMEOUT
-    lambda 60 In_CERTIFICATE = Out_TIMEOUT
-    lambda 60 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 60 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 60 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 60 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 62 In_ECDH_CLIENT_HELLO = Out_Alert_FATAL_BAD_CERTIFICATE
-    lambda 62 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 62 In_CHANGE_CIPHER_SPEC = Out_Alert_FATAL_DECODE_ERROR
-    lambda 62 In_FINISHED = Out_CHANGE_CIPHER_SPEC_FINISHED
-    lambda 62 In_APPLICATION = Out_TIMEOUT
-    lambda 62 In_CERTIFICATE = Out_TIMEOUT
-    lambda 62 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 62 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 62 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 62 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 37 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 37 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 37 In_CHANGE_CIPHER_SPEC = Out_Alert_FATAL_DECODE_ERROR
-    lambda 37 In_FINISHED = Out_TIMEOUT
-    lambda 37 In_APPLICATION = Out_TIMEOUT
-    lambda 37 In_CERTIFICATE = Out_TIMEOUT
-    lambda 37 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 37 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 37 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 37 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 56 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 56 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 56 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 56 In_FINISHED = Out_TIMEOUT
-    lambda 56 In_APPLICATION = Out_TIMEOUT
-    lambda 56 In_CERTIFICATE = Out_TIMEOUT
-    lambda 56 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 56 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_BAD_CERTIFICATE
-    lambda 56 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 56 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 58 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 58 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 58 In_CHANGE_CIPHER_SPEC = Out_Alert_FATAL_DECODE_ERROR
-    lambda 58 In_FINISHED = Out_CHANGE_CIPHER_SPEC_FINISHED
-    lambda 58 In_APPLICATION = Out_TIMEOUT
-    lambda 58 In_CERTIFICATE = Out_TIMEOUT
-    lambda 58 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 58 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_NO_CERTIFICATE_RESERVED
-    lambda 58 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 58 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 31 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 31 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 31 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 31 In_FINISHED = Out_TIMEOUT
-    lambda 31 In_APPLICATION = Out_TIMEOUT
-    lambda 31 In_CERTIFICATE = Out_TIMEOUT
-    lambda 31 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 31 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_NO_CERTIFICATE_RESERVED
-    lambda 31 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 31 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 30 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 30 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 30 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 30 In_FINISHED = Out_TIMEOUT
-    lambda 30 In_APPLICATION = Out_TIMEOUT
-    lambda 30 In_CERTIFICATE = Out_TIMEOUT
-    lambda 30 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 30 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 30 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 30 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 14 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 14 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 14 In_CHANGE_CIPHER_SPEC = Out_Alert_FATAL_DECODE_ERROR
-    lambda 14 In_FINISHED = Out_CHANGE_CIPHER_SPEC_FINISHED
-    lambda 14 In_APPLICATION = Out_TIMEOUT
-    lambda 14 In_CERTIFICATE = Out_TIMEOUT
-    lambda 14 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 14 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_NO_CERTIFICATE_RESERVED
-    lambda 14 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 14 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 46 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 46 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 46 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 46 In_FINISHED = Out_TIMEOUT
-    lambda 46 In_APPLICATION = Out_TIMEOUT
-    lambda 46 In_CERTIFICATE = Out_TIMEOUT
-    lambda 46 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 46 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 46 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 46 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 27 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 27 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 27 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 27 In_FINISHED = Out_Alert_FATAL_HANDSHAKE_FAILURE
-    lambda 27 In_APPLICATION = Out_TIMEOUT
-    lambda 27 In_CERTIFICATE = Out_TIMEOUT
-    lambda 27 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 27 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 27 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 27 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 34 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 34 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 34 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 34 In_FINISHED = Out_TIMEOUT
-    lambda 34 In_APPLICATION = Out_TIMEOUT
-    lambda 34 In_CERTIFICATE = Out_TIMEOUT
-    lambda 34 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 34 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 34 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 34 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 64 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 64 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 64 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 64 In_FINISHED = Out_TIMEOUT
-    lambda 64 In_APPLICATION = Out_TIMEOUT
-    lambda 64 In_CERTIFICATE = Out_TIMEOUT
-    lambda 64 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 64 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_NO_CERTIFICATE_RESERVED
-    lambda 64 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 64 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 63 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 63 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 63 In_CHANGE_CIPHER_SPEC = Out_Alert_FATAL_DECODE_ERROR
-    lambda 63 In_FINISHED = Out_TIMEOUT
-    lambda 63 In_APPLICATION = Out_TIMEOUT
-    lambda 63 In_CERTIFICATE = Out_TIMEOUT
-    lambda 63 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 63 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_NO_CERTIFICATE_RESERVED
-    lambda 63 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 63 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 39 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 39 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 39 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 39 In_FINISHED = Out_Alert_FATAL_HANDSHAKE_FAILURE
-    lambda 39 In_APPLICATION = Out_TIMEOUT
-    lambda 39 In_CERTIFICATE = Out_TIMEOUT
-    lambda 39 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 39 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_NO_CERTIFICATE_RESERVED
-    lambda 39 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 39 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 53 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 53 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 53 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 53 In_FINISHED = Out_TIMEOUT
-    lambda 53 In_APPLICATION = Out_TIMEOUT
-    lambda 53 In_CERTIFICATE = Out_TIMEOUT
-    lambda 53 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 53 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 53 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 53 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 65 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 65 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 65 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 65 In_FINISHED = Out_TIMEOUT
-    lambda 65 In_APPLICATION = Out_TIMEOUT
-    lambda 65 In_CERTIFICATE = Out_TIMEOUT
-    lambda 65 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 65 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_NO_CERTIFICATE_RESERVED
-    lambda 65 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 65 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda _ _ = error "haal-gen: undefined transition"
+import Haal.Automaton.MealyAutomaton (MealyAutomaton, mkMealyAutomatonTable)
+
+data PionEcdheCertNoneInput
+    = In_ECDH_CLIENT_HELLO
+    | In_ECDH_CLIENT_KEY_EXCHANGE
+    | In_CHANGE_CIPHER_SPEC
+    | In_FINISHED
+    | In_APPLICATION
+    | In_CERTIFICATE
+    | In_EMPTY_CERTIFICATE
+    | In_CERTIFICATE_VERIFY
+    | In_Alert_WARNING_CLOSE_NOTIFY
+    | In_Alert_FATAL_UNEXPECTED_MESSAGE
+    deriving (Show, Eq, Ord, Enum, Bounded)
+
+data PionEcdheCertNoneOutput
+    = Out_HELLO_VERIFY_REQUEST
+    | Out_TIMEOUT
+    | Out_Alert_FATAL_CLOSE_NOTIFY
+    | Out_SOCKET_CLOSED
+    | Out_SERVER_HELLO_CERTIFICATE_ECDHE_SERVER_KEY_EXCHANGE_SERVER_HELLO_DONE
+    | Out_CHANGE_CIPHER_SPEC_FINISHED
+    | Out_Alert_FATAL_NO_CERTIFICATE_RESERVED
+    | Out_Alert_FATAL_HANDSHAKE_FAILURE
+    | Out_Alert_FATAL_BAD_CERTIFICATE
+    | Out_Alert_FATAL_DECODE_ERROR
+    | Out_APPLICATION
+    deriving (Show, Eq, Ord, Enum, Bounded)
+
+{- Transitions (state  input -> next state / output):
+    0     In_ECDH_CLIENT_HELLO               -> 1 / Out_HELLO_VERIFY_REQUEST
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 2 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 2 / Out_TIMEOUT
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 2 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 2 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 2 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    1     In_ECDH_CLIENT_HELLO               -> 5 / Out_SERVER_HELLO_CERTIFICATE_ECDHE_SERVER_KEY_EXCHANGE_SERVER_HELLO_DONE
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 2 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 2 / Out_TIMEOUT
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 2 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 2 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 2 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    2     In_ECDH_CLIENT_HELLO               -> 2 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 2 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 2 / Out_TIMEOUT
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 2 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 2 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 2 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    3     In_ECDH_CLIENT_HELLO               -> 3 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 3 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 3 / Out_TIMEOUT
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 3 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 3 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 3 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 3 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 3 / Out_TIMEOUT
+    4     In_ECDH_CLIENT_HELLO               -> 4 / Out_SOCKET_CLOSED
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 4 / Out_SOCKET_CLOSED
+          In_CHANGE_CIPHER_SPEC              -> 4 / Out_SOCKET_CLOSED
+          In_FINISHED                        -> 4 / Out_SOCKET_CLOSED
+          In_APPLICATION                     -> 4 / Out_SOCKET_CLOSED
+          In_CERTIFICATE                     -> 4 / Out_SOCKET_CLOSED
+          In_EMPTY_CERTIFICATE               -> 4 / Out_SOCKET_CLOSED
+          In_CERTIFICATE_VERIFY              -> 4 / Out_SOCKET_CLOSED
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_SOCKET_CLOSED
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_SOCKET_CLOSED
+    5     In_ECDH_CLIENT_HELLO               -> 6 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 7 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 8 / Out_TIMEOUT
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 9 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 10 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 11 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    6     In_ECDH_CLIENT_HELLO               -> 6 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 13 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 8 / Out_TIMEOUT
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 29 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 30 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 11 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    7     In_ECDH_CLIENT_HELLO               -> 12 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 13 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 14 / Out_TIMEOUT
+          In_FINISHED                        -> 15 / Out_CHANGE_CIPHER_SPEC_FINISHED
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 16 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 17 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 4 / Out_Alert_FATAL_NO_CERTIFICATE_RESERVED
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    8     In_ECDH_CLIENT_HELLO               -> 8 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 4 / Out_Alert_FATAL_HANDSHAKE_FAILURE
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 8 / Out_TIMEOUT
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 19 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 19 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 11 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    9     In_ECDH_CLIENT_HELLO               -> 47 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 59 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 45 / Out_TIMEOUT
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 29 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 30 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 46 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    10    In_ECDH_CLIENT_HELLO               -> 47 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 57 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 45 / Out_TIMEOUT
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 29 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 30 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 46 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    11    In_ECDH_CLIENT_HELLO               -> 11 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 51 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 11 / Out_TIMEOUT
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 52 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 53 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 11 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    12    In_ECDH_CLIENT_HELLO               -> 12 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 13 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 25 / Out_TIMEOUT
+          In_FINISHED                        -> 4 / Out_Alert_FATAL_HANDSHAKE_FAILURE
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 16 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 17 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 26 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    13    In_ECDH_CLIENT_HELLO               -> 12 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 13 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 18 / Out_TIMEOUT
+          In_FINISHED                        -> 4 / Out_Alert_FATAL_HANDSHAKE_FAILURE
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 16 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 17 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 4 / Out_Alert_FATAL_NO_CERTIFICATE_RESERVED
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    14    In_ECDH_CLIENT_HELLO               -> 25 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 18 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 4 / Out_Alert_FATAL_DECODE_ERROR
+          In_FINISHED                        -> 38 / Out_CHANGE_CIPHER_SPEC_FINISHED
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 22 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 40 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 4 / Out_Alert_FATAL_NO_CERTIFICATE_RESERVED
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    15    In_ECDH_CLIENT_HELLO               -> 15 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 15 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 38 / Out_TIMEOUT
+          In_FINISHED                        -> 15 / Out_TIMEOUT
+          In_APPLICATION                     -> 4 / Out_APPLICATION
+          In_CERTIFICATE                     -> 15 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 15 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 15 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    16    In_ECDH_CLIENT_HELLO               -> 20 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 21 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 22 / Out_TIMEOUT
+          In_FINISHED                        -> 23 / Out_TIMEOUT
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 16 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 17 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 24 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    17    In_ECDH_CLIENT_HELLO               -> 20 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 39 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 40 / Out_TIMEOUT
+          In_FINISHED                        -> 23 / Out_TIMEOUT
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 16 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 17 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 24 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    18    In_ECDH_CLIENT_HELLO               -> 25 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 18 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 4 / Out_Alert_FATAL_DECODE_ERROR
+          In_FINISHED                        -> 4 / Out_Alert_FATAL_HANDSHAKE_FAILURE
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 22 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 40 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 4 / Out_Alert_FATAL_NO_CERTIFICATE_RESERVED
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    19    In_ECDH_CLIENT_HELLO               -> 45 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 4 / Out_Alert_FATAL_HANDSHAKE_FAILURE
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 45 / Out_TIMEOUT
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 19 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 19 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 46 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    20    In_ECDH_CLIENT_HELLO               -> 20 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 20 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 41 / Out_TIMEOUT
+          In_FINISHED                        -> 23 / Out_TIMEOUT
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 16 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 17 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 24 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    21    In_ECDH_CLIENT_HELLO               -> 27 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 20 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 28 / Out_TIMEOUT
+          In_FINISHED                        -> 4 / Out_Alert_FATAL_HANDSHAKE_FAILURE
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 16 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 17 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 4 / Out_Alert_FATAL_BAD_CERTIFICATE
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    22    In_ECDH_CLIENT_HELLO               -> 41 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 28 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 4 / Out_Alert_FATAL_DECODE_ERROR
+          In_FINISHED                        -> 43 / Out_TIMEOUT
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 22 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 40 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 44 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    23    In_ECDH_CLIENT_HELLO               -> 23 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 23 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 43 / Out_TIMEOUT
+          In_FINISHED                        -> 23 / Out_TIMEOUT
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 49 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 49 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 24 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    24    In_ECDH_CLIENT_HELLO               -> 24 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 24 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 44 / Out_TIMEOUT
+          In_FINISHED                        -> 24 / Out_TIMEOUT
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 33 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 34 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 24 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    25    In_ECDH_CLIENT_HELLO               -> 25 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 18 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 4 / Out_Alert_FATAL_DECODE_ERROR
+          In_FINISHED                        -> 4 / Out_Alert_FATAL_HANDSHAKE_FAILURE
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 22 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 40 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 32 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    26    In_ECDH_CLIENT_HELLO               -> 26 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 31 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 32 / Out_TIMEOUT
+          In_FINISHED                        -> 26 / Out_TIMEOUT
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 33 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 34 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 26 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    27    In_ECDH_CLIENT_HELLO               -> 27 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 20 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 48 / Out_TIMEOUT
+          In_FINISHED                        -> 4 / Out_Alert_FATAL_HANDSHAKE_FAILURE
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 16 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 17 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 24 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    28    In_ECDH_CLIENT_HELLO               -> 48 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 41 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 4 / Out_Alert_FATAL_DECODE_ERROR
+          In_FINISHED                        -> 4 / Out_Alert_FATAL_HANDSHAKE_FAILURE
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 22 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 40 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 4 / Out_Alert_FATAL_BAD_CERTIFICATE
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    29    In_ECDH_CLIENT_HELLO               -> 47 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 21 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 45 / Out_TIMEOUT
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 29 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 30 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 46 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    30    In_ECDH_CLIENT_HELLO               -> 47 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 39 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 45 / Out_TIMEOUT
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 29 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 30 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 46 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    31    In_ECDH_CLIENT_HELLO               -> 26 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 31 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 35 / Out_TIMEOUT
+          In_FINISHED                        -> 26 / Out_TIMEOUT
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 33 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 34 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 4 / Out_Alert_FATAL_NO_CERTIFICATE_RESERVED
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    32    In_ECDH_CLIENT_HELLO               -> 32 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 35 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 4 / Out_Alert_FATAL_DECODE_ERROR
+          In_FINISHED                        -> 32 / Out_TIMEOUT
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 36 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 37 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 32 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    33    In_ECDH_CLIENT_HELLO               -> 24 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 56 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 36 / Out_TIMEOUT
+          In_FINISHED                        -> 24 / Out_TIMEOUT
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 33 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 34 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 24 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    34    In_ECDH_CLIENT_HELLO               -> 24 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 64 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 37 / Out_TIMEOUT
+          In_FINISHED                        -> 24 / Out_TIMEOUT
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 33 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 34 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 24 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    35    In_ECDH_CLIENT_HELLO               -> 32 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 35 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 4 / Out_Alert_FATAL_DECODE_ERROR
+          In_FINISHED                        -> 32 / Out_TIMEOUT
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 36 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 37 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 4 / Out_Alert_FATAL_NO_CERTIFICATE_RESERVED
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    36    In_ECDH_CLIENT_HELLO               -> 44 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 55 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 4 / Out_Alert_FATAL_DECODE_ERROR
+          In_FINISHED                        -> 44 / Out_TIMEOUT
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 36 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 37 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 44 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    37    In_ECDH_CLIENT_HELLO               -> 44 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 63 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 4 / Out_Alert_FATAL_DECODE_ERROR
+          In_FINISHED                        -> 44 / Out_TIMEOUT
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 36 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 37 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 44 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    38    In_ECDH_CLIENT_HELLO               -> 38 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 38 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 4 / Out_Alert_FATAL_DECODE_ERROR
+          In_FINISHED                        -> 38 / Out_TIMEOUT
+          In_APPLICATION                     -> 4 / Out_APPLICATION
+          In_CERTIFICATE                     -> 38 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 38 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 38 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    39    In_ECDH_CLIENT_HELLO               -> 27 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 20 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 42 / Out_TIMEOUT
+          In_FINISHED                        -> 4 / Out_Alert_FATAL_HANDSHAKE_FAILURE
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 16 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 17 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 4 / Out_Alert_FATAL_NO_CERTIFICATE_RESERVED
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    40    In_ECDH_CLIENT_HELLO               -> 41 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 42 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 4 / Out_Alert_FATAL_DECODE_ERROR
+          In_FINISHED                        -> 43 / Out_TIMEOUT
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 22 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 40 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 44 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    41    In_ECDH_CLIENT_HELLO               -> 41 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 41 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 4 / Out_Alert_FATAL_DECODE_ERROR
+          In_FINISHED                        -> 43 / Out_TIMEOUT
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 22 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 40 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 44 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    42    In_ECDH_CLIENT_HELLO               -> 48 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 41 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 4 / Out_Alert_FATAL_DECODE_ERROR
+          In_FINISHED                        -> 4 / Out_Alert_FATAL_HANDSHAKE_FAILURE
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 22 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 40 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 4 / Out_Alert_FATAL_NO_CERTIFICATE_RESERVED
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    43    In_ECDH_CLIENT_HELLO               -> 43 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 43 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 4 / Out_Alert_FATAL_DECODE_ERROR
+          In_FINISHED                        -> 43 / Out_TIMEOUT
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 50 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 50 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 44 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    44    In_ECDH_CLIENT_HELLO               -> 44 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 44 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 4 / Out_Alert_FATAL_DECODE_ERROR
+          In_FINISHED                        -> 44 / Out_TIMEOUT
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 36 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 37 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 44 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    45    In_ECDH_CLIENT_HELLO               -> 45 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 45 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 45 / Out_TIMEOUT
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 19 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 19 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 46 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    46    In_ECDH_CLIENT_HELLO               -> 46 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 46 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 46 / Out_TIMEOUT
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 52 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 53 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 46 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    47    In_ECDH_CLIENT_HELLO               -> 47 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 47 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 45 / Out_TIMEOUT
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 29 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 30 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 46 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    48    In_ECDH_CLIENT_HELLO               -> 48 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 41 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 4 / Out_Alert_FATAL_DECODE_ERROR
+          In_FINISHED                        -> 4 / Out_Alert_FATAL_HANDSHAKE_FAILURE
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 22 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 40 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 44 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    49    In_ECDH_CLIENT_HELLO               -> 23 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 4 / Out_Alert_FATAL_HANDSHAKE_FAILURE
+          In_CHANGE_CIPHER_SPEC              -> 50 / Out_TIMEOUT
+          In_FINISHED                        -> 23 / Out_TIMEOUT
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 49 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 49 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 24 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    50    In_ECDH_CLIENT_HELLO               -> 43 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 4 / Out_Alert_FATAL_HANDSHAKE_FAILURE
+          In_CHANGE_CIPHER_SPEC              -> 4 / Out_Alert_FATAL_DECODE_ERROR
+          In_FINISHED                        -> 43 / Out_TIMEOUT
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 50 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 50 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 44 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    51    In_ECDH_CLIENT_HELLO               -> 11 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 51 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 11 / Out_TIMEOUT
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 52 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 53 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 4 / Out_Alert_FATAL_NO_CERTIFICATE_RESERVED
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    52    In_ECDH_CLIENT_HELLO               -> 46 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 54 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 46 / Out_TIMEOUT
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 52 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 53 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 46 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    53    In_ECDH_CLIENT_HELLO               -> 46 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 65 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 46 / Out_TIMEOUT
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 52 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 53 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 46 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    54    In_ECDH_CLIENT_HELLO               -> 46 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 46 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 46 / Out_TIMEOUT
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 52 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 53 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 4 / Out_Alert_FATAL_BAD_CERTIFICATE
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    55    In_ECDH_CLIENT_HELLO               -> 44 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 44 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 4 / Out_Alert_FATAL_DECODE_ERROR
+          In_FINISHED                        -> 44 / Out_TIMEOUT
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 36 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 37 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 4 / Out_Alert_FATAL_BAD_CERTIFICATE
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    56    In_ECDH_CLIENT_HELLO               -> 24 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 24 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 55 / Out_TIMEOUT
+          In_FINISHED                        -> 24 / Out_TIMEOUT
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 33 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 34 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 4 / Out_Alert_FATAL_BAD_CERTIFICATE
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    57    In_ECDH_CLIENT_HELLO               -> 27 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 20 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 58 / Out_TIMEOUT
+          In_FINISHED                        -> 15 / Out_CHANGE_CIPHER_SPEC_FINISHED
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 16 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 17 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 4 / Out_Alert_FATAL_NO_CERTIFICATE_RESERVED
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    58    In_ECDH_CLIENT_HELLO               -> 48 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 41 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 4 / Out_Alert_FATAL_DECODE_ERROR
+          In_FINISHED                        -> 38 / Out_CHANGE_CIPHER_SPEC_FINISHED
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 22 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 40 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 4 / Out_Alert_FATAL_NO_CERTIFICATE_RESERVED
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    59    In_ECDH_CLIENT_HELLO               -> 27 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 20 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 60 / Out_TIMEOUT
+          In_FINISHED                        -> 15 / Out_CHANGE_CIPHER_SPEC_FINISHED
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 16 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 17 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 61 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    60    In_ECDH_CLIENT_HELLO               -> 48 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 41 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 4 / Out_Alert_FATAL_DECODE_ERROR
+          In_FINISHED                        -> 38 / Out_CHANGE_CIPHER_SPEC_FINISHED
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 22 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 40 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 62 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    61    In_ECDH_CLIENT_HELLO               -> 4 / Out_Alert_FATAL_BAD_CERTIFICATE
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 24 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 62 / Out_TIMEOUT
+          In_FINISHED                        -> 15 / Out_CHANGE_CIPHER_SPEC_FINISHED
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 33 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 34 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 24 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    62    In_ECDH_CLIENT_HELLO               -> 4 / Out_Alert_FATAL_BAD_CERTIFICATE
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 44 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 4 / Out_Alert_FATAL_DECODE_ERROR
+          In_FINISHED                        -> 38 / Out_CHANGE_CIPHER_SPEC_FINISHED
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 36 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 37 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 44 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    63    In_ECDH_CLIENT_HELLO               -> 44 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 44 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 4 / Out_Alert_FATAL_DECODE_ERROR
+          In_FINISHED                        -> 44 / Out_TIMEOUT
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 36 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 37 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 4 / Out_Alert_FATAL_NO_CERTIFICATE_RESERVED
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    64    In_ECDH_CLIENT_HELLO               -> 24 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 24 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 63 / Out_TIMEOUT
+          In_FINISHED                        -> 24 / Out_TIMEOUT
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 33 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 34 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 4 / Out_Alert_FATAL_NO_CERTIFICATE_RESERVED
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    65    In_ECDH_CLIENT_HELLO               -> 46 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 46 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 46 / Out_TIMEOUT
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 52 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 53 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 4 / Out_Alert_FATAL_NO_CERTIFICATE_RESERVED
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+-}
+pionEcdheCertNone :: MealyAutomaton Int PionEcdheCertNoneInput PionEcdheCertNoneOutput
+pionEcdheCertNone =
+    case mkMealyAutomatonTable 66 0 deltaTable lambdaTable of
+        Right m -> m
+        Left err -> error ("haal-gen: invalid transition table: " ++ err)
+  where
+    deltaTable =
+        "\1\2\3\2\3\2\2\2\4\4\
+        \\5\2\3\2\3\2\2\2\4\4\
+        \\2\2\3\2\3\2\2\2\4\4\
+        \\3\3\3\3\3\3\3\3\3\3\
+        \\4\4\4\4\4\4\4\4\4\4\
+        \\6\7\3\8\3\9\10\11\4\4\
+        \\6\13\3\8\3\29\30\11\4\4\
+        \\12\13\14\15\3\16\17\4\4\4\
+        \\8\4\3\8\3\19\19\11\4\4\
+        \\47\59\3\45\3\29\30\46\4\4\
+        \\47\57\3\45\3\29\30\46\4\4\
+        \\11\51\3\11\3\52\53\11\4\4\
+        \\12\13\25\4\3\16\17\26\4\4\
+        \\12\13\18\4\3\16\17\4\4\4\
+        \\25\18\4\38\3\22\40\4\4\4\
+        \\15\15\38\15\4\15\15\15\4\4\
+        \\20\21\22\23\3\16\17\24\4\4\
+        \\20\39\40\23\3\16\17\24\4\4\
+        \\25\18\4\4\3\22\40\4\4\4\
+        \\45\4\3\45\3\19\19\46\4\4\
+        \\20\20\41\23\3\16\17\24\4\4\
+        \\27\20\28\4\3\16\17\4\4\4\
+        \\41\28\4\43\3\22\40\44\4\4\
+        \\23\23\43\23\3\49\49\24\4\4\
+        \\24\24\44\24\3\33\34\24\4\4\
+        \\25\18\4\4\3\22\40\32\4\4\
+        \\26\31\32\26\3\33\34\26\4\4\
+        \\27\20\48\4\3\16\17\24\4\4\
+        \\48\41\4\4\3\22\40\4\4\4\
+        \\47\21\3\45\3\29\30\46\4\4\
+        \\47\39\3\45\3\29\30\46\4\4\
+        \\26\31\35\26\3\33\34\4\4\4\
+        \\32\35\4\32\3\36\37\32\4\4\
+        \\24\56\36\24\3\33\34\24\4\4\
+        \\24\64\37\24\3\33\34\24\4\4\
+        \\32\35\4\32\3\36\37\4\4\4\
+        \\44\55\4\44\3\36\37\44\4\4\
+        \\44\63\4\44\3\36\37\44\4\4\
+        \\38\38\4\38\4\38\38\38\4\4\
+        \\27\20\42\4\3\16\17\4\4\4\
+        \\41\42\4\43\3\22\40\44\4\4\
+        \\41\41\4\43\3\22\40\44\4\4\
+        \\48\41\4\4\3\22\40\4\4\4\
+        \\43\43\4\43\3\50\50\44\4\4\
+        \\44\44\4\44\3\36\37\44\4\4\
+        \\45\45\3\45\3\19\19\46\4\4\
+        \\46\46\3\46\3\52\53\46\4\4\
+        \\47\47\3\45\3\29\30\46\4\4\
+        \\48\41\4\4\3\22\40\44\4\4\
+        \\23\4\50\23\3\49\49\24\4\4\
+        \\43\4\4\43\3\50\50\44\4\4\
+        \\11\51\3\11\3\52\53\4\4\4\
+        \\46\54\3\46\3\52\53\46\4\4\
+        \\46\65\3\46\3\52\53\46\4\4\
+        \\46\46\3\46\3\52\53\4\4\4\
+        \\44\44\4\44\3\36\37\4\4\4\
+        \\24\24\55\24\3\33\34\4\4\4\
+        \\27\20\58\15\3\16\17\4\4\4\
+        \\48\41\4\38\3\22\40\4\4\4\
+        \\27\20\60\15\3\16\17\61\4\4\
+        \\48\41\4\38\3\22\40\62\4\4\
+        \\4\24\62\15\3\33\34\24\4\4\
+        \\4\44\4\38\3\36\37\44\4\4\
+        \\44\44\4\44\3\36\37\4\4\4\
+        \\24\24\63\24\3\33\34\4\4\4\
+        \\46\46\3\46\3\52\53\4\4\4"
+    lambdaTable =
+        "\0\1\1\1\1\1\1\1\2\1\
+        \\4\1\1\1\1\1\1\1\2\1\
+        \\1\1\1\1\1\1\1\1\2\1\
+        \\1\1\1\1\1\1\1\1\1\1\
+        \\3\3\3\3\3\3\3\3\3\3\
+        \\1\1\1\1\1\1\1\1\2\1\
+        \\1\1\1\1\1\1\1\1\2\1\
+        \\1\1\1\5\1\1\1\6\2\1\
+        \\1\7\1\1\1\1\1\1\2\1\
+        \\1\1\1\1\1\1\1\1\2\1\
+        \\1\1\1\1\1\1\1\1\2\1\
+        \\1\1\1\1\1\1\1\1\2\1\
+        \\1\1\1\7\1\1\1\1\2\1\
+        \\1\1\1\7\1\1\1\6\2\1\
+        \\1\1\9\5\1\1\1\6\2\1\
+        \\1\1\1\1\10\1\1\1\2\1\
+        \\1\1\1\1\1\1\1\1\2\1\
+        \\1\1\1\1\1\1\1\1\2\1\
+        \\1\1\9\7\1\1\1\6\2\1\
+        \\1\7\1\1\1\1\1\1\2\1\
+        \\1\1\1\1\1\1\1\1\2\1\
+        \\1\1\1\7\1\1\1\8\2\1\
+        \\1\1\9\1\1\1\1\1\2\1\
+        \\1\1\1\1\1\1\1\1\2\1\
+        \\1\1\1\1\1\1\1\1\2\1\
+        \\1\1\9\7\1\1\1\1\2\1\
+        \\1\1\1\1\1\1\1\1\2\1\
+        \\1\1\1\7\1\1\1\1\2\1\
+        \\1\1\9\7\1\1\1\8\2\1\
+        \\1\1\1\1\1\1\1\1\2\1\
+        \\1\1\1\1\1\1\1\1\2\1\
+        \\1\1\1\1\1\1\1\6\2\1\
+        \\1\1\9\1\1\1\1\1\2\1\
+        \\1\1\1\1\1\1\1\1\2\1\
+        \\1\1\1\1\1\1\1\1\2\1\
+        \\1\1\9\1\1\1\1\6\2\1\
+        \\1\1\9\1\1\1\1\1\2\1\
+        \\1\1\9\1\1\1\1\1\2\1\
+        \\1\1\9\1\10\1\1\1\2\1\
+        \\1\1\1\7\1\1\1\6\2\1\
+        \\1\1\9\1\1\1\1\1\2\1\
+        \\1\1\9\1\1\1\1\1\2\1\
+        \\1\1\9\7\1\1\1\6\2\1\
+        \\1\1\9\1\1\1\1\1\2\1\
+        \\1\1\9\1\1\1\1\1\2\1\
+        \\1\1\1\1\1\1\1\1\2\1\
+        \\1\1\1\1\1\1\1\1\2\1\
+        \\1\1\1\1\1\1\1\1\2\1\
+        \\1\1\9\7\1\1\1\1\2\1\
+        \\1\7\1\1\1\1\1\1\2\1\
+        \\1\7\9\1\1\1\1\1\2\1\
+        \\1\1\1\1\1\1\1\6\2\1\
+        \\1\1\1\1\1\1\1\1\2\1\
+        \\1\1\1\1\1\1\1\1\2\1\
+        \\1\1\1\1\1\1\1\8\2\1\
+        \\1\1\9\1\1\1\1\8\2\1\
+        \\1\1\1\1\1\1\1\8\2\1\
+        \\1\1\1\5\1\1\1\6\2\1\
+        \\1\1\9\5\1\1\1\6\2\1\
+        \\1\1\1\5\1\1\1\1\2\1\
+        \\1\1\9\5\1\1\1\1\2\1\
+        \\8\1\1\5\1\1\1\1\2\1\
+        \\8\1\9\5\1\1\1\1\2\1\
+        \\1\1\9\1\1\1\1\6\2\1\
+        \\1\1\1\1\1\1\1\6\2\1\
+        \\1\1\1\1\1\1\1\6\2\1"
diff --git a/src/Haal/Models/DTLS/PionEcdheCertNreq.hs b/src/Haal/Models/DTLS/PionEcdheCertNreq.hs
--- a/src/Haal/Models/DTLS/PionEcdheCertNreq.hs
+++ b/src/Haal/Models/DTLS/PionEcdheCertNreq.hs
@@ -5,1358 +5,834 @@
     , pionEcdheCertNreq
     ) where
 
-import qualified Data.Set as Set
-import Haal.Automaton.MealyAutomaton (MealyAutomaton, mkMealyAutomaton)
-
-data PionEcdheCertNreqInput
-    = In_ECDH_CLIENT_HELLO
-    | In_ECDH_CLIENT_KEY_EXCHANGE
-    | In_CHANGE_CIPHER_SPEC
-    | In_FINISHED
-    | In_APPLICATION
-    | In_CERTIFICATE
-    | In_EMPTY_CERTIFICATE
-    | In_CERTIFICATE_VERIFY
-    | In_Alert_WARNING_CLOSE_NOTIFY
-    | In_Alert_FATAL_UNEXPECTED_MESSAGE
-    deriving (Show, Eq, Ord, Enum, Bounded)
-
-data PionEcdheCertNreqOutput
-    = Out_HELLO_VERIFY_REQUEST
-    | Out_TIMEOUT
-    | Out_Alert_FATAL_CLOSE_NOTIFY
-    | Out_SOCKET_CLOSED
-    | Out_SERVER_HELLO_CERTIFICATE_ECDHE_SERVER_KEY_EXCHANGE_CERTIFICATE_REQUEST_SERVER_HELLO_DONE
-    | Out_CHANGE_CIPHER_SPEC_FINISHED
-    | Out_Alert_FATAL_NO_CERTIFICATE_RESERVED
-    | Out_Alert_FATAL_HANDSHAKE_FAILURE
-    | Out_Alert_FATAL_DECODE_ERROR
-    | Out_APPLICATION
-    | Out_Alert_FATAL_BAD_CERTIFICATE
-    deriving (Show, Eq, Ord, Enum, Bounded)
-
-pionEcdheCertNreq :: MealyAutomaton Int PionEcdheCertNreqInput PionEcdheCertNreqOutput
-pionEcdheCertNreq = mkMealyAutomaton delta lambda (Set.fromList [0..65]) 0
-  where
-    delta 0 In_ECDH_CLIENT_HELLO = 1
-    delta 0 In_ECDH_CLIENT_KEY_EXCHANGE = 2
-    delta 0 In_CHANGE_CIPHER_SPEC = 3
-    delta 0 In_FINISHED = 2
-    delta 0 In_APPLICATION = 3
-    delta 0 In_CERTIFICATE = 2
-    delta 0 In_EMPTY_CERTIFICATE = 2
-    delta 0 In_CERTIFICATE_VERIFY = 2
-    delta 0 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 0 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 4 In_ECDH_CLIENT_HELLO = 4
-    delta 4 In_ECDH_CLIENT_KEY_EXCHANGE = 4
-    delta 4 In_CHANGE_CIPHER_SPEC = 4
-    delta 4 In_FINISHED = 4
-    delta 4 In_APPLICATION = 4
-    delta 4 In_CERTIFICATE = 4
-    delta 4 In_EMPTY_CERTIFICATE = 4
-    delta 4 In_CERTIFICATE_VERIFY = 4
-    delta 4 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 4 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 1 In_ECDH_CLIENT_HELLO = 5
-    delta 1 In_ECDH_CLIENT_KEY_EXCHANGE = 2
-    delta 1 In_CHANGE_CIPHER_SPEC = 3
-    delta 1 In_FINISHED = 2
-    delta 1 In_APPLICATION = 3
-    delta 1 In_CERTIFICATE = 2
-    delta 1 In_EMPTY_CERTIFICATE = 2
-    delta 1 In_CERTIFICATE_VERIFY = 2
-    delta 1 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 1 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 2 In_ECDH_CLIENT_HELLO = 2
-    delta 2 In_ECDH_CLIENT_KEY_EXCHANGE = 2
-    delta 2 In_CHANGE_CIPHER_SPEC = 3
-    delta 2 In_FINISHED = 2
-    delta 2 In_APPLICATION = 3
-    delta 2 In_CERTIFICATE = 2
-    delta 2 In_EMPTY_CERTIFICATE = 2
-    delta 2 In_CERTIFICATE_VERIFY = 2
-    delta 2 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 2 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 3 In_ECDH_CLIENT_HELLO = 3
-    delta 3 In_ECDH_CLIENT_KEY_EXCHANGE = 3
-    delta 3 In_CHANGE_CIPHER_SPEC = 3
-    delta 3 In_FINISHED = 3
-    delta 3 In_APPLICATION = 3
-    delta 3 In_CERTIFICATE = 3
-    delta 3 In_EMPTY_CERTIFICATE = 3
-    delta 3 In_CERTIFICATE_VERIFY = 3
-    delta 3 In_Alert_WARNING_CLOSE_NOTIFY = 3
-    delta 3 In_Alert_FATAL_UNEXPECTED_MESSAGE = 3
-    delta 5 In_ECDH_CLIENT_HELLO = 6
-    delta 5 In_ECDH_CLIENT_KEY_EXCHANGE = 7
-    delta 5 In_CHANGE_CIPHER_SPEC = 3
-    delta 5 In_FINISHED = 8
-    delta 5 In_APPLICATION = 3
-    delta 5 In_CERTIFICATE = 9
-    delta 5 In_EMPTY_CERTIFICATE = 10
-    delta 5 In_CERTIFICATE_VERIFY = 11
-    delta 5 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 5 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 7 In_ECDH_CLIENT_HELLO = 12
-    delta 7 In_ECDH_CLIENT_KEY_EXCHANGE = 13
-    delta 7 In_CHANGE_CIPHER_SPEC = 14
-    delta 7 In_FINISHED = 15
-    delta 7 In_APPLICATION = 3
-    delta 7 In_CERTIFICATE = 16
-    delta 7 In_EMPTY_CERTIFICATE = 17
-    delta 7 In_CERTIFICATE_VERIFY = 4
-    delta 7 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 7 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 13 In_ECDH_CLIENT_HELLO = 12
-    delta 13 In_ECDH_CLIENT_KEY_EXCHANGE = 13
-    delta 13 In_CHANGE_CIPHER_SPEC = 18
-    delta 13 In_FINISHED = 4
-    delta 13 In_APPLICATION = 3
-    delta 13 In_CERTIFICATE = 16
-    delta 13 In_EMPTY_CERTIFICATE = 17
-    delta 13 In_CERTIFICATE_VERIFY = 4
-    delta 13 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 13 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 8 In_ECDH_CLIENT_HELLO = 8
-    delta 8 In_ECDH_CLIENT_KEY_EXCHANGE = 4
-    delta 8 In_CHANGE_CIPHER_SPEC = 3
-    delta 8 In_FINISHED = 8
-    delta 8 In_APPLICATION = 3
-    delta 8 In_CERTIFICATE = 19
-    delta 8 In_EMPTY_CERTIFICATE = 19
-    delta 8 In_CERTIFICATE_VERIFY = 11
-    delta 8 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 8 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 16 In_ECDH_CLIENT_HELLO = 20
-    delta 16 In_ECDH_CLIENT_KEY_EXCHANGE = 21
-    delta 16 In_CHANGE_CIPHER_SPEC = 22
-    delta 16 In_FINISHED = 23
-    delta 16 In_APPLICATION = 3
-    delta 16 In_CERTIFICATE = 16
-    delta 16 In_EMPTY_CERTIFICATE = 17
-    delta 16 In_CERTIFICATE_VERIFY = 24
-    delta 16 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 16 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 14 In_ECDH_CLIENT_HELLO = 25
-    delta 14 In_ECDH_CLIENT_KEY_EXCHANGE = 18
-    delta 14 In_CHANGE_CIPHER_SPEC = 4
-    delta 14 In_FINISHED = 26
-    delta 14 In_APPLICATION = 3
-    delta 14 In_CERTIFICATE = 22
-    delta 14 In_EMPTY_CERTIFICATE = 27
-    delta 14 In_CERTIFICATE_VERIFY = 4
-    delta 14 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 14 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 25 In_ECDH_CLIENT_HELLO = 25
-    delta 25 In_ECDH_CLIENT_KEY_EXCHANGE = 18
-    delta 25 In_CHANGE_CIPHER_SPEC = 4
-    delta 25 In_FINISHED = 4
-    delta 25 In_APPLICATION = 3
-    delta 25 In_CERTIFICATE = 22
-    delta 25 In_EMPTY_CERTIFICATE = 27
-    delta 25 In_CERTIFICATE_VERIFY = 28
-    delta 25 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 25 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 27 In_ECDH_CLIENT_HELLO = 29
-    delta 27 In_ECDH_CLIENT_KEY_EXCHANGE = 30
-    delta 27 In_CHANGE_CIPHER_SPEC = 4
-    delta 27 In_FINISHED = 31
-    delta 27 In_APPLICATION = 3
-    delta 27 In_CERTIFICATE = 22
-    delta 27 In_EMPTY_CERTIFICATE = 27
-    delta 27 In_CERTIFICATE_VERIFY = 32
-    delta 27 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 27 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 19 In_ECDH_CLIENT_HELLO = 33
-    delta 19 In_ECDH_CLIENT_KEY_EXCHANGE = 4
-    delta 19 In_CHANGE_CIPHER_SPEC = 3
-    delta 19 In_FINISHED = 33
-    delta 19 In_APPLICATION = 3
-    delta 19 In_CERTIFICATE = 19
-    delta 19 In_EMPTY_CERTIFICATE = 19
-    delta 19 In_CERTIFICATE_VERIFY = 34
-    delta 19 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 19 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 6 In_ECDH_CLIENT_HELLO = 6
-    delta 6 In_ECDH_CLIENT_KEY_EXCHANGE = 13
-    delta 6 In_CHANGE_CIPHER_SPEC = 3
-    delta 6 In_FINISHED = 8
-    delta 6 In_APPLICATION = 3
-    delta 6 In_CERTIFICATE = 35
-    delta 6 In_EMPTY_CERTIFICATE = 36
-    delta 6 In_CERTIFICATE_VERIFY = 11
-    delta 6 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 6 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 20 In_ECDH_CLIENT_HELLO = 20
-    delta 20 In_ECDH_CLIENT_KEY_EXCHANGE = 20
-    delta 20 In_CHANGE_CIPHER_SPEC = 29
-    delta 20 In_FINISHED = 23
-    delta 20 In_APPLICATION = 3
-    delta 20 In_CERTIFICATE = 16
-    delta 20 In_EMPTY_CERTIFICATE = 17
-    delta 20 In_CERTIFICATE_VERIFY = 24
-    delta 20 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 20 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 26 In_ECDH_CLIENT_HELLO = 26
-    delta 26 In_ECDH_CLIENT_KEY_EXCHANGE = 26
-    delta 26 In_CHANGE_CIPHER_SPEC = 4
-    delta 26 In_FINISHED = 26
-    delta 26 In_APPLICATION = 4
-    delta 26 In_CERTIFICATE = 26
-    delta 26 In_EMPTY_CERTIFICATE = 26
-    delta 26 In_CERTIFICATE_VERIFY = 26
-    delta 26 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 26 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 32 In_ECDH_CLIENT_HELLO = 32
-    delta 32 In_ECDH_CLIENT_KEY_EXCHANGE = 32
-    delta 32 In_CHANGE_CIPHER_SPEC = 4
-    delta 32 In_FINISHED = 32
-    delta 32 In_APPLICATION = 3
-    delta 32 In_CERTIFICATE = 37
-    delta 32 In_EMPTY_CERTIFICATE = 38
-    delta 32 In_CERTIFICATE_VERIFY = 32
-    delta 32 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 32 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 15 In_ECDH_CLIENT_HELLO = 15
-    delta 15 In_ECDH_CLIENT_KEY_EXCHANGE = 15
-    delta 15 In_CHANGE_CIPHER_SPEC = 26
-    delta 15 In_FINISHED = 15
-    delta 15 In_APPLICATION = 4
-    delta 15 In_CERTIFICATE = 15
-    delta 15 In_EMPTY_CERTIFICATE = 15
-    delta 15 In_CERTIFICATE_VERIFY = 15
-    delta 15 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 15 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 23 In_ECDH_CLIENT_HELLO = 23
-    delta 23 In_ECDH_CLIENT_KEY_EXCHANGE = 23
-    delta 23 In_CHANGE_CIPHER_SPEC = 31
-    delta 23 In_FINISHED = 23
-    delta 23 In_APPLICATION = 3
-    delta 23 In_CERTIFICATE = 39
-    delta 23 In_EMPTY_CERTIFICATE = 39
-    delta 23 In_CERTIFICATE_VERIFY = 24
-    delta 23 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 23 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 24 In_ECDH_CLIENT_HELLO = 24
-    delta 24 In_ECDH_CLIENT_KEY_EXCHANGE = 24
-    delta 24 In_CHANGE_CIPHER_SPEC = 32
-    delta 24 In_FINISHED = 24
-    delta 24 In_APPLICATION = 3
-    delta 24 In_CERTIFICATE = 40
-    delta 24 In_EMPTY_CERTIFICATE = 41
-    delta 24 In_CERTIFICATE_VERIFY = 24
-    delta 24 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 24 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 18 In_ECDH_CLIENT_HELLO = 25
-    delta 18 In_ECDH_CLIENT_KEY_EXCHANGE = 18
-    delta 18 In_CHANGE_CIPHER_SPEC = 4
-    delta 18 In_FINISHED = 4
-    delta 18 In_APPLICATION = 3
-    delta 18 In_CERTIFICATE = 22
-    delta 18 In_EMPTY_CERTIFICATE = 27
-    delta 18 In_CERTIFICATE_VERIFY = 4
-    delta 18 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 18 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 33 In_ECDH_CLIENT_HELLO = 33
-    delta 33 In_ECDH_CLIENT_KEY_EXCHANGE = 33
-    delta 33 In_CHANGE_CIPHER_SPEC = 3
-    delta 33 In_FINISHED = 33
-    delta 33 In_APPLICATION = 3
-    delta 33 In_CERTIFICATE = 19
-    delta 33 In_EMPTY_CERTIFICATE = 19
-    delta 33 In_CERTIFICATE_VERIFY = 34
-    delta 33 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 33 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 12 In_ECDH_CLIENT_HELLO = 12
-    delta 12 In_ECDH_CLIENT_KEY_EXCHANGE = 13
-    delta 12 In_CHANGE_CIPHER_SPEC = 25
-    delta 12 In_FINISHED = 4
-    delta 12 In_APPLICATION = 3
-    delta 12 In_CERTIFICATE = 16
-    delta 12 In_EMPTY_CERTIFICATE = 17
-    delta 12 In_CERTIFICATE_VERIFY = 42
-    delta 12 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 12 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 21 In_ECDH_CLIENT_HELLO = 43
-    delta 21 In_ECDH_CLIENT_KEY_EXCHANGE = 20
-    delta 21 In_CHANGE_CIPHER_SPEC = 44
-    delta 21 In_FINISHED = 4
-    delta 21 In_APPLICATION = 3
-    delta 21 In_CERTIFICATE = 16
-    delta 21 In_EMPTY_CERTIFICATE = 17
-    delta 21 In_CERTIFICATE_VERIFY = 4
-    delta 21 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 21 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 44 In_ECDH_CLIENT_HELLO = 45
-    delta 44 In_ECDH_CLIENT_KEY_EXCHANGE = 29
-    delta 44 In_CHANGE_CIPHER_SPEC = 4
-    delta 44 In_FINISHED = 4
-    delta 44 In_APPLICATION = 3
-    delta 44 In_CERTIFICATE = 22
-    delta 44 In_EMPTY_CERTIFICATE = 27
-    delta 44 In_CERTIFICATE_VERIFY = 4
-    delta 44 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 44 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 41 In_ECDH_CLIENT_HELLO = 24
-    delta 41 In_ECDH_CLIENT_KEY_EXCHANGE = 46
-    delta 41 In_CHANGE_CIPHER_SPEC = 38
-    delta 41 In_FINISHED = 24
-    delta 41 In_APPLICATION = 3
-    delta 41 In_CERTIFICATE = 40
-    delta 41 In_EMPTY_CERTIFICATE = 41
-    delta 41 In_CERTIFICATE_VERIFY = 24
-    delta 41 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 41 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 46 In_ECDH_CLIENT_HELLO = 24
-    delta 46 In_ECDH_CLIENT_KEY_EXCHANGE = 24
-    delta 46 In_CHANGE_CIPHER_SPEC = 47
-    delta 46 In_FINISHED = 24
-    delta 46 In_APPLICATION = 3
-    delta 46 In_CERTIFICATE = 40
-    delta 46 In_EMPTY_CERTIFICATE = 41
-    delta 46 In_CERTIFICATE_VERIFY = 4
-    delta 46 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 46 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 40 In_ECDH_CLIENT_HELLO = 24
-    delta 40 In_ECDH_CLIENT_KEY_EXCHANGE = 48
-    delta 40 In_CHANGE_CIPHER_SPEC = 37
-    delta 40 In_FINISHED = 24
-    delta 40 In_APPLICATION = 3
-    delta 40 In_CERTIFICATE = 40
-    delta 40 In_EMPTY_CERTIFICATE = 41
-    delta 40 In_CERTIFICATE_VERIFY = 24
-    delta 40 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 40 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 48 In_ECDH_CLIENT_HELLO = 24
-    delta 48 In_ECDH_CLIENT_KEY_EXCHANGE = 24
-    delta 48 In_CHANGE_CIPHER_SPEC = 49
-    delta 48 In_FINISHED = 24
-    delta 48 In_APPLICATION = 3
-    delta 48 In_CERTIFICATE = 40
-    delta 48 In_EMPTY_CERTIFICATE = 41
-    delta 48 In_CERTIFICATE_VERIFY = 4
-    delta 48 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 48 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 39 In_ECDH_CLIENT_HELLO = 23
-    delta 39 In_ECDH_CLIENT_KEY_EXCHANGE = 4
-    delta 39 In_CHANGE_CIPHER_SPEC = 50
-    delta 39 In_FINISHED = 23
-    delta 39 In_APPLICATION = 3
-    delta 39 In_CERTIFICATE = 39
-    delta 39 In_EMPTY_CERTIFICATE = 39
-    delta 39 In_CERTIFICATE_VERIFY = 24
-    delta 39 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 39 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 50 In_ECDH_CLIENT_HELLO = 31
-    delta 50 In_ECDH_CLIENT_KEY_EXCHANGE = 4
-    delta 50 In_CHANGE_CIPHER_SPEC = 4
-    delta 50 In_FINISHED = 31
-    delta 50 In_APPLICATION = 3
-    delta 50 In_CERTIFICATE = 50
-    delta 50 In_EMPTY_CERTIFICATE = 50
-    delta 50 In_CERTIFICATE_VERIFY = 32
-    delta 50 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 50 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 47 In_ECDH_CLIENT_HELLO = 32
-    delta 47 In_ECDH_CLIENT_KEY_EXCHANGE = 32
-    delta 47 In_CHANGE_CIPHER_SPEC = 4
-    delta 47 In_FINISHED = 32
-    delta 47 In_APPLICATION = 3
-    delta 47 In_CERTIFICATE = 37
-    delta 47 In_EMPTY_CERTIFICATE = 38
-    delta 47 In_CERTIFICATE_VERIFY = 4
-    delta 47 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 47 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 49 In_ECDH_CLIENT_HELLO = 32
-    delta 49 In_ECDH_CLIENT_KEY_EXCHANGE = 32
-    delta 49 In_CHANGE_CIPHER_SPEC = 4
-    delta 49 In_FINISHED = 32
-    delta 49 In_APPLICATION = 3
-    delta 49 In_CERTIFICATE = 37
-    delta 49 In_EMPTY_CERTIFICATE = 38
-    delta 49 In_CERTIFICATE_VERIFY = 4
-    delta 49 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 49 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 17 In_ECDH_CLIENT_HELLO = 20
-    delta 17 In_ECDH_CLIENT_KEY_EXCHANGE = 51
-    delta 17 In_CHANGE_CIPHER_SPEC = 27
-    delta 17 In_FINISHED = 23
-    delta 17 In_APPLICATION = 3
-    delta 17 In_CERTIFICATE = 16
-    delta 17 In_EMPTY_CERTIFICATE = 17
-    delta 17 In_CERTIFICATE_VERIFY = 24
-    delta 17 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 17 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 31 In_ECDH_CLIENT_HELLO = 31
-    delta 31 In_ECDH_CLIENT_KEY_EXCHANGE = 31
-    delta 31 In_CHANGE_CIPHER_SPEC = 4
-    delta 31 In_FINISHED = 31
-    delta 31 In_APPLICATION = 3
-    delta 31 In_CERTIFICATE = 50
-    delta 31 In_EMPTY_CERTIFICATE = 50
-    delta 31 In_CERTIFICATE_VERIFY = 32
-    delta 31 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 31 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 29 In_ECDH_CLIENT_HELLO = 29
-    delta 29 In_ECDH_CLIENT_KEY_EXCHANGE = 29
-    delta 29 In_CHANGE_CIPHER_SPEC = 4
-    delta 29 In_FINISHED = 31
-    delta 29 In_APPLICATION = 3
-    delta 29 In_CERTIFICATE = 22
-    delta 29 In_EMPTY_CERTIFICATE = 27
-    delta 29 In_CERTIFICATE_VERIFY = 32
-    delta 29 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 29 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 37 In_ECDH_CLIENT_HELLO = 32
-    delta 37 In_ECDH_CLIENT_KEY_EXCHANGE = 49
-    delta 37 In_CHANGE_CIPHER_SPEC = 4
-    delta 37 In_FINISHED = 32
-    delta 37 In_APPLICATION = 3
-    delta 37 In_CERTIFICATE = 37
-    delta 37 In_EMPTY_CERTIFICATE = 38
-    delta 37 In_CERTIFICATE_VERIFY = 32
-    delta 37 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 37 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 28 In_ECDH_CLIENT_HELLO = 28
-    delta 28 In_ECDH_CLIENT_KEY_EXCHANGE = 52
-    delta 28 In_CHANGE_CIPHER_SPEC = 4
-    delta 28 In_FINISHED = 28
-    delta 28 In_APPLICATION = 3
-    delta 28 In_CERTIFICATE = 37
-    delta 28 In_EMPTY_CERTIFICATE = 38
-    delta 28 In_CERTIFICATE_VERIFY = 28
-    delta 28 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 28 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 43 In_ECDH_CLIENT_HELLO = 43
-    delta 43 In_ECDH_CLIENT_KEY_EXCHANGE = 20
-    delta 43 In_CHANGE_CIPHER_SPEC = 45
-    delta 43 In_FINISHED = 4
-    delta 43 In_APPLICATION = 3
-    delta 43 In_CERTIFICATE = 16
-    delta 43 In_EMPTY_CERTIFICATE = 17
-    delta 43 In_CERTIFICATE_VERIFY = 24
-    delta 43 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 43 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 45 In_ECDH_CLIENT_HELLO = 45
-    delta 45 In_ECDH_CLIENT_KEY_EXCHANGE = 29
-    delta 45 In_CHANGE_CIPHER_SPEC = 4
-    delta 45 In_FINISHED = 4
-    delta 45 In_APPLICATION = 3
-    delta 45 In_CERTIFICATE = 22
-    delta 45 In_EMPTY_CERTIFICATE = 27
-    delta 45 In_CERTIFICATE_VERIFY = 32
-    delta 45 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 45 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 22 In_ECDH_CLIENT_HELLO = 29
-    delta 22 In_ECDH_CLIENT_KEY_EXCHANGE = 44
-    delta 22 In_CHANGE_CIPHER_SPEC = 4
-    delta 22 In_FINISHED = 31
-    delta 22 In_APPLICATION = 3
-    delta 22 In_CERTIFICATE = 22
-    delta 22 In_EMPTY_CERTIFICATE = 27
-    delta 22 In_CERTIFICATE_VERIFY = 32
-    delta 22 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 22 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 38 In_ECDH_CLIENT_HELLO = 32
-    delta 38 In_ECDH_CLIENT_KEY_EXCHANGE = 47
-    delta 38 In_CHANGE_CIPHER_SPEC = 4
-    delta 38 In_FINISHED = 32
-    delta 38 In_APPLICATION = 3
-    delta 38 In_CERTIFICATE = 37
-    delta 38 In_EMPTY_CERTIFICATE = 38
-    delta 38 In_CERTIFICATE_VERIFY = 32
-    delta 38 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 38 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 52 In_ECDH_CLIENT_HELLO = 28
-    delta 52 In_ECDH_CLIENT_KEY_EXCHANGE = 52
-    delta 52 In_CHANGE_CIPHER_SPEC = 4
-    delta 52 In_FINISHED = 28
-    delta 52 In_APPLICATION = 3
-    delta 52 In_CERTIFICATE = 37
-    delta 52 In_EMPTY_CERTIFICATE = 38
-    delta 52 In_CERTIFICATE_VERIFY = 4
-    delta 52 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 52 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 35 In_ECDH_CLIENT_HELLO = 53
-    delta 35 In_ECDH_CLIENT_KEY_EXCHANGE = 21
-    delta 35 In_CHANGE_CIPHER_SPEC = 3
-    delta 35 In_FINISHED = 33
-    delta 35 In_APPLICATION = 3
-    delta 35 In_CERTIFICATE = 35
-    delta 35 In_EMPTY_CERTIFICATE = 36
-    delta 35 In_CERTIFICATE_VERIFY = 34
-    delta 35 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 35 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 53 In_ECDH_CLIENT_HELLO = 53
-    delta 53 In_ECDH_CLIENT_KEY_EXCHANGE = 53
-    delta 53 In_CHANGE_CIPHER_SPEC = 3
-    delta 53 In_FINISHED = 33
-    delta 53 In_APPLICATION = 3
-    delta 53 In_CERTIFICATE = 35
-    delta 53 In_EMPTY_CERTIFICATE = 36
-    delta 53 In_CERTIFICATE_VERIFY = 34
-    delta 53 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 53 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 42 In_ECDH_CLIENT_HELLO = 42
-    delta 42 In_ECDH_CLIENT_KEY_EXCHANGE = 54
-    delta 42 In_CHANGE_CIPHER_SPEC = 28
-    delta 42 In_FINISHED = 42
-    delta 42 In_APPLICATION = 3
-    delta 42 In_CERTIFICATE = 40
-    delta 42 In_EMPTY_CERTIFICATE = 41
-    delta 42 In_CERTIFICATE_VERIFY = 42
-    delta 42 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 42 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 54 In_ECDH_CLIENT_HELLO = 42
-    delta 54 In_ECDH_CLIENT_KEY_EXCHANGE = 54
-    delta 54 In_CHANGE_CIPHER_SPEC = 52
-    delta 54 In_FINISHED = 42
-    delta 54 In_APPLICATION = 3
-    delta 54 In_CERTIFICATE = 40
-    delta 54 In_EMPTY_CERTIFICATE = 41
-    delta 54 In_CERTIFICATE_VERIFY = 4
-    delta 54 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 54 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 51 In_ECDH_CLIENT_HELLO = 43
-    delta 51 In_ECDH_CLIENT_KEY_EXCHANGE = 20
-    delta 51 In_CHANGE_CIPHER_SPEC = 30
-    delta 51 In_FINISHED = 4
-    delta 51 In_APPLICATION = 3
-    delta 51 In_CERTIFICATE = 16
-    delta 51 In_EMPTY_CERTIFICATE = 17
-    delta 51 In_CERTIFICATE_VERIFY = 4
-    delta 51 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 51 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 36 In_ECDH_CLIENT_HELLO = 53
-    delta 36 In_ECDH_CLIENT_KEY_EXCHANGE = 51
-    delta 36 In_CHANGE_CIPHER_SPEC = 3
-    delta 36 In_FINISHED = 33
-    delta 36 In_APPLICATION = 3
-    delta 36 In_CERTIFICATE = 35
-    delta 36 In_EMPTY_CERTIFICATE = 36
-    delta 36 In_CERTIFICATE_VERIFY = 34
-    delta 36 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 36 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 11 In_ECDH_CLIENT_HELLO = 11
-    delta 11 In_ECDH_CLIENT_KEY_EXCHANGE = 55
-    delta 11 In_CHANGE_CIPHER_SPEC = 3
-    delta 11 In_FINISHED = 11
-    delta 11 In_APPLICATION = 3
-    delta 11 In_CERTIFICATE = 56
-    delta 11 In_EMPTY_CERTIFICATE = 57
-    delta 11 In_CERTIFICATE_VERIFY = 11
-    delta 11 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 11 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 55 In_ECDH_CLIENT_HELLO = 11
-    delta 55 In_ECDH_CLIENT_KEY_EXCHANGE = 55
-    delta 55 In_CHANGE_CIPHER_SPEC = 3
-    delta 55 In_FINISHED = 11
-    delta 55 In_APPLICATION = 3
-    delta 55 In_CERTIFICATE = 56
-    delta 55 In_EMPTY_CERTIFICATE = 57
-    delta 55 In_CERTIFICATE_VERIFY = 4
-    delta 55 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 55 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 56 In_ECDH_CLIENT_HELLO = 34
-    delta 56 In_ECDH_CLIENT_KEY_EXCHANGE = 58
-    delta 56 In_CHANGE_CIPHER_SPEC = 3
-    delta 56 In_FINISHED = 34
-    delta 56 In_APPLICATION = 3
-    delta 56 In_CERTIFICATE = 56
-    delta 56 In_EMPTY_CERTIFICATE = 57
-    delta 56 In_CERTIFICATE_VERIFY = 34
-    delta 56 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 56 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 58 In_ECDH_CLIENT_HELLO = 34
-    delta 58 In_ECDH_CLIENT_KEY_EXCHANGE = 34
-    delta 58 In_CHANGE_CIPHER_SPEC = 3
-    delta 58 In_FINISHED = 34
-    delta 58 In_APPLICATION = 3
-    delta 58 In_CERTIFICATE = 56
-    delta 58 In_EMPTY_CERTIFICATE = 57
-    delta 58 In_CERTIFICATE_VERIFY = 4
-    delta 58 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 58 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 57 In_ECDH_CLIENT_HELLO = 34
-    delta 57 In_ECDH_CLIENT_KEY_EXCHANGE = 59
-    delta 57 In_CHANGE_CIPHER_SPEC = 3
-    delta 57 In_FINISHED = 34
-    delta 57 In_APPLICATION = 3
-    delta 57 In_CERTIFICATE = 56
-    delta 57 In_EMPTY_CERTIFICATE = 57
-    delta 57 In_CERTIFICATE_VERIFY = 34
-    delta 57 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 57 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 9 In_ECDH_CLIENT_HELLO = 53
-    delta 9 In_ECDH_CLIENT_KEY_EXCHANGE = 60
-    delta 9 In_CHANGE_CIPHER_SPEC = 3
-    delta 9 In_FINISHED = 33
-    delta 9 In_APPLICATION = 3
-    delta 9 In_CERTIFICATE = 35
-    delta 9 In_EMPTY_CERTIFICATE = 36
-    delta 9 In_CERTIFICATE_VERIFY = 34
-    delta 9 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 9 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 34 In_ECDH_CLIENT_HELLO = 34
-    delta 34 In_ECDH_CLIENT_KEY_EXCHANGE = 34
-    delta 34 In_CHANGE_CIPHER_SPEC = 3
-    delta 34 In_FINISHED = 34
-    delta 34 In_APPLICATION = 3
-    delta 34 In_CERTIFICATE = 56
-    delta 34 In_EMPTY_CERTIFICATE = 57
-    delta 34 In_CERTIFICATE_VERIFY = 34
-    delta 34 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 34 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 59 In_ECDH_CLIENT_HELLO = 34
-    delta 59 In_ECDH_CLIENT_KEY_EXCHANGE = 34
-    delta 59 In_CHANGE_CIPHER_SPEC = 3
-    delta 59 In_FINISHED = 34
-    delta 59 In_APPLICATION = 3
-    delta 59 In_CERTIFICATE = 56
-    delta 59 In_EMPTY_CERTIFICATE = 57
-    delta 59 In_CERTIFICATE_VERIFY = 4
-    delta 59 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 59 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 60 In_ECDH_CLIENT_HELLO = 43
-    delta 60 In_ECDH_CLIENT_KEY_EXCHANGE = 20
-    delta 60 In_CHANGE_CIPHER_SPEC = 61
-    delta 60 In_FINISHED = 15
-    delta 60 In_APPLICATION = 3
-    delta 60 In_CERTIFICATE = 16
-    delta 60 In_EMPTY_CERTIFICATE = 17
-    delta 60 In_CERTIFICATE_VERIFY = 62
-    delta 60 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 60 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 62 In_ECDH_CLIENT_HELLO = 4
-    delta 62 In_ECDH_CLIENT_KEY_EXCHANGE = 24
-    delta 62 In_CHANGE_CIPHER_SPEC = 63
-    delta 62 In_FINISHED = 15
-    delta 62 In_APPLICATION = 3
-    delta 62 In_CERTIFICATE = 40
-    delta 62 In_EMPTY_CERTIFICATE = 41
-    delta 62 In_CERTIFICATE_VERIFY = 24
-    delta 62 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 62 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 10 In_ECDH_CLIENT_HELLO = 53
-    delta 10 In_ECDH_CLIENT_KEY_EXCHANGE = 64
-    delta 10 In_CHANGE_CIPHER_SPEC = 3
-    delta 10 In_FINISHED = 33
-    delta 10 In_APPLICATION = 3
-    delta 10 In_CERTIFICATE = 35
-    delta 10 In_EMPTY_CERTIFICATE = 36
-    delta 10 In_CERTIFICATE_VERIFY = 34
-    delta 10 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 10 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 63 In_ECDH_CLIENT_HELLO = 4
-    delta 63 In_ECDH_CLIENT_KEY_EXCHANGE = 32
-    delta 63 In_CHANGE_CIPHER_SPEC = 4
-    delta 63 In_FINISHED = 26
-    delta 63 In_APPLICATION = 3
-    delta 63 In_CERTIFICATE = 37
-    delta 63 In_EMPTY_CERTIFICATE = 38
-    delta 63 In_CERTIFICATE_VERIFY = 32
-    delta 63 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 63 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 61 In_ECDH_CLIENT_HELLO = 45
-    delta 61 In_ECDH_CLIENT_KEY_EXCHANGE = 29
-    delta 61 In_CHANGE_CIPHER_SPEC = 4
-    delta 61 In_FINISHED = 26
-    delta 61 In_APPLICATION = 3
-    delta 61 In_CERTIFICATE = 22
-    delta 61 In_EMPTY_CERTIFICATE = 27
-    delta 61 In_CERTIFICATE_VERIFY = 63
-    delta 61 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 61 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 30 In_ECDH_CLIENT_HELLO = 45
-    delta 30 In_ECDH_CLIENT_KEY_EXCHANGE = 29
-    delta 30 In_CHANGE_CIPHER_SPEC = 4
-    delta 30 In_FINISHED = 4
-    delta 30 In_APPLICATION = 3
-    delta 30 In_CERTIFICATE = 22
-    delta 30 In_EMPTY_CERTIFICATE = 27
-    delta 30 In_CERTIFICATE_VERIFY = 4
-    delta 30 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 30 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 64 In_ECDH_CLIENT_HELLO = 43
-    delta 64 In_ECDH_CLIENT_KEY_EXCHANGE = 20
-    delta 64 In_CHANGE_CIPHER_SPEC = 65
-    delta 64 In_FINISHED = 15
-    delta 64 In_APPLICATION = 3
-    delta 64 In_CERTIFICATE = 16
-    delta 64 In_EMPTY_CERTIFICATE = 17
-    delta 64 In_CERTIFICATE_VERIFY = 4
-    delta 64 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 64 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 65 In_ECDH_CLIENT_HELLO = 45
-    delta 65 In_ECDH_CLIENT_KEY_EXCHANGE = 29
-    delta 65 In_CHANGE_CIPHER_SPEC = 4
-    delta 65 In_FINISHED = 26
-    delta 65 In_APPLICATION = 3
-    delta 65 In_CERTIFICATE = 22
-    delta 65 In_EMPTY_CERTIFICATE = 27
-    delta 65 In_CERTIFICATE_VERIFY = 4
-    delta 65 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 65 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta _ _ = error "haal-gen: undefined transition"
-    lambda 0 In_ECDH_CLIENT_HELLO = Out_HELLO_VERIFY_REQUEST
-    lambda 0 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 0 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 0 In_FINISHED = Out_TIMEOUT
-    lambda 0 In_APPLICATION = Out_TIMEOUT
-    lambda 0 In_CERTIFICATE = Out_TIMEOUT
-    lambda 0 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 0 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 0 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 0 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 4 In_ECDH_CLIENT_HELLO = Out_SOCKET_CLOSED
-    lambda 4 In_ECDH_CLIENT_KEY_EXCHANGE = Out_SOCKET_CLOSED
-    lambda 4 In_CHANGE_CIPHER_SPEC = Out_SOCKET_CLOSED
-    lambda 4 In_FINISHED = Out_SOCKET_CLOSED
-    lambda 4 In_APPLICATION = Out_SOCKET_CLOSED
-    lambda 4 In_CERTIFICATE = Out_SOCKET_CLOSED
-    lambda 4 In_EMPTY_CERTIFICATE = Out_SOCKET_CLOSED
-    lambda 4 In_CERTIFICATE_VERIFY = Out_SOCKET_CLOSED
-    lambda 4 In_Alert_WARNING_CLOSE_NOTIFY = Out_SOCKET_CLOSED
-    lambda 4 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_SOCKET_CLOSED
-    lambda 1 In_ECDH_CLIENT_HELLO = Out_SERVER_HELLO_CERTIFICATE_ECDHE_SERVER_KEY_EXCHANGE_CERTIFICATE_REQUEST_SERVER_HELLO_DONE
-    lambda 1 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 1 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 1 In_FINISHED = Out_TIMEOUT
-    lambda 1 In_APPLICATION = Out_TIMEOUT
-    lambda 1 In_CERTIFICATE = Out_TIMEOUT
-    lambda 1 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 1 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 1 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 1 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 2 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 2 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 2 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 2 In_FINISHED = Out_TIMEOUT
-    lambda 2 In_APPLICATION = Out_TIMEOUT
-    lambda 2 In_CERTIFICATE = Out_TIMEOUT
-    lambda 2 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 2 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 2 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 2 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 3 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 3 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 3 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 3 In_FINISHED = Out_TIMEOUT
-    lambda 3 In_APPLICATION = Out_TIMEOUT
-    lambda 3 In_CERTIFICATE = Out_TIMEOUT
-    lambda 3 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 3 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 3 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 3 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 5 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 5 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 5 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 5 In_FINISHED = Out_TIMEOUT
-    lambda 5 In_APPLICATION = Out_TIMEOUT
-    lambda 5 In_CERTIFICATE = Out_TIMEOUT
-    lambda 5 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 5 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 5 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 5 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 7 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 7 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 7 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 7 In_FINISHED = Out_CHANGE_CIPHER_SPEC_FINISHED
-    lambda 7 In_APPLICATION = Out_TIMEOUT
-    lambda 7 In_CERTIFICATE = Out_TIMEOUT
-    lambda 7 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 7 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_NO_CERTIFICATE_RESERVED
-    lambda 7 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 7 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 13 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 13 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 13 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 13 In_FINISHED = Out_Alert_FATAL_HANDSHAKE_FAILURE
-    lambda 13 In_APPLICATION = Out_TIMEOUT
-    lambda 13 In_CERTIFICATE = Out_TIMEOUT
-    lambda 13 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 13 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_NO_CERTIFICATE_RESERVED
-    lambda 13 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 13 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 8 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 8 In_ECDH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_HANDSHAKE_FAILURE
-    lambda 8 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 8 In_FINISHED = Out_TIMEOUT
-    lambda 8 In_APPLICATION = Out_TIMEOUT
-    lambda 8 In_CERTIFICATE = Out_TIMEOUT
-    lambda 8 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 8 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 8 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 8 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 16 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 16 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 16 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 16 In_FINISHED = Out_TIMEOUT
-    lambda 16 In_APPLICATION = Out_TIMEOUT
-    lambda 16 In_CERTIFICATE = Out_TIMEOUT
-    lambda 16 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 16 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 16 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 16 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 14 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 14 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 14 In_CHANGE_CIPHER_SPEC = Out_Alert_FATAL_DECODE_ERROR
-    lambda 14 In_FINISHED = Out_CHANGE_CIPHER_SPEC_FINISHED
-    lambda 14 In_APPLICATION = Out_TIMEOUT
-    lambda 14 In_CERTIFICATE = Out_TIMEOUT
-    lambda 14 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 14 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_NO_CERTIFICATE_RESERVED
-    lambda 14 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 14 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 25 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 25 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 25 In_CHANGE_CIPHER_SPEC = Out_Alert_FATAL_DECODE_ERROR
-    lambda 25 In_FINISHED = Out_Alert_FATAL_HANDSHAKE_FAILURE
-    lambda 25 In_APPLICATION = Out_TIMEOUT
-    lambda 25 In_CERTIFICATE = Out_TIMEOUT
-    lambda 25 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 25 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 25 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 25 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 27 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 27 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 27 In_CHANGE_CIPHER_SPEC = Out_Alert_FATAL_DECODE_ERROR
-    lambda 27 In_FINISHED = Out_TIMEOUT
-    lambda 27 In_APPLICATION = Out_TIMEOUT
-    lambda 27 In_CERTIFICATE = Out_TIMEOUT
-    lambda 27 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 27 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 27 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 27 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 19 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 19 In_ECDH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_HANDSHAKE_FAILURE
-    lambda 19 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 19 In_FINISHED = Out_TIMEOUT
-    lambda 19 In_APPLICATION = Out_TIMEOUT
-    lambda 19 In_CERTIFICATE = Out_TIMEOUT
-    lambda 19 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 19 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 19 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 19 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 6 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 6 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 6 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 6 In_FINISHED = Out_TIMEOUT
-    lambda 6 In_APPLICATION = Out_TIMEOUT
-    lambda 6 In_CERTIFICATE = Out_TIMEOUT
-    lambda 6 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 6 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 6 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 6 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 20 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 20 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 20 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 20 In_FINISHED = Out_TIMEOUT
-    lambda 20 In_APPLICATION = Out_TIMEOUT
-    lambda 20 In_CERTIFICATE = Out_TIMEOUT
-    lambda 20 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 20 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 20 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 20 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 26 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 26 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 26 In_CHANGE_CIPHER_SPEC = Out_Alert_FATAL_DECODE_ERROR
-    lambda 26 In_FINISHED = Out_TIMEOUT
-    lambda 26 In_APPLICATION = Out_APPLICATION
-    lambda 26 In_CERTIFICATE = Out_TIMEOUT
-    lambda 26 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 26 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 26 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 26 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 32 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 32 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 32 In_CHANGE_CIPHER_SPEC = Out_Alert_FATAL_DECODE_ERROR
-    lambda 32 In_FINISHED = Out_TIMEOUT
-    lambda 32 In_APPLICATION = Out_TIMEOUT
-    lambda 32 In_CERTIFICATE = Out_TIMEOUT
-    lambda 32 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 32 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 32 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 32 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 15 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 15 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 15 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 15 In_FINISHED = Out_TIMEOUT
-    lambda 15 In_APPLICATION = Out_APPLICATION
-    lambda 15 In_CERTIFICATE = Out_TIMEOUT
-    lambda 15 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 15 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 15 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 15 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 23 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 23 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 23 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 23 In_FINISHED = Out_TIMEOUT
-    lambda 23 In_APPLICATION = Out_TIMEOUT
-    lambda 23 In_CERTIFICATE = Out_TIMEOUT
-    lambda 23 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 23 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 23 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 23 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 24 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 24 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 24 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 24 In_FINISHED = Out_TIMEOUT
-    lambda 24 In_APPLICATION = Out_TIMEOUT
-    lambda 24 In_CERTIFICATE = Out_TIMEOUT
-    lambda 24 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 24 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 24 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 24 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 18 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 18 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 18 In_CHANGE_CIPHER_SPEC = Out_Alert_FATAL_DECODE_ERROR
-    lambda 18 In_FINISHED = Out_Alert_FATAL_HANDSHAKE_FAILURE
-    lambda 18 In_APPLICATION = Out_TIMEOUT
-    lambda 18 In_CERTIFICATE = Out_TIMEOUT
-    lambda 18 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 18 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_NO_CERTIFICATE_RESERVED
-    lambda 18 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 18 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 33 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 33 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 33 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 33 In_FINISHED = Out_TIMEOUT
-    lambda 33 In_APPLICATION = Out_TIMEOUT
-    lambda 33 In_CERTIFICATE = Out_TIMEOUT
-    lambda 33 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 33 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 33 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 33 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 12 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 12 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 12 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 12 In_FINISHED = Out_Alert_FATAL_HANDSHAKE_FAILURE
-    lambda 12 In_APPLICATION = Out_TIMEOUT
-    lambda 12 In_CERTIFICATE = Out_TIMEOUT
-    lambda 12 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 12 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 12 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 12 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 21 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 21 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 21 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 21 In_FINISHED = Out_Alert_FATAL_HANDSHAKE_FAILURE
-    lambda 21 In_APPLICATION = Out_TIMEOUT
-    lambda 21 In_CERTIFICATE = Out_TIMEOUT
-    lambda 21 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 21 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_BAD_CERTIFICATE
-    lambda 21 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 21 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 44 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 44 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 44 In_CHANGE_CIPHER_SPEC = Out_Alert_FATAL_DECODE_ERROR
-    lambda 44 In_FINISHED = Out_Alert_FATAL_HANDSHAKE_FAILURE
-    lambda 44 In_APPLICATION = Out_TIMEOUT
-    lambda 44 In_CERTIFICATE = Out_TIMEOUT
-    lambda 44 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 44 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_BAD_CERTIFICATE
-    lambda 44 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 44 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 41 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 41 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 41 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 41 In_FINISHED = Out_TIMEOUT
-    lambda 41 In_APPLICATION = Out_TIMEOUT
-    lambda 41 In_CERTIFICATE = Out_TIMEOUT
-    lambda 41 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 41 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 41 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 41 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 46 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 46 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 46 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 46 In_FINISHED = Out_TIMEOUT
-    lambda 46 In_APPLICATION = Out_TIMEOUT
-    lambda 46 In_CERTIFICATE = Out_TIMEOUT
-    lambda 46 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 46 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_NO_CERTIFICATE_RESERVED
-    lambda 46 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 46 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 40 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 40 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 40 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 40 In_FINISHED = Out_TIMEOUT
-    lambda 40 In_APPLICATION = Out_TIMEOUT
-    lambda 40 In_CERTIFICATE = Out_TIMEOUT
-    lambda 40 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 40 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 40 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 40 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 48 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 48 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 48 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 48 In_FINISHED = Out_TIMEOUT
-    lambda 48 In_APPLICATION = Out_TIMEOUT
-    lambda 48 In_CERTIFICATE = Out_TIMEOUT
-    lambda 48 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 48 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_BAD_CERTIFICATE
-    lambda 48 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 48 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 39 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 39 In_ECDH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_HANDSHAKE_FAILURE
-    lambda 39 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 39 In_FINISHED = Out_TIMEOUT
-    lambda 39 In_APPLICATION = Out_TIMEOUT
-    lambda 39 In_CERTIFICATE = Out_TIMEOUT
-    lambda 39 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 39 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 39 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 39 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 50 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 50 In_ECDH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_HANDSHAKE_FAILURE
-    lambda 50 In_CHANGE_CIPHER_SPEC = Out_Alert_FATAL_DECODE_ERROR
-    lambda 50 In_FINISHED = Out_TIMEOUT
-    lambda 50 In_APPLICATION = Out_TIMEOUT
-    lambda 50 In_CERTIFICATE = Out_TIMEOUT
-    lambda 50 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 50 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 50 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 50 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 47 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 47 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 47 In_CHANGE_CIPHER_SPEC = Out_Alert_FATAL_DECODE_ERROR
-    lambda 47 In_FINISHED = Out_TIMEOUT
-    lambda 47 In_APPLICATION = Out_TIMEOUT
-    lambda 47 In_CERTIFICATE = Out_TIMEOUT
-    lambda 47 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 47 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_NO_CERTIFICATE_RESERVED
-    lambda 47 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 47 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 49 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 49 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 49 In_CHANGE_CIPHER_SPEC = Out_Alert_FATAL_DECODE_ERROR
-    lambda 49 In_FINISHED = Out_TIMEOUT
-    lambda 49 In_APPLICATION = Out_TIMEOUT
-    lambda 49 In_CERTIFICATE = Out_TIMEOUT
-    lambda 49 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 49 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_BAD_CERTIFICATE
-    lambda 49 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 49 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 17 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 17 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 17 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 17 In_FINISHED = Out_TIMEOUT
-    lambda 17 In_APPLICATION = Out_TIMEOUT
-    lambda 17 In_CERTIFICATE = Out_TIMEOUT
-    lambda 17 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 17 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 17 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 17 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 31 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 31 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 31 In_CHANGE_CIPHER_SPEC = Out_Alert_FATAL_DECODE_ERROR
-    lambda 31 In_FINISHED = Out_TIMEOUT
-    lambda 31 In_APPLICATION = Out_TIMEOUT
-    lambda 31 In_CERTIFICATE = Out_TIMEOUT
-    lambda 31 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 31 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 31 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 31 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 29 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 29 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 29 In_CHANGE_CIPHER_SPEC = Out_Alert_FATAL_DECODE_ERROR
-    lambda 29 In_FINISHED = Out_TIMEOUT
-    lambda 29 In_APPLICATION = Out_TIMEOUT
-    lambda 29 In_CERTIFICATE = Out_TIMEOUT
-    lambda 29 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 29 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 29 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 29 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 37 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 37 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 37 In_CHANGE_CIPHER_SPEC = Out_Alert_FATAL_DECODE_ERROR
-    lambda 37 In_FINISHED = Out_TIMEOUT
-    lambda 37 In_APPLICATION = Out_TIMEOUT
-    lambda 37 In_CERTIFICATE = Out_TIMEOUT
-    lambda 37 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 37 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 37 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 37 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 28 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 28 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 28 In_CHANGE_CIPHER_SPEC = Out_Alert_FATAL_DECODE_ERROR
-    lambda 28 In_FINISHED = Out_TIMEOUT
-    lambda 28 In_APPLICATION = Out_TIMEOUT
-    lambda 28 In_CERTIFICATE = Out_TIMEOUT
-    lambda 28 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 28 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 28 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 28 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 43 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 43 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 43 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 43 In_FINISHED = Out_Alert_FATAL_HANDSHAKE_FAILURE
-    lambda 43 In_APPLICATION = Out_TIMEOUT
-    lambda 43 In_CERTIFICATE = Out_TIMEOUT
-    lambda 43 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 43 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 43 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 43 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 45 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 45 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 45 In_CHANGE_CIPHER_SPEC = Out_Alert_FATAL_DECODE_ERROR
-    lambda 45 In_FINISHED = Out_Alert_FATAL_HANDSHAKE_FAILURE
-    lambda 45 In_APPLICATION = Out_TIMEOUT
-    lambda 45 In_CERTIFICATE = Out_TIMEOUT
-    lambda 45 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 45 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 45 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 45 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 22 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 22 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 22 In_CHANGE_CIPHER_SPEC = Out_Alert_FATAL_DECODE_ERROR
-    lambda 22 In_FINISHED = Out_TIMEOUT
-    lambda 22 In_APPLICATION = Out_TIMEOUT
-    lambda 22 In_CERTIFICATE = Out_TIMEOUT
-    lambda 22 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 22 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 22 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 22 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 38 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 38 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 38 In_CHANGE_CIPHER_SPEC = Out_Alert_FATAL_DECODE_ERROR
-    lambda 38 In_FINISHED = Out_TIMEOUT
-    lambda 38 In_APPLICATION = Out_TIMEOUT
-    lambda 38 In_CERTIFICATE = Out_TIMEOUT
-    lambda 38 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 38 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 38 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 38 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 52 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 52 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 52 In_CHANGE_CIPHER_SPEC = Out_Alert_FATAL_DECODE_ERROR
-    lambda 52 In_FINISHED = Out_TIMEOUT
-    lambda 52 In_APPLICATION = Out_TIMEOUT
-    lambda 52 In_CERTIFICATE = Out_TIMEOUT
-    lambda 52 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 52 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_NO_CERTIFICATE_RESERVED
-    lambda 52 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 52 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 35 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 35 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 35 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 35 In_FINISHED = Out_TIMEOUT
-    lambda 35 In_APPLICATION = Out_TIMEOUT
-    lambda 35 In_CERTIFICATE = Out_TIMEOUT
-    lambda 35 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 35 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 35 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 35 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 53 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 53 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 53 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 53 In_FINISHED = Out_TIMEOUT
-    lambda 53 In_APPLICATION = Out_TIMEOUT
-    lambda 53 In_CERTIFICATE = Out_TIMEOUT
-    lambda 53 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 53 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 53 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 53 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 42 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 42 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 42 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 42 In_FINISHED = Out_TIMEOUT
-    lambda 42 In_APPLICATION = Out_TIMEOUT
-    lambda 42 In_CERTIFICATE = Out_TIMEOUT
-    lambda 42 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 42 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 42 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 42 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 54 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 54 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 54 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 54 In_FINISHED = Out_TIMEOUT
-    lambda 54 In_APPLICATION = Out_TIMEOUT
-    lambda 54 In_CERTIFICATE = Out_TIMEOUT
-    lambda 54 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 54 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_NO_CERTIFICATE_RESERVED
-    lambda 54 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 54 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 51 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 51 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 51 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 51 In_FINISHED = Out_Alert_FATAL_HANDSHAKE_FAILURE
-    lambda 51 In_APPLICATION = Out_TIMEOUT
-    lambda 51 In_CERTIFICATE = Out_TIMEOUT
-    lambda 51 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 51 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_NO_CERTIFICATE_RESERVED
-    lambda 51 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 51 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 36 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 36 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 36 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 36 In_FINISHED = Out_TIMEOUT
-    lambda 36 In_APPLICATION = Out_TIMEOUT
-    lambda 36 In_CERTIFICATE = Out_TIMEOUT
-    lambda 36 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 36 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 36 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 36 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 11 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 11 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 11 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 11 In_FINISHED = Out_TIMEOUT
-    lambda 11 In_APPLICATION = Out_TIMEOUT
-    lambda 11 In_CERTIFICATE = Out_TIMEOUT
-    lambda 11 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 11 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 11 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 11 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 55 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 55 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 55 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 55 In_FINISHED = Out_TIMEOUT
-    lambda 55 In_APPLICATION = Out_TIMEOUT
-    lambda 55 In_CERTIFICATE = Out_TIMEOUT
-    lambda 55 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 55 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_NO_CERTIFICATE_RESERVED
-    lambda 55 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 55 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 56 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 56 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 56 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 56 In_FINISHED = Out_TIMEOUT
-    lambda 56 In_APPLICATION = Out_TIMEOUT
-    lambda 56 In_CERTIFICATE = Out_TIMEOUT
-    lambda 56 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 56 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 56 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 56 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 58 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 58 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 58 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 58 In_FINISHED = Out_TIMEOUT
-    lambda 58 In_APPLICATION = Out_TIMEOUT
-    lambda 58 In_CERTIFICATE = Out_TIMEOUT
-    lambda 58 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 58 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_BAD_CERTIFICATE
-    lambda 58 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 58 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 57 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 57 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 57 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 57 In_FINISHED = Out_TIMEOUT
-    lambda 57 In_APPLICATION = Out_TIMEOUT
-    lambda 57 In_CERTIFICATE = Out_TIMEOUT
-    lambda 57 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 57 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 57 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 57 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 9 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 9 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 9 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 9 In_FINISHED = Out_TIMEOUT
-    lambda 9 In_APPLICATION = Out_TIMEOUT
-    lambda 9 In_CERTIFICATE = Out_TIMEOUT
-    lambda 9 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 9 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 9 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 9 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 34 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 34 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 34 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 34 In_FINISHED = Out_TIMEOUT
-    lambda 34 In_APPLICATION = Out_TIMEOUT
-    lambda 34 In_CERTIFICATE = Out_TIMEOUT
-    lambda 34 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 34 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 34 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 34 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 59 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 59 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 59 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 59 In_FINISHED = Out_TIMEOUT
-    lambda 59 In_APPLICATION = Out_TIMEOUT
-    lambda 59 In_CERTIFICATE = Out_TIMEOUT
-    lambda 59 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 59 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_NO_CERTIFICATE_RESERVED
-    lambda 59 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 59 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 60 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 60 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 60 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 60 In_FINISHED = Out_CHANGE_CIPHER_SPEC_FINISHED
-    lambda 60 In_APPLICATION = Out_TIMEOUT
-    lambda 60 In_CERTIFICATE = Out_TIMEOUT
-    lambda 60 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 60 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 60 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 60 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 62 In_ECDH_CLIENT_HELLO = Out_Alert_FATAL_BAD_CERTIFICATE
-    lambda 62 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 62 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 62 In_FINISHED = Out_CHANGE_CIPHER_SPEC_FINISHED
-    lambda 62 In_APPLICATION = Out_TIMEOUT
-    lambda 62 In_CERTIFICATE = Out_TIMEOUT
-    lambda 62 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 62 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 62 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 62 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 10 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 10 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 10 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 10 In_FINISHED = Out_TIMEOUT
-    lambda 10 In_APPLICATION = Out_TIMEOUT
-    lambda 10 In_CERTIFICATE = Out_TIMEOUT
-    lambda 10 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 10 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 10 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 10 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 63 In_ECDH_CLIENT_HELLO = Out_Alert_FATAL_BAD_CERTIFICATE
-    lambda 63 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 63 In_CHANGE_CIPHER_SPEC = Out_Alert_FATAL_DECODE_ERROR
-    lambda 63 In_FINISHED = Out_CHANGE_CIPHER_SPEC_FINISHED
-    lambda 63 In_APPLICATION = Out_TIMEOUT
-    lambda 63 In_CERTIFICATE = Out_TIMEOUT
-    lambda 63 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 63 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 63 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 63 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 61 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 61 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 61 In_CHANGE_CIPHER_SPEC = Out_Alert_FATAL_DECODE_ERROR
-    lambda 61 In_FINISHED = Out_CHANGE_CIPHER_SPEC_FINISHED
-    lambda 61 In_APPLICATION = Out_TIMEOUT
-    lambda 61 In_CERTIFICATE = Out_TIMEOUT
-    lambda 61 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 61 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 61 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 61 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 30 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 30 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 30 In_CHANGE_CIPHER_SPEC = Out_Alert_FATAL_DECODE_ERROR
-    lambda 30 In_FINISHED = Out_Alert_FATAL_HANDSHAKE_FAILURE
-    lambda 30 In_APPLICATION = Out_TIMEOUT
-    lambda 30 In_CERTIFICATE = Out_TIMEOUT
-    lambda 30 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 30 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_NO_CERTIFICATE_RESERVED
-    lambda 30 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 30 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 64 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 64 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 64 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 64 In_FINISHED = Out_CHANGE_CIPHER_SPEC_FINISHED
-    lambda 64 In_APPLICATION = Out_TIMEOUT
-    lambda 64 In_CERTIFICATE = Out_TIMEOUT
-    lambda 64 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 64 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_NO_CERTIFICATE_RESERVED
-    lambda 64 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 64 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 65 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 65 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 65 In_CHANGE_CIPHER_SPEC = Out_Alert_FATAL_DECODE_ERROR
-    lambda 65 In_FINISHED = Out_CHANGE_CIPHER_SPEC_FINISHED
-    lambda 65 In_APPLICATION = Out_TIMEOUT
-    lambda 65 In_CERTIFICATE = Out_TIMEOUT
-    lambda 65 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 65 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_NO_CERTIFICATE_RESERVED
-    lambda 65 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 65 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda _ _ = error "haal-gen: undefined transition"
+import Haal.Automaton.MealyAutomaton (MealyAutomaton, mkMealyAutomatonTable)
+
+data PionEcdheCertNreqInput
+    = In_ECDH_CLIENT_HELLO
+    | In_ECDH_CLIENT_KEY_EXCHANGE
+    | In_CHANGE_CIPHER_SPEC
+    | In_FINISHED
+    | In_APPLICATION
+    | In_CERTIFICATE
+    | In_EMPTY_CERTIFICATE
+    | In_CERTIFICATE_VERIFY
+    | In_Alert_WARNING_CLOSE_NOTIFY
+    | In_Alert_FATAL_UNEXPECTED_MESSAGE
+    deriving (Show, Eq, Ord, Enum, Bounded)
+
+data PionEcdheCertNreqOutput
+    = Out_HELLO_VERIFY_REQUEST
+    | Out_TIMEOUT
+    | Out_Alert_FATAL_CLOSE_NOTIFY
+    | Out_SOCKET_CLOSED
+    | Out_SERVER_HELLO_CERTIFICATE_ECDHE_SERVER_KEY_EXCHANGE_CERTIFICATE_REQUEST_SERVER_HELLO_DONE
+    | Out_CHANGE_CIPHER_SPEC_FINISHED
+    | Out_Alert_FATAL_NO_CERTIFICATE_RESERVED
+    | Out_Alert_FATAL_HANDSHAKE_FAILURE
+    | Out_Alert_FATAL_DECODE_ERROR
+    | Out_APPLICATION
+    | Out_Alert_FATAL_BAD_CERTIFICATE
+    deriving (Show, Eq, Ord, Enum, Bounded)
+
+{- Transitions (state  input -> next state / output):
+    0     In_ECDH_CLIENT_HELLO               -> 1 / Out_HELLO_VERIFY_REQUEST
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 2 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 2 / Out_TIMEOUT
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 2 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 2 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 2 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    1     In_ECDH_CLIENT_HELLO               -> 5 / Out_SERVER_HELLO_CERTIFICATE_ECDHE_SERVER_KEY_EXCHANGE_CERTIFICATE_REQUEST_SERVER_HELLO_DONE
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 2 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 2 / Out_TIMEOUT
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 2 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 2 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 2 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    2     In_ECDH_CLIENT_HELLO               -> 2 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 2 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 2 / Out_TIMEOUT
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 2 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 2 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 2 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    3     In_ECDH_CLIENT_HELLO               -> 3 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 3 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 3 / Out_TIMEOUT
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 3 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 3 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 3 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 3 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 3 / Out_TIMEOUT
+    4     In_ECDH_CLIENT_HELLO               -> 4 / Out_SOCKET_CLOSED
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 4 / Out_SOCKET_CLOSED
+          In_CHANGE_CIPHER_SPEC              -> 4 / Out_SOCKET_CLOSED
+          In_FINISHED                        -> 4 / Out_SOCKET_CLOSED
+          In_APPLICATION                     -> 4 / Out_SOCKET_CLOSED
+          In_CERTIFICATE                     -> 4 / Out_SOCKET_CLOSED
+          In_EMPTY_CERTIFICATE               -> 4 / Out_SOCKET_CLOSED
+          In_CERTIFICATE_VERIFY              -> 4 / Out_SOCKET_CLOSED
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_SOCKET_CLOSED
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_SOCKET_CLOSED
+    5     In_ECDH_CLIENT_HELLO               -> 6 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 7 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 8 / Out_TIMEOUT
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 9 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 10 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 11 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    6     In_ECDH_CLIENT_HELLO               -> 6 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 13 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 8 / Out_TIMEOUT
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 35 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 36 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 11 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    7     In_ECDH_CLIENT_HELLO               -> 12 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 13 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 14 / Out_TIMEOUT
+          In_FINISHED                        -> 15 / Out_CHANGE_CIPHER_SPEC_FINISHED
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 16 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 17 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 4 / Out_Alert_FATAL_NO_CERTIFICATE_RESERVED
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    8     In_ECDH_CLIENT_HELLO               -> 8 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 4 / Out_Alert_FATAL_HANDSHAKE_FAILURE
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 8 / Out_TIMEOUT
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 19 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 19 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 11 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    9     In_ECDH_CLIENT_HELLO               -> 53 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 60 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 33 / Out_TIMEOUT
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 35 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 36 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 34 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    10    In_ECDH_CLIENT_HELLO               -> 53 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 64 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 33 / Out_TIMEOUT
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 35 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 36 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 34 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    11    In_ECDH_CLIENT_HELLO               -> 11 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 55 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 11 / Out_TIMEOUT
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 56 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 57 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 11 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    12    In_ECDH_CLIENT_HELLO               -> 12 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 13 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 25 / Out_TIMEOUT
+          In_FINISHED                        -> 4 / Out_Alert_FATAL_HANDSHAKE_FAILURE
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 16 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 17 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 42 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    13    In_ECDH_CLIENT_HELLO               -> 12 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 13 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 18 / Out_TIMEOUT
+          In_FINISHED                        -> 4 / Out_Alert_FATAL_HANDSHAKE_FAILURE
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 16 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 17 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 4 / Out_Alert_FATAL_NO_CERTIFICATE_RESERVED
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    14    In_ECDH_CLIENT_HELLO               -> 25 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 18 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 4 / Out_Alert_FATAL_DECODE_ERROR
+          In_FINISHED                        -> 26 / Out_CHANGE_CIPHER_SPEC_FINISHED
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 22 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 27 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 4 / Out_Alert_FATAL_NO_CERTIFICATE_RESERVED
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    15    In_ECDH_CLIENT_HELLO               -> 15 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 15 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 26 / Out_TIMEOUT
+          In_FINISHED                        -> 15 / Out_TIMEOUT
+          In_APPLICATION                     -> 4 / Out_APPLICATION
+          In_CERTIFICATE                     -> 15 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 15 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 15 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    16    In_ECDH_CLIENT_HELLO               -> 20 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 21 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 22 / Out_TIMEOUT
+          In_FINISHED                        -> 23 / Out_TIMEOUT
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 16 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 17 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 24 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    17    In_ECDH_CLIENT_HELLO               -> 20 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 51 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 27 / Out_TIMEOUT
+          In_FINISHED                        -> 23 / Out_TIMEOUT
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 16 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 17 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 24 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    18    In_ECDH_CLIENT_HELLO               -> 25 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 18 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 4 / Out_Alert_FATAL_DECODE_ERROR
+          In_FINISHED                        -> 4 / Out_Alert_FATAL_HANDSHAKE_FAILURE
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 22 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 27 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 4 / Out_Alert_FATAL_NO_CERTIFICATE_RESERVED
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    19    In_ECDH_CLIENT_HELLO               -> 33 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 4 / Out_Alert_FATAL_HANDSHAKE_FAILURE
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 33 / Out_TIMEOUT
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 19 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 19 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 34 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    20    In_ECDH_CLIENT_HELLO               -> 20 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 20 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 29 / Out_TIMEOUT
+          In_FINISHED                        -> 23 / Out_TIMEOUT
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 16 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 17 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 24 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    21    In_ECDH_CLIENT_HELLO               -> 43 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 20 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 44 / Out_TIMEOUT
+          In_FINISHED                        -> 4 / Out_Alert_FATAL_HANDSHAKE_FAILURE
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 16 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 17 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 4 / Out_Alert_FATAL_BAD_CERTIFICATE
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    22    In_ECDH_CLIENT_HELLO               -> 29 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 44 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 4 / Out_Alert_FATAL_DECODE_ERROR
+          In_FINISHED                        -> 31 / Out_TIMEOUT
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 22 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 27 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 32 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    23    In_ECDH_CLIENT_HELLO               -> 23 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 23 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 31 / Out_TIMEOUT
+          In_FINISHED                        -> 23 / Out_TIMEOUT
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 39 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 39 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 24 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    24    In_ECDH_CLIENT_HELLO               -> 24 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 24 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 32 / Out_TIMEOUT
+          In_FINISHED                        -> 24 / Out_TIMEOUT
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 40 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 41 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 24 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    25    In_ECDH_CLIENT_HELLO               -> 25 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 18 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 4 / Out_Alert_FATAL_DECODE_ERROR
+          In_FINISHED                        -> 4 / Out_Alert_FATAL_HANDSHAKE_FAILURE
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 22 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 27 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 28 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    26    In_ECDH_CLIENT_HELLO               -> 26 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 26 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 4 / Out_Alert_FATAL_DECODE_ERROR
+          In_FINISHED                        -> 26 / Out_TIMEOUT
+          In_APPLICATION                     -> 4 / Out_APPLICATION
+          In_CERTIFICATE                     -> 26 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 26 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 26 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    27    In_ECDH_CLIENT_HELLO               -> 29 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 30 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 4 / Out_Alert_FATAL_DECODE_ERROR
+          In_FINISHED                        -> 31 / Out_TIMEOUT
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 22 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 27 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 32 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    28    In_ECDH_CLIENT_HELLO               -> 28 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 52 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 4 / Out_Alert_FATAL_DECODE_ERROR
+          In_FINISHED                        -> 28 / Out_TIMEOUT
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 37 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 38 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 28 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    29    In_ECDH_CLIENT_HELLO               -> 29 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 29 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 4 / Out_Alert_FATAL_DECODE_ERROR
+          In_FINISHED                        -> 31 / Out_TIMEOUT
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 22 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 27 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 32 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    30    In_ECDH_CLIENT_HELLO               -> 45 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 29 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 4 / Out_Alert_FATAL_DECODE_ERROR
+          In_FINISHED                        -> 4 / Out_Alert_FATAL_HANDSHAKE_FAILURE
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 22 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 27 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 4 / Out_Alert_FATAL_NO_CERTIFICATE_RESERVED
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    31    In_ECDH_CLIENT_HELLO               -> 31 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 31 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 4 / Out_Alert_FATAL_DECODE_ERROR
+          In_FINISHED                        -> 31 / Out_TIMEOUT
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 50 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 50 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 32 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    32    In_ECDH_CLIENT_HELLO               -> 32 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 32 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 4 / Out_Alert_FATAL_DECODE_ERROR
+          In_FINISHED                        -> 32 / Out_TIMEOUT
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 37 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 38 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 32 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    33    In_ECDH_CLIENT_HELLO               -> 33 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 33 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 33 / Out_TIMEOUT
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 19 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 19 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 34 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    34    In_ECDH_CLIENT_HELLO               -> 34 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 34 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 34 / Out_TIMEOUT
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 56 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 57 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 34 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    35    In_ECDH_CLIENT_HELLO               -> 53 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 21 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 33 / Out_TIMEOUT
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 35 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 36 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 34 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    36    In_ECDH_CLIENT_HELLO               -> 53 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 51 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 33 / Out_TIMEOUT
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 35 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 36 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 34 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    37    In_ECDH_CLIENT_HELLO               -> 32 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 49 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 4 / Out_Alert_FATAL_DECODE_ERROR
+          In_FINISHED                        -> 32 / Out_TIMEOUT
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 37 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 38 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 32 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    38    In_ECDH_CLIENT_HELLO               -> 32 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 47 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 4 / Out_Alert_FATAL_DECODE_ERROR
+          In_FINISHED                        -> 32 / Out_TIMEOUT
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 37 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 38 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 32 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    39    In_ECDH_CLIENT_HELLO               -> 23 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 4 / Out_Alert_FATAL_HANDSHAKE_FAILURE
+          In_CHANGE_CIPHER_SPEC              -> 50 / Out_TIMEOUT
+          In_FINISHED                        -> 23 / Out_TIMEOUT
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 39 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 39 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 24 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    40    In_ECDH_CLIENT_HELLO               -> 24 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 48 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 37 / Out_TIMEOUT
+          In_FINISHED                        -> 24 / Out_TIMEOUT
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 40 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 41 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 24 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    41    In_ECDH_CLIENT_HELLO               -> 24 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 46 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 38 / Out_TIMEOUT
+          In_FINISHED                        -> 24 / Out_TIMEOUT
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 40 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 41 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 24 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    42    In_ECDH_CLIENT_HELLO               -> 42 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 54 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 28 / Out_TIMEOUT
+          In_FINISHED                        -> 42 / Out_TIMEOUT
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 40 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 41 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 42 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    43    In_ECDH_CLIENT_HELLO               -> 43 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 20 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 45 / Out_TIMEOUT
+          In_FINISHED                        -> 4 / Out_Alert_FATAL_HANDSHAKE_FAILURE
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 16 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 17 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 24 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    44    In_ECDH_CLIENT_HELLO               -> 45 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 29 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 4 / Out_Alert_FATAL_DECODE_ERROR
+          In_FINISHED                        -> 4 / Out_Alert_FATAL_HANDSHAKE_FAILURE
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 22 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 27 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 4 / Out_Alert_FATAL_BAD_CERTIFICATE
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    45    In_ECDH_CLIENT_HELLO               -> 45 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 29 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 4 / Out_Alert_FATAL_DECODE_ERROR
+          In_FINISHED                        -> 4 / Out_Alert_FATAL_HANDSHAKE_FAILURE
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 22 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 27 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 32 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    46    In_ECDH_CLIENT_HELLO               -> 24 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 24 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 47 / Out_TIMEOUT
+          In_FINISHED                        -> 24 / Out_TIMEOUT
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 40 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 41 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 4 / Out_Alert_FATAL_NO_CERTIFICATE_RESERVED
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    47    In_ECDH_CLIENT_HELLO               -> 32 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 32 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 4 / Out_Alert_FATAL_DECODE_ERROR
+          In_FINISHED                        -> 32 / Out_TIMEOUT
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 37 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 38 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 4 / Out_Alert_FATAL_NO_CERTIFICATE_RESERVED
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    48    In_ECDH_CLIENT_HELLO               -> 24 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 24 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 49 / Out_TIMEOUT
+          In_FINISHED                        -> 24 / Out_TIMEOUT
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 40 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 41 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 4 / Out_Alert_FATAL_BAD_CERTIFICATE
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    49    In_ECDH_CLIENT_HELLO               -> 32 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 32 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 4 / Out_Alert_FATAL_DECODE_ERROR
+          In_FINISHED                        -> 32 / Out_TIMEOUT
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 37 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 38 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 4 / Out_Alert_FATAL_BAD_CERTIFICATE
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    50    In_ECDH_CLIENT_HELLO               -> 31 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 4 / Out_Alert_FATAL_HANDSHAKE_FAILURE
+          In_CHANGE_CIPHER_SPEC              -> 4 / Out_Alert_FATAL_DECODE_ERROR
+          In_FINISHED                        -> 31 / Out_TIMEOUT
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 50 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 50 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 32 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    51    In_ECDH_CLIENT_HELLO               -> 43 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 20 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 30 / Out_TIMEOUT
+          In_FINISHED                        -> 4 / Out_Alert_FATAL_HANDSHAKE_FAILURE
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 16 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 17 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 4 / Out_Alert_FATAL_NO_CERTIFICATE_RESERVED
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    52    In_ECDH_CLIENT_HELLO               -> 28 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 52 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 4 / Out_Alert_FATAL_DECODE_ERROR
+          In_FINISHED                        -> 28 / Out_TIMEOUT
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 37 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 38 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 4 / Out_Alert_FATAL_NO_CERTIFICATE_RESERVED
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    53    In_ECDH_CLIENT_HELLO               -> 53 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 53 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 33 / Out_TIMEOUT
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 35 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 36 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 34 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    54    In_ECDH_CLIENT_HELLO               -> 42 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 54 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 52 / Out_TIMEOUT
+          In_FINISHED                        -> 42 / Out_TIMEOUT
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 40 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 41 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 4 / Out_Alert_FATAL_NO_CERTIFICATE_RESERVED
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    55    In_ECDH_CLIENT_HELLO               -> 11 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 55 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 11 / Out_TIMEOUT
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 56 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 57 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 4 / Out_Alert_FATAL_NO_CERTIFICATE_RESERVED
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    56    In_ECDH_CLIENT_HELLO               -> 34 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 58 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 34 / Out_TIMEOUT
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 56 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 57 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 34 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    57    In_ECDH_CLIENT_HELLO               -> 34 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 59 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 34 / Out_TIMEOUT
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 56 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 57 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 34 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    58    In_ECDH_CLIENT_HELLO               -> 34 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 34 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 34 / Out_TIMEOUT
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 56 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 57 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 4 / Out_Alert_FATAL_BAD_CERTIFICATE
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    59    In_ECDH_CLIENT_HELLO               -> 34 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 34 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 34 / Out_TIMEOUT
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 56 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 57 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 4 / Out_Alert_FATAL_NO_CERTIFICATE_RESERVED
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    60    In_ECDH_CLIENT_HELLO               -> 43 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 20 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 61 / Out_TIMEOUT
+          In_FINISHED                        -> 15 / Out_CHANGE_CIPHER_SPEC_FINISHED
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 16 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 17 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 62 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    61    In_ECDH_CLIENT_HELLO               -> 45 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 29 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 4 / Out_Alert_FATAL_DECODE_ERROR
+          In_FINISHED                        -> 26 / Out_CHANGE_CIPHER_SPEC_FINISHED
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 22 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 27 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 63 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    62    In_ECDH_CLIENT_HELLO               -> 4 / Out_Alert_FATAL_BAD_CERTIFICATE
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 24 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 63 / Out_TIMEOUT
+          In_FINISHED                        -> 15 / Out_CHANGE_CIPHER_SPEC_FINISHED
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 40 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 41 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 24 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    63    In_ECDH_CLIENT_HELLO               -> 4 / Out_Alert_FATAL_BAD_CERTIFICATE
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 32 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 4 / Out_Alert_FATAL_DECODE_ERROR
+          In_FINISHED                        -> 26 / Out_CHANGE_CIPHER_SPEC_FINISHED
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 37 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 38 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 32 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    64    In_ECDH_CLIENT_HELLO               -> 43 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 20 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 65 / Out_TIMEOUT
+          In_FINISHED                        -> 15 / Out_CHANGE_CIPHER_SPEC_FINISHED
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 16 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 17 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 4 / Out_Alert_FATAL_NO_CERTIFICATE_RESERVED
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    65    In_ECDH_CLIENT_HELLO               -> 45 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 29 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 4 / Out_Alert_FATAL_DECODE_ERROR
+          In_FINISHED                        -> 26 / Out_CHANGE_CIPHER_SPEC_FINISHED
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 22 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 27 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 4 / Out_Alert_FATAL_NO_CERTIFICATE_RESERVED
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+-}
+pionEcdheCertNreq :: MealyAutomaton Int PionEcdheCertNreqInput PionEcdheCertNreqOutput
+pionEcdheCertNreq =
+    case mkMealyAutomatonTable 66 0 deltaTable lambdaTable of
+        Right m -> m
+        Left err -> error ("haal-gen: invalid transition table: " ++ err)
+  where
+    deltaTable =
+        "\1\2\3\2\3\2\2\2\4\4\
+        \\5\2\3\2\3\2\2\2\4\4\
+        \\2\2\3\2\3\2\2\2\4\4\
+        \\3\3\3\3\3\3\3\3\3\3\
+        \\4\4\4\4\4\4\4\4\4\4\
+        \\6\7\3\8\3\9\10\11\4\4\
+        \\6\13\3\8\3\35\36\11\4\4\
+        \\12\13\14\15\3\16\17\4\4\4\
+        \\8\4\3\8\3\19\19\11\4\4\
+        \\53\60\3\33\3\35\36\34\4\4\
+        \\53\64\3\33\3\35\36\34\4\4\
+        \\11\55\3\11\3\56\57\11\4\4\
+        \\12\13\25\4\3\16\17\42\4\4\
+        \\12\13\18\4\3\16\17\4\4\4\
+        \\25\18\4\26\3\22\27\4\4\4\
+        \\15\15\26\15\4\15\15\15\4\4\
+        \\20\21\22\23\3\16\17\24\4\4\
+        \\20\51\27\23\3\16\17\24\4\4\
+        \\25\18\4\4\3\22\27\4\4\4\
+        \\33\4\3\33\3\19\19\34\4\4\
+        \\20\20\29\23\3\16\17\24\4\4\
+        \\43\20\44\4\3\16\17\4\4\4\
+        \\29\44\4\31\3\22\27\32\4\4\
+        \\23\23\31\23\3\39\39\24\4\4\
+        \\24\24\32\24\3\40\41\24\4\4\
+        \\25\18\4\4\3\22\27\28\4\4\
+        \\26\26\4\26\4\26\26\26\4\4\
+        \\29\30\4\31\3\22\27\32\4\4\
+        \\28\52\4\28\3\37\38\28\4\4\
+        \\29\29\4\31\3\22\27\32\4\4\
+        \\45\29\4\4\3\22\27\4\4\4\
+        \\31\31\4\31\3\50\50\32\4\4\
+        \\32\32\4\32\3\37\38\32\4\4\
+        \\33\33\3\33\3\19\19\34\4\4\
+        \\34\34\3\34\3\56\57\34\4\4\
+        \\53\21\3\33\3\35\36\34\4\4\
+        \\53\51\3\33\3\35\36\34\4\4\
+        \\32\49\4\32\3\37\38\32\4\4\
+        \\32\47\4\32\3\37\38\32\4\4\
+        \\23\4\50\23\3\39\39\24\4\4\
+        \\24\48\37\24\3\40\41\24\4\4\
+        \\24\46\38\24\3\40\41\24\4\4\
+        \\42\54\28\42\3\40\41\42\4\4\
+        \\43\20\45\4\3\16\17\24\4\4\
+        \\45\29\4\4\3\22\27\4\4\4\
+        \\45\29\4\4\3\22\27\32\4\4\
+        \\24\24\47\24\3\40\41\4\4\4\
+        \\32\32\4\32\3\37\38\4\4\4\
+        \\24\24\49\24\3\40\41\4\4\4\
+        \\32\32\4\32\3\37\38\4\4\4\
+        \\31\4\4\31\3\50\50\32\4\4\
+        \\43\20\30\4\3\16\17\4\4\4\
+        \\28\52\4\28\3\37\38\4\4\4\
+        \\53\53\3\33\3\35\36\34\4\4\
+        \\42\54\52\42\3\40\41\4\4\4\
+        \\11\55\3\11\3\56\57\4\4\4\
+        \\34\58\3\34\3\56\57\34\4\4\
+        \\34\59\3\34\3\56\57\34\4\4\
+        \\34\34\3\34\3\56\57\4\4\4\
+        \\34\34\3\34\3\56\57\4\4\4\
+        \\43\20\61\15\3\16\17\62\4\4\
+        \\45\29\4\26\3\22\27\63\4\4\
+        \\4\24\63\15\3\40\41\24\4\4\
+        \\4\32\4\26\3\37\38\32\4\4\
+        \\43\20\65\15\3\16\17\4\4\4\
+        \\45\29\4\26\3\22\27\4\4\4"
+    lambdaTable =
+        "\0\1\1\1\1\1\1\1\2\1\
+        \\4\1\1\1\1\1\1\1\2\1\
+        \\1\1\1\1\1\1\1\1\2\1\
+        \\1\1\1\1\1\1\1\1\1\1\
+        \\3\3\3\3\3\3\3\3\3\3\
+        \\1\1\1\1\1\1\1\1\2\1\
+        \\1\1\1\1\1\1\1\1\2\1\
+        \\1\1\1\5\1\1\1\6\2\1\
+        \\1\7\1\1\1\1\1\1\2\1\
+        \\1\1\1\1\1\1\1\1\2\1\
+        \\1\1\1\1\1\1\1\1\2\1\
+        \\1\1\1\1\1\1\1\1\2\1\
+        \\1\1\1\7\1\1\1\1\2\1\
+        \\1\1\1\7\1\1\1\6\2\1\
+        \\1\1\8\5\1\1\1\6\2\1\
+        \\1\1\1\1\9\1\1\1\2\1\
+        \\1\1\1\1\1\1\1\1\2\1\
+        \\1\1\1\1\1\1\1\1\2\1\
+        \\1\1\8\7\1\1\1\6\2\1\
+        \\1\7\1\1\1\1\1\1\2\1\
+        \\1\1\1\1\1\1\1\1\2\1\
+        \\1\1\1\7\1\1\1\10\2\1\
+        \\1\1\8\1\1\1\1\1\2\1\
+        \\1\1\1\1\1\1\1\1\2\1\
+        \\1\1\1\1\1\1\1\1\2\1\
+        \\1\1\8\7\1\1\1\1\2\1\
+        \\1\1\8\1\9\1\1\1\2\1\
+        \\1\1\8\1\1\1\1\1\2\1\
+        \\1\1\8\1\1\1\1\1\2\1\
+        \\1\1\8\1\1\1\1\1\2\1\
+        \\1\1\8\7\1\1\1\6\2\1\
+        \\1\1\8\1\1\1\1\1\2\1\
+        \\1\1\8\1\1\1\1\1\2\1\
+        \\1\1\1\1\1\1\1\1\2\1\
+        \\1\1\1\1\1\1\1\1\2\1\
+        \\1\1\1\1\1\1\1\1\2\1\
+        \\1\1\1\1\1\1\1\1\2\1\
+        \\1\1\8\1\1\1\1\1\2\1\
+        \\1\1\8\1\1\1\1\1\2\1\
+        \\1\7\1\1\1\1\1\1\2\1\
+        \\1\1\1\1\1\1\1\1\2\1\
+        \\1\1\1\1\1\1\1\1\2\1\
+        \\1\1\1\1\1\1\1\1\2\1\
+        \\1\1\1\7\1\1\1\1\2\1\
+        \\1\1\8\7\1\1\1\10\2\1\
+        \\1\1\8\7\1\1\1\1\2\1\
+        \\1\1\1\1\1\1\1\6\2\1\
+        \\1\1\8\1\1\1\1\6\2\1\
+        \\1\1\1\1\1\1\1\10\2\1\
+        \\1\1\8\1\1\1\1\10\2\1\
+        \\1\7\8\1\1\1\1\1\2\1\
+        \\1\1\1\7\1\1\1\6\2\1\
+        \\1\1\8\1\1\1\1\6\2\1\
+        \\1\1\1\1\1\1\1\1\2\1\
+        \\1\1\1\1\1\1\1\6\2\1\
+        \\1\1\1\1\1\1\1\6\2\1\
+        \\1\1\1\1\1\1\1\1\2\1\
+        \\1\1\1\1\1\1\1\1\2\1\
+        \\1\1\1\1\1\1\1\10\2\1\
+        \\1\1\1\1\1\1\1\6\2\1\
+        \\1\1\1\5\1\1\1\1\2\1\
+        \\1\1\8\5\1\1\1\1\2\1\
+        \\10\1\1\5\1\1\1\1\2\1\
+        \\10\1\8\5\1\1\1\1\2\1\
+        \\1\1\1\5\1\1\1\6\2\1\
+        \\1\1\8\5\1\1\1\6\2\1"
diff --git a/src/Haal/Models/DTLS/PionEcdheCertReq.hs b/src/Haal/Models/DTLS/PionEcdheCertReq.hs
--- a/src/Haal/Models/DTLS/PionEcdheCertReq.hs
+++ b/src/Haal/Models/DTLS/PionEcdheCertReq.hs
@@ -5,1358 +5,834 @@
     , pionEcdheCertReq
     ) where
 
-import qualified Data.Set as Set
-import Haal.Automaton.MealyAutomaton (MealyAutomaton, mkMealyAutomaton)
-
-data PionEcdheCertReqInput
-    = In_ECDH_CLIENT_HELLO
-    | In_ECDH_CLIENT_KEY_EXCHANGE
-    | In_CHANGE_CIPHER_SPEC
-    | In_FINISHED
-    | In_APPLICATION
-    | In_CERTIFICATE
-    | In_EMPTY_CERTIFICATE
-    | In_CERTIFICATE_VERIFY
-    | In_Alert_WARNING_CLOSE_NOTIFY
-    | In_Alert_FATAL_UNEXPECTED_MESSAGE
-    deriving (Show, Eq, Ord, Enum, Bounded)
-
-data PionEcdheCertReqOutput
-    = Out_HELLO_VERIFY_REQUEST
-    | Out_TIMEOUT
-    | Out_Alert_FATAL_CLOSE_NOTIFY
-    | Out_SOCKET_CLOSED
-    | Out_SERVER_HELLO_CERTIFICATE_ECDHE_SERVER_KEY_EXCHANGE_CERTIFICATE_REQUEST_SERVER_HELLO_DONE
-    | Out_Alert_FATAL_NO_CERTIFICATE_RESERVED
-    | Out_Alert_FATAL_HANDSHAKE_FAILURE
-    | Out_Alert_FATAL_BAD_CERTIFICATE
-    | Out_CHANGE_CIPHER_SPEC_FINISHED
-    | Out_Alert_FATAL_DECODE_ERROR
-    | Out_APPLICATION
-    deriving (Show, Eq, Ord, Enum, Bounded)
-
-pionEcdheCertReq :: MealyAutomaton Int PionEcdheCertReqInput PionEcdheCertReqOutput
-pionEcdheCertReq = mkMealyAutomaton delta lambda (Set.fromList [0..65]) 0
-  where
-    delta 0 In_ECDH_CLIENT_HELLO = 1
-    delta 0 In_ECDH_CLIENT_KEY_EXCHANGE = 2
-    delta 0 In_CHANGE_CIPHER_SPEC = 3
-    delta 0 In_FINISHED = 2
-    delta 0 In_APPLICATION = 3
-    delta 0 In_CERTIFICATE = 2
-    delta 0 In_EMPTY_CERTIFICATE = 2
-    delta 0 In_CERTIFICATE_VERIFY = 2
-    delta 0 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 0 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 4 In_ECDH_CLIENT_HELLO = 4
-    delta 4 In_ECDH_CLIENT_KEY_EXCHANGE = 4
-    delta 4 In_CHANGE_CIPHER_SPEC = 4
-    delta 4 In_FINISHED = 4
-    delta 4 In_APPLICATION = 4
-    delta 4 In_CERTIFICATE = 4
-    delta 4 In_EMPTY_CERTIFICATE = 4
-    delta 4 In_CERTIFICATE_VERIFY = 4
-    delta 4 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 4 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 1 In_ECDH_CLIENT_HELLO = 5
-    delta 1 In_ECDH_CLIENT_KEY_EXCHANGE = 2
-    delta 1 In_CHANGE_CIPHER_SPEC = 3
-    delta 1 In_FINISHED = 2
-    delta 1 In_APPLICATION = 3
-    delta 1 In_CERTIFICATE = 2
-    delta 1 In_EMPTY_CERTIFICATE = 2
-    delta 1 In_CERTIFICATE_VERIFY = 2
-    delta 1 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 1 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 2 In_ECDH_CLIENT_HELLO = 2
-    delta 2 In_ECDH_CLIENT_KEY_EXCHANGE = 2
-    delta 2 In_CHANGE_CIPHER_SPEC = 3
-    delta 2 In_FINISHED = 2
-    delta 2 In_APPLICATION = 3
-    delta 2 In_CERTIFICATE = 2
-    delta 2 In_EMPTY_CERTIFICATE = 2
-    delta 2 In_CERTIFICATE_VERIFY = 2
-    delta 2 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 2 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 3 In_ECDH_CLIENT_HELLO = 3
-    delta 3 In_ECDH_CLIENT_KEY_EXCHANGE = 3
-    delta 3 In_CHANGE_CIPHER_SPEC = 3
-    delta 3 In_FINISHED = 3
-    delta 3 In_APPLICATION = 3
-    delta 3 In_CERTIFICATE = 3
-    delta 3 In_EMPTY_CERTIFICATE = 3
-    delta 3 In_CERTIFICATE_VERIFY = 3
-    delta 3 In_Alert_WARNING_CLOSE_NOTIFY = 3
-    delta 3 In_Alert_FATAL_UNEXPECTED_MESSAGE = 3
-    delta 5 In_ECDH_CLIENT_HELLO = 6
-    delta 5 In_ECDH_CLIENT_KEY_EXCHANGE = 7
-    delta 5 In_CHANGE_CIPHER_SPEC = 3
-    delta 5 In_FINISHED = 8
-    delta 5 In_APPLICATION = 3
-    delta 5 In_CERTIFICATE = 9
-    delta 5 In_EMPTY_CERTIFICATE = 10
-    delta 5 In_CERTIFICATE_VERIFY = 11
-    delta 5 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 5 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 7 In_ECDH_CLIENT_HELLO = 12
-    delta 7 In_ECDH_CLIENT_KEY_EXCHANGE = 13
-    delta 7 In_CHANGE_CIPHER_SPEC = 14
-    delta 7 In_FINISHED = 4
-    delta 7 In_APPLICATION = 3
-    delta 7 In_CERTIFICATE = 15
-    delta 7 In_EMPTY_CERTIFICATE = 16
-    delta 7 In_CERTIFICATE_VERIFY = 4
-    delta 7 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 7 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 13 In_ECDH_CLIENT_HELLO = 12
-    delta 13 In_ECDH_CLIENT_KEY_EXCHANGE = 13
-    delta 13 In_CHANGE_CIPHER_SPEC = 17
-    delta 13 In_FINISHED = 4
-    delta 13 In_APPLICATION = 3
-    delta 13 In_CERTIFICATE = 15
-    delta 13 In_EMPTY_CERTIFICATE = 16
-    delta 13 In_CERTIFICATE_VERIFY = 4
-    delta 13 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 13 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 8 In_ECDH_CLIENT_HELLO = 8
-    delta 8 In_ECDH_CLIENT_KEY_EXCHANGE = 4
-    delta 8 In_CHANGE_CIPHER_SPEC = 3
-    delta 8 In_FINISHED = 8
-    delta 8 In_APPLICATION = 3
-    delta 8 In_CERTIFICATE = 18
-    delta 8 In_EMPTY_CERTIFICATE = 18
-    delta 8 In_CERTIFICATE_VERIFY = 11
-    delta 8 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 8 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 9 In_ECDH_CLIENT_HELLO = 19
-    delta 9 In_ECDH_CLIENT_KEY_EXCHANGE = 20
-    delta 9 In_CHANGE_CIPHER_SPEC = 3
-    delta 9 In_FINISHED = 21
-    delta 9 In_APPLICATION = 3
-    delta 9 In_CERTIFICATE = 22
-    delta 9 In_EMPTY_CERTIFICATE = 23
-    delta 9 In_CERTIFICATE_VERIFY = 24
-    delta 9 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 9 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 15 In_ECDH_CLIENT_HELLO = 25
-    delta 15 In_ECDH_CLIENT_KEY_EXCHANGE = 26
-    delta 15 In_CHANGE_CIPHER_SPEC = 27
-    delta 15 In_FINISHED = 28
-    delta 15 In_APPLICATION = 3
-    delta 15 In_CERTIFICATE = 15
-    delta 15 In_EMPTY_CERTIFICATE = 16
-    delta 15 In_CERTIFICATE_VERIFY = 29
-    delta 15 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 15 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 20 In_ECDH_CLIENT_HELLO = 30
-    delta 20 In_ECDH_CLIENT_KEY_EXCHANGE = 25
-    delta 20 In_CHANGE_CIPHER_SPEC = 31
-    delta 20 In_FINISHED = 4
-    delta 20 In_APPLICATION = 3
-    delta 20 In_CERTIFICATE = 15
-    delta 20 In_EMPTY_CERTIFICATE = 16
-    delta 20 In_CERTIFICATE_VERIFY = 32
-    delta 20 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 20 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 32 In_ECDH_CLIENT_HELLO = 4
-    delta 32 In_ECDH_CLIENT_KEY_EXCHANGE = 29
-    delta 32 In_CHANGE_CIPHER_SPEC = 33
-    delta 32 In_FINISHED = 34
-    delta 32 In_APPLICATION = 3
-    delta 32 In_CERTIFICATE = 35
-    delta 32 In_EMPTY_CERTIFICATE = 36
-    delta 32 In_CERTIFICATE_VERIFY = 29
-    delta 32 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 32 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 14 In_ECDH_CLIENT_HELLO = 37
-    delta 14 In_ECDH_CLIENT_KEY_EXCHANGE = 17
-    delta 14 In_CHANGE_CIPHER_SPEC = 4
-    delta 14 In_FINISHED = 4
-    delta 14 In_APPLICATION = 3
-    delta 14 In_CERTIFICATE = 27
-    delta 14 In_EMPTY_CERTIFICATE = 38
-    delta 14 In_CERTIFICATE_VERIFY = 4
-    delta 14 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 14 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 37 In_ECDH_CLIENT_HELLO = 37
-    delta 37 In_ECDH_CLIENT_KEY_EXCHANGE = 17
-    delta 37 In_CHANGE_CIPHER_SPEC = 4
-    delta 37 In_FINISHED = 4
-    delta 37 In_APPLICATION = 3
-    delta 37 In_CERTIFICATE = 27
-    delta 37 In_EMPTY_CERTIFICATE = 38
-    delta 37 In_CERTIFICATE_VERIFY = 39
-    delta 37 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 37 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 25 In_ECDH_CLIENT_HELLO = 25
-    delta 25 In_ECDH_CLIENT_KEY_EXCHANGE = 25
-    delta 25 In_CHANGE_CIPHER_SPEC = 40
-    delta 25 In_FINISHED = 28
-    delta 25 In_APPLICATION = 3
-    delta 25 In_CERTIFICATE = 15
-    delta 25 In_EMPTY_CERTIFICATE = 16
-    delta 25 In_CERTIFICATE_VERIFY = 29
-    delta 25 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 25 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 39 In_ECDH_CLIENT_HELLO = 39
-    delta 39 In_ECDH_CLIENT_KEY_EXCHANGE = 41
-    delta 39 In_CHANGE_CIPHER_SPEC = 4
-    delta 39 In_FINISHED = 39
-    delta 39 In_APPLICATION = 3
-    delta 39 In_CERTIFICATE = 42
-    delta 39 In_EMPTY_CERTIFICATE = 43
-    delta 39 In_CERTIFICATE_VERIFY = 39
-    delta 39 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 39 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 17 In_ECDH_CLIENT_HELLO = 37
-    delta 17 In_ECDH_CLIENT_KEY_EXCHANGE = 17
-    delta 17 In_CHANGE_CIPHER_SPEC = 4
-    delta 17 In_FINISHED = 4
-    delta 17 In_APPLICATION = 3
-    delta 17 In_CERTIFICATE = 27
-    delta 17 In_EMPTY_CERTIFICATE = 38
-    delta 17 In_CERTIFICATE_VERIFY = 4
-    delta 17 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 17 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 6 In_ECDH_CLIENT_HELLO = 6
-    delta 6 In_ECDH_CLIENT_KEY_EXCHANGE = 13
-    delta 6 In_CHANGE_CIPHER_SPEC = 3
-    delta 6 In_FINISHED = 8
-    delta 6 In_APPLICATION = 3
-    delta 6 In_CERTIFICATE = 22
-    delta 6 In_EMPTY_CERTIFICATE = 23
-    delta 6 In_CERTIFICATE_VERIFY = 11
-    delta 6 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 6 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 27 In_ECDH_CLIENT_HELLO = 40
-    delta 27 In_ECDH_CLIENT_KEY_EXCHANGE = 44
-    delta 27 In_CHANGE_CIPHER_SPEC = 4
-    delta 27 In_FINISHED = 45
-    delta 27 In_APPLICATION = 3
-    delta 27 In_CERTIFICATE = 27
-    delta 27 In_EMPTY_CERTIFICATE = 38
-    delta 27 In_CERTIFICATE_VERIFY = 46
-    delta 27 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 27 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 44 In_ECDH_CLIENT_HELLO = 47
-    delta 44 In_ECDH_CLIENT_KEY_EXCHANGE = 40
-    delta 44 In_CHANGE_CIPHER_SPEC = 4
-    delta 44 In_FINISHED = 4
-    delta 44 In_APPLICATION = 3
-    delta 44 In_CERTIFICATE = 27
-    delta 44 In_EMPTY_CERTIFICATE = 38
-    delta 44 In_CERTIFICATE_VERIFY = 4
-    delta 44 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 44 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 33 In_ECDH_CLIENT_HELLO = 4
-    delta 33 In_ECDH_CLIENT_KEY_EXCHANGE = 46
-    delta 33 In_CHANGE_CIPHER_SPEC = 4
-    delta 33 In_FINISHED = 48
-    delta 33 In_APPLICATION = 3
-    delta 33 In_CERTIFICATE = 42
-    delta 33 In_EMPTY_CERTIFICATE = 43
-    delta 33 In_CERTIFICATE_VERIFY = 46
-    delta 33 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 33 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 31 In_ECDH_CLIENT_HELLO = 47
-    delta 31 In_ECDH_CLIENT_KEY_EXCHANGE = 40
-    delta 31 In_CHANGE_CIPHER_SPEC = 4
-    delta 31 In_FINISHED = 4
-    delta 31 In_APPLICATION = 3
-    delta 31 In_CERTIFICATE = 27
-    delta 31 In_EMPTY_CERTIFICATE = 38
-    delta 31 In_CERTIFICATE_VERIFY = 33
-    delta 31 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 31 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 11 In_ECDH_CLIENT_HELLO = 11
-    delta 11 In_ECDH_CLIENT_KEY_EXCHANGE = 49
-    delta 11 In_CHANGE_CIPHER_SPEC = 3
-    delta 11 In_FINISHED = 11
-    delta 11 In_APPLICATION = 3
-    delta 11 In_CERTIFICATE = 50
-    delta 11 In_EMPTY_CERTIFICATE = 51
-    delta 11 In_CERTIFICATE_VERIFY = 11
-    delta 11 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 11 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 49 In_ECDH_CLIENT_HELLO = 11
-    delta 49 In_ECDH_CLIENT_KEY_EXCHANGE = 49
-    delta 49 In_CHANGE_CIPHER_SPEC = 3
-    delta 49 In_FINISHED = 11
-    delta 49 In_APPLICATION = 3
-    delta 49 In_CERTIFICATE = 50
-    delta 49 In_EMPTY_CERTIFICATE = 51
-    delta 49 In_CERTIFICATE_VERIFY = 4
-    delta 49 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 49 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 50 In_ECDH_CLIENT_HELLO = 24
-    delta 50 In_ECDH_CLIENT_KEY_EXCHANGE = 52
-    delta 50 In_CHANGE_CIPHER_SPEC = 3
-    delta 50 In_FINISHED = 24
-    delta 50 In_APPLICATION = 3
-    delta 50 In_CERTIFICATE = 50
-    delta 50 In_EMPTY_CERTIFICATE = 51
-    delta 50 In_CERTIFICATE_VERIFY = 24
-    delta 50 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 50 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 52 In_ECDH_CLIENT_HELLO = 24
-    delta 52 In_ECDH_CLIENT_KEY_EXCHANGE = 24
-    delta 52 In_CHANGE_CIPHER_SPEC = 3
-    delta 52 In_FINISHED = 24
-    delta 52 In_APPLICATION = 3
-    delta 52 In_CERTIFICATE = 50
-    delta 52 In_EMPTY_CERTIFICATE = 51
-    delta 52 In_CERTIFICATE_VERIFY = 4
-    delta 52 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 52 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 47 In_ECDH_CLIENT_HELLO = 47
-    delta 47 In_ECDH_CLIENT_KEY_EXCHANGE = 40
-    delta 47 In_CHANGE_CIPHER_SPEC = 4
-    delta 47 In_FINISHED = 4
-    delta 47 In_APPLICATION = 3
-    delta 47 In_CERTIFICATE = 27
-    delta 47 In_EMPTY_CERTIFICATE = 38
-    delta 47 In_CERTIFICATE_VERIFY = 46
-    delta 47 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 47 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 18 In_ECDH_CLIENT_HELLO = 21
-    delta 18 In_ECDH_CLIENT_KEY_EXCHANGE = 4
-    delta 18 In_CHANGE_CIPHER_SPEC = 3
-    delta 18 In_FINISHED = 21
-    delta 18 In_APPLICATION = 3
-    delta 18 In_CERTIFICATE = 18
-    delta 18 In_EMPTY_CERTIFICATE = 18
-    delta 18 In_CERTIFICATE_VERIFY = 24
-    delta 18 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 18 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 26 In_ECDH_CLIENT_HELLO = 30
-    delta 26 In_ECDH_CLIENT_KEY_EXCHANGE = 25
-    delta 26 In_CHANGE_CIPHER_SPEC = 44
-    delta 26 In_FINISHED = 4
-    delta 26 In_APPLICATION = 3
-    delta 26 In_CERTIFICATE = 15
-    delta 26 In_EMPTY_CERTIFICATE = 16
-    delta 26 In_CERTIFICATE_VERIFY = 4
-    delta 26 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 26 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 12 In_ECDH_CLIENT_HELLO = 12
-    delta 12 In_ECDH_CLIENT_KEY_EXCHANGE = 13
-    delta 12 In_CHANGE_CIPHER_SPEC = 37
-    delta 12 In_FINISHED = 4
-    delta 12 In_APPLICATION = 3
-    delta 12 In_CERTIFICATE = 15
-    delta 12 In_EMPTY_CERTIFICATE = 16
-    delta 12 In_CERTIFICATE_VERIFY = 53
-    delta 12 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 12 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 29 In_ECDH_CLIENT_HELLO = 29
-    delta 29 In_ECDH_CLIENT_KEY_EXCHANGE = 29
-    delta 29 In_CHANGE_CIPHER_SPEC = 46
-    delta 29 In_FINISHED = 29
-    delta 29 In_APPLICATION = 3
-    delta 29 In_CERTIFICATE = 35
-    delta 29 In_EMPTY_CERTIFICATE = 36
-    delta 29 In_CERTIFICATE_VERIFY = 29
-    delta 29 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 29 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 28 In_ECDH_CLIENT_HELLO = 28
-    delta 28 In_ECDH_CLIENT_KEY_EXCHANGE = 28
-    delta 28 In_CHANGE_CIPHER_SPEC = 45
-    delta 28 In_FINISHED = 28
-    delta 28 In_APPLICATION = 3
-    delta 28 In_CERTIFICATE = 54
-    delta 28 In_EMPTY_CERTIFICATE = 54
-    delta 28 In_CERTIFICATE_VERIFY = 29
-    delta 28 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 28 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 16 In_ECDH_CLIENT_HELLO = 25
-    delta 16 In_ECDH_CLIENT_KEY_EXCHANGE = 55
-    delta 16 In_CHANGE_CIPHER_SPEC = 38
-    delta 16 In_FINISHED = 28
-    delta 16 In_APPLICATION = 3
-    delta 16 In_CERTIFICATE = 15
-    delta 16 In_EMPTY_CERTIFICATE = 16
-    delta 16 In_CERTIFICATE_VERIFY = 29
-    delta 16 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 16 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 38 In_ECDH_CLIENT_HELLO = 40
-    delta 38 In_ECDH_CLIENT_KEY_EXCHANGE = 56
-    delta 38 In_CHANGE_CIPHER_SPEC = 4
-    delta 38 In_FINISHED = 45
-    delta 38 In_APPLICATION = 3
-    delta 38 In_CERTIFICATE = 27
-    delta 38 In_EMPTY_CERTIFICATE = 38
-    delta 38 In_CERTIFICATE_VERIFY = 46
-    delta 38 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 38 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 45 In_ECDH_CLIENT_HELLO = 45
-    delta 45 In_ECDH_CLIENT_KEY_EXCHANGE = 45
-    delta 45 In_CHANGE_CIPHER_SPEC = 4
-    delta 45 In_FINISHED = 45
-    delta 45 In_APPLICATION = 3
-    delta 45 In_CERTIFICATE = 57
-    delta 45 In_EMPTY_CERTIFICATE = 57
-    delta 45 In_CERTIFICATE_VERIFY = 46
-    delta 45 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 45 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 40 In_ECDH_CLIENT_HELLO = 40
-    delta 40 In_ECDH_CLIENT_KEY_EXCHANGE = 40
-    delta 40 In_CHANGE_CIPHER_SPEC = 4
-    delta 40 In_FINISHED = 45
-    delta 40 In_APPLICATION = 3
-    delta 40 In_CERTIFICATE = 27
-    delta 40 In_EMPTY_CERTIFICATE = 38
-    delta 40 In_CERTIFICATE_VERIFY = 46
-    delta 40 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 40 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 21 In_ECDH_CLIENT_HELLO = 21
-    delta 21 In_ECDH_CLIENT_KEY_EXCHANGE = 21
-    delta 21 In_CHANGE_CIPHER_SPEC = 3
-    delta 21 In_FINISHED = 21
-    delta 21 In_APPLICATION = 3
-    delta 21 In_CERTIFICATE = 18
-    delta 21 In_EMPTY_CERTIFICATE = 18
-    delta 21 In_CERTIFICATE_VERIFY = 24
-    delta 21 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 21 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 19 In_ECDH_CLIENT_HELLO = 19
-    delta 19 In_ECDH_CLIENT_KEY_EXCHANGE = 19
-    delta 19 In_CHANGE_CIPHER_SPEC = 3
-    delta 19 In_FINISHED = 21
-    delta 19 In_APPLICATION = 3
-    delta 19 In_CERTIFICATE = 22
-    delta 19 In_EMPTY_CERTIFICATE = 23
-    delta 19 In_CERTIFICATE_VERIFY = 24
-    delta 19 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 19 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 41 In_ECDH_CLIENT_HELLO = 39
-    delta 41 In_ECDH_CLIENT_KEY_EXCHANGE = 41
-    delta 41 In_CHANGE_CIPHER_SPEC = 4
-    delta 41 In_FINISHED = 39
-    delta 41 In_APPLICATION = 3
-    delta 41 In_CERTIFICATE = 42
-    delta 41 In_EMPTY_CERTIFICATE = 43
-    delta 41 In_CERTIFICATE_VERIFY = 4
-    delta 41 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 41 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 54 In_ECDH_CLIENT_HELLO = 28
-    delta 54 In_ECDH_CLIENT_KEY_EXCHANGE = 4
-    delta 54 In_CHANGE_CIPHER_SPEC = 57
-    delta 54 In_FINISHED = 28
-    delta 54 In_APPLICATION = 3
-    delta 54 In_CERTIFICATE = 54
-    delta 54 In_EMPTY_CERTIFICATE = 54
-    delta 54 In_CERTIFICATE_VERIFY = 29
-    delta 54 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 54 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 57 In_ECDH_CLIENT_HELLO = 45
-    delta 57 In_ECDH_CLIENT_KEY_EXCHANGE = 4
-    delta 57 In_CHANGE_CIPHER_SPEC = 4
-    delta 57 In_FINISHED = 45
-    delta 57 In_APPLICATION = 3
-    delta 57 In_CERTIFICATE = 57
-    delta 57 In_EMPTY_CERTIFICATE = 57
-    delta 57 In_CERTIFICATE_VERIFY = 46
-    delta 57 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 57 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 34 In_ECDH_CLIENT_HELLO = 34
-    delta 34 In_ECDH_CLIENT_KEY_EXCHANGE = 34
-    delta 34 In_CHANGE_CIPHER_SPEC = 48
-    delta 34 In_FINISHED = 34
-    delta 34 In_APPLICATION = 4
-    delta 34 In_CERTIFICATE = 34
-    delta 34 In_EMPTY_CERTIFICATE = 34
-    delta 34 In_CERTIFICATE_VERIFY = 34
-    delta 34 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 34 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 48 In_ECDH_CLIENT_HELLO = 48
-    delta 48 In_ECDH_CLIENT_KEY_EXCHANGE = 48
-    delta 48 In_CHANGE_CIPHER_SPEC = 4
-    delta 48 In_FINISHED = 48
-    delta 48 In_APPLICATION = 4
-    delta 48 In_CERTIFICATE = 48
-    delta 48 In_EMPTY_CERTIFICATE = 48
-    delta 48 In_CERTIFICATE_VERIFY = 48
-    delta 48 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 48 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 46 In_ECDH_CLIENT_HELLO = 46
-    delta 46 In_ECDH_CLIENT_KEY_EXCHANGE = 46
-    delta 46 In_CHANGE_CIPHER_SPEC = 4
-    delta 46 In_FINISHED = 46
-    delta 46 In_APPLICATION = 3
-    delta 46 In_CERTIFICATE = 42
-    delta 46 In_EMPTY_CERTIFICATE = 43
-    delta 46 In_CERTIFICATE_VERIFY = 46
-    delta 46 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 46 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 42 In_ECDH_CLIENT_HELLO = 46
-    delta 42 In_ECDH_CLIENT_KEY_EXCHANGE = 58
-    delta 42 In_CHANGE_CIPHER_SPEC = 4
-    delta 42 In_FINISHED = 46
-    delta 42 In_APPLICATION = 3
-    delta 42 In_CERTIFICATE = 42
-    delta 42 In_EMPTY_CERTIFICATE = 43
-    delta 42 In_CERTIFICATE_VERIFY = 46
-    delta 42 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 42 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 58 In_ECDH_CLIENT_HELLO = 46
-    delta 58 In_ECDH_CLIENT_KEY_EXCHANGE = 46
-    delta 58 In_CHANGE_CIPHER_SPEC = 4
-    delta 58 In_FINISHED = 46
-    delta 58 In_APPLICATION = 3
-    delta 58 In_CERTIFICATE = 42
-    delta 58 In_EMPTY_CERTIFICATE = 43
-    delta 58 In_CERTIFICATE_VERIFY = 4
-    delta 58 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 58 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 35 In_ECDH_CLIENT_HELLO = 29
-    delta 35 In_ECDH_CLIENT_KEY_EXCHANGE = 59
-    delta 35 In_CHANGE_CIPHER_SPEC = 42
-    delta 35 In_FINISHED = 29
-    delta 35 In_APPLICATION = 3
-    delta 35 In_CERTIFICATE = 35
-    delta 35 In_EMPTY_CERTIFICATE = 36
-    delta 35 In_CERTIFICATE_VERIFY = 29
-    delta 35 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 35 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 36 In_ECDH_CLIENT_HELLO = 29
-    delta 36 In_ECDH_CLIENT_KEY_EXCHANGE = 60
-    delta 36 In_CHANGE_CIPHER_SPEC = 43
-    delta 36 In_FINISHED = 29
-    delta 36 In_APPLICATION = 3
-    delta 36 In_CERTIFICATE = 35
-    delta 36 In_EMPTY_CERTIFICATE = 36
-    delta 36 In_CERTIFICATE_VERIFY = 29
-    delta 36 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 36 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 59 In_ECDH_CLIENT_HELLO = 29
-    delta 59 In_ECDH_CLIENT_KEY_EXCHANGE = 29
-    delta 59 In_CHANGE_CIPHER_SPEC = 58
-    delta 59 In_FINISHED = 29
-    delta 59 In_APPLICATION = 3
-    delta 59 In_CERTIFICATE = 35
-    delta 59 In_EMPTY_CERTIFICATE = 36
-    delta 59 In_CERTIFICATE_VERIFY = 4
-    delta 59 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 59 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 60 In_ECDH_CLIENT_HELLO = 29
-    delta 60 In_ECDH_CLIENT_KEY_EXCHANGE = 29
-    delta 60 In_CHANGE_CIPHER_SPEC = 61
-    delta 60 In_FINISHED = 29
-    delta 60 In_APPLICATION = 3
-    delta 60 In_CERTIFICATE = 35
-    delta 60 In_EMPTY_CERTIFICATE = 36
-    delta 60 In_CERTIFICATE_VERIFY = 4
-    delta 60 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 60 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 61 In_ECDH_CLIENT_HELLO = 46
-    delta 61 In_ECDH_CLIENT_KEY_EXCHANGE = 46
-    delta 61 In_CHANGE_CIPHER_SPEC = 4
-    delta 61 In_FINISHED = 46
-    delta 61 In_APPLICATION = 3
-    delta 61 In_CERTIFICATE = 42
-    delta 61 In_EMPTY_CERTIFICATE = 43
-    delta 61 In_CERTIFICATE_VERIFY = 4
-    delta 61 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 61 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 24 In_ECDH_CLIENT_HELLO = 24
-    delta 24 In_ECDH_CLIENT_KEY_EXCHANGE = 24
-    delta 24 In_CHANGE_CIPHER_SPEC = 3
-    delta 24 In_FINISHED = 24
-    delta 24 In_APPLICATION = 3
-    delta 24 In_CERTIFICATE = 50
-    delta 24 In_EMPTY_CERTIFICATE = 51
-    delta 24 In_CERTIFICATE_VERIFY = 24
-    delta 24 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 24 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 51 In_ECDH_CLIENT_HELLO = 24
-    delta 51 In_ECDH_CLIENT_KEY_EXCHANGE = 62
-    delta 51 In_CHANGE_CIPHER_SPEC = 3
-    delta 51 In_FINISHED = 24
-    delta 51 In_APPLICATION = 3
-    delta 51 In_CERTIFICATE = 50
-    delta 51 In_EMPTY_CERTIFICATE = 51
-    delta 51 In_CERTIFICATE_VERIFY = 24
-    delta 51 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 51 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 53 In_ECDH_CLIENT_HELLO = 53
-    delta 53 In_ECDH_CLIENT_KEY_EXCHANGE = 63
-    delta 53 In_CHANGE_CIPHER_SPEC = 39
-    delta 53 In_FINISHED = 53
-    delta 53 In_APPLICATION = 3
-    delta 53 In_CERTIFICATE = 35
-    delta 53 In_EMPTY_CERTIFICATE = 36
-    delta 53 In_CERTIFICATE_VERIFY = 53
-    delta 53 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 53 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 63 In_ECDH_CLIENT_HELLO = 53
-    delta 63 In_ECDH_CLIENT_KEY_EXCHANGE = 63
-    delta 63 In_CHANGE_CIPHER_SPEC = 41
-    delta 63 In_FINISHED = 53
-    delta 63 In_APPLICATION = 3
-    delta 63 In_CERTIFICATE = 35
-    delta 63 In_EMPTY_CERTIFICATE = 36
-    delta 63 In_CERTIFICATE_VERIFY = 4
-    delta 63 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 63 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 23 In_ECDH_CLIENT_HELLO = 19
-    delta 23 In_ECDH_CLIENT_KEY_EXCHANGE = 55
-    delta 23 In_CHANGE_CIPHER_SPEC = 3
-    delta 23 In_FINISHED = 21
-    delta 23 In_APPLICATION = 3
-    delta 23 In_CERTIFICATE = 22
-    delta 23 In_EMPTY_CERTIFICATE = 23
-    delta 23 In_CERTIFICATE_VERIFY = 24
-    delta 23 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 23 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 43 In_ECDH_CLIENT_HELLO = 46
-    delta 43 In_ECDH_CLIENT_KEY_EXCHANGE = 61
-    delta 43 In_CHANGE_CIPHER_SPEC = 4
-    delta 43 In_FINISHED = 46
-    delta 43 In_APPLICATION = 3
-    delta 43 In_CERTIFICATE = 42
-    delta 43 In_EMPTY_CERTIFICATE = 43
-    delta 43 In_CERTIFICATE_VERIFY = 46
-    delta 43 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 43 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 56 In_ECDH_CLIENT_HELLO = 47
-    delta 56 In_ECDH_CLIENT_KEY_EXCHANGE = 40
-    delta 56 In_CHANGE_CIPHER_SPEC = 4
-    delta 56 In_FINISHED = 4
-    delta 56 In_APPLICATION = 3
-    delta 56 In_CERTIFICATE = 27
-    delta 56 In_EMPTY_CERTIFICATE = 38
-    delta 56 In_CERTIFICATE_VERIFY = 4
-    delta 56 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 56 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 62 In_ECDH_CLIENT_HELLO = 24
-    delta 62 In_ECDH_CLIENT_KEY_EXCHANGE = 24
-    delta 62 In_CHANGE_CIPHER_SPEC = 3
-    delta 62 In_FINISHED = 24
-    delta 62 In_APPLICATION = 3
-    delta 62 In_CERTIFICATE = 50
-    delta 62 In_EMPTY_CERTIFICATE = 51
-    delta 62 In_CERTIFICATE_VERIFY = 4
-    delta 62 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 62 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 30 In_ECDH_CLIENT_HELLO = 30
-    delta 30 In_ECDH_CLIENT_KEY_EXCHANGE = 25
-    delta 30 In_CHANGE_CIPHER_SPEC = 47
-    delta 30 In_FINISHED = 4
-    delta 30 In_APPLICATION = 3
-    delta 30 In_CERTIFICATE = 15
-    delta 30 In_EMPTY_CERTIFICATE = 16
-    delta 30 In_CERTIFICATE_VERIFY = 29
-    delta 30 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 30 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 55 In_ECDH_CLIENT_HELLO = 30
-    delta 55 In_ECDH_CLIENT_KEY_EXCHANGE = 25
-    delta 55 In_CHANGE_CIPHER_SPEC = 56
-    delta 55 In_FINISHED = 4
-    delta 55 In_APPLICATION = 3
-    delta 55 In_CERTIFICATE = 15
-    delta 55 In_EMPTY_CERTIFICATE = 16
-    delta 55 In_CERTIFICATE_VERIFY = 4
-    delta 55 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 55 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 22 In_ECDH_CLIENT_HELLO = 19
-    delta 22 In_ECDH_CLIENT_KEY_EXCHANGE = 26
-    delta 22 In_CHANGE_CIPHER_SPEC = 3
-    delta 22 In_FINISHED = 21
-    delta 22 In_APPLICATION = 3
-    delta 22 In_CERTIFICATE = 22
-    delta 22 In_EMPTY_CERTIFICATE = 23
-    delta 22 In_CERTIFICATE_VERIFY = 24
-    delta 22 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 22 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 10 In_ECDH_CLIENT_HELLO = 19
-    delta 10 In_ECDH_CLIENT_KEY_EXCHANGE = 64
-    delta 10 In_CHANGE_CIPHER_SPEC = 3
-    delta 10 In_FINISHED = 21
-    delta 10 In_APPLICATION = 3
-    delta 10 In_CERTIFICATE = 22
-    delta 10 In_EMPTY_CERTIFICATE = 23
-    delta 10 In_CERTIFICATE_VERIFY = 24
-    delta 10 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 10 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 64 In_ECDH_CLIENT_HELLO = 30
-    delta 64 In_ECDH_CLIENT_KEY_EXCHANGE = 25
-    delta 64 In_CHANGE_CIPHER_SPEC = 65
-    delta 64 In_FINISHED = 4
-    delta 64 In_APPLICATION = 3
-    delta 64 In_CERTIFICATE = 15
-    delta 64 In_EMPTY_CERTIFICATE = 16
-    delta 64 In_CERTIFICATE_VERIFY = 4
-    delta 64 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 64 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 65 In_ECDH_CLIENT_HELLO = 47
-    delta 65 In_ECDH_CLIENT_KEY_EXCHANGE = 40
-    delta 65 In_CHANGE_CIPHER_SPEC = 4
-    delta 65 In_FINISHED = 4
-    delta 65 In_APPLICATION = 3
-    delta 65 In_CERTIFICATE = 27
-    delta 65 In_EMPTY_CERTIFICATE = 38
-    delta 65 In_CERTIFICATE_VERIFY = 4
-    delta 65 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 65 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta _ _ = error "haal-gen: undefined transition"
-    lambda 0 In_ECDH_CLIENT_HELLO = Out_HELLO_VERIFY_REQUEST
-    lambda 0 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 0 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 0 In_FINISHED = Out_TIMEOUT
-    lambda 0 In_APPLICATION = Out_TIMEOUT
-    lambda 0 In_CERTIFICATE = Out_TIMEOUT
-    lambda 0 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 0 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 0 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 0 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 4 In_ECDH_CLIENT_HELLO = Out_SOCKET_CLOSED
-    lambda 4 In_ECDH_CLIENT_KEY_EXCHANGE = Out_SOCKET_CLOSED
-    lambda 4 In_CHANGE_CIPHER_SPEC = Out_SOCKET_CLOSED
-    lambda 4 In_FINISHED = Out_SOCKET_CLOSED
-    lambda 4 In_APPLICATION = Out_SOCKET_CLOSED
-    lambda 4 In_CERTIFICATE = Out_SOCKET_CLOSED
-    lambda 4 In_EMPTY_CERTIFICATE = Out_SOCKET_CLOSED
-    lambda 4 In_CERTIFICATE_VERIFY = Out_SOCKET_CLOSED
-    lambda 4 In_Alert_WARNING_CLOSE_NOTIFY = Out_SOCKET_CLOSED
-    lambda 4 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_SOCKET_CLOSED
-    lambda 1 In_ECDH_CLIENT_HELLO = Out_SERVER_HELLO_CERTIFICATE_ECDHE_SERVER_KEY_EXCHANGE_CERTIFICATE_REQUEST_SERVER_HELLO_DONE
-    lambda 1 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 1 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 1 In_FINISHED = Out_TIMEOUT
-    lambda 1 In_APPLICATION = Out_TIMEOUT
-    lambda 1 In_CERTIFICATE = Out_TIMEOUT
-    lambda 1 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 1 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 1 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 1 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 2 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 2 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 2 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 2 In_FINISHED = Out_TIMEOUT
-    lambda 2 In_APPLICATION = Out_TIMEOUT
-    lambda 2 In_CERTIFICATE = Out_TIMEOUT
-    lambda 2 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 2 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 2 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 2 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 3 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 3 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 3 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 3 In_FINISHED = Out_TIMEOUT
-    lambda 3 In_APPLICATION = Out_TIMEOUT
-    lambda 3 In_CERTIFICATE = Out_TIMEOUT
-    lambda 3 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 3 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 3 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 3 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 5 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 5 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 5 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 5 In_FINISHED = Out_TIMEOUT
-    lambda 5 In_APPLICATION = Out_TIMEOUT
-    lambda 5 In_CERTIFICATE = Out_TIMEOUT
-    lambda 5 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 5 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 5 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 5 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 7 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 7 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 7 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 7 In_FINISHED = Out_Alert_FATAL_NO_CERTIFICATE_RESERVED
-    lambda 7 In_APPLICATION = Out_TIMEOUT
-    lambda 7 In_CERTIFICATE = Out_TIMEOUT
-    lambda 7 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 7 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_NO_CERTIFICATE_RESERVED
-    lambda 7 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 7 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 13 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 13 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 13 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 13 In_FINISHED = Out_Alert_FATAL_HANDSHAKE_FAILURE
-    lambda 13 In_APPLICATION = Out_TIMEOUT
-    lambda 13 In_CERTIFICATE = Out_TIMEOUT
-    lambda 13 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 13 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_NO_CERTIFICATE_RESERVED
-    lambda 13 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 13 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 8 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 8 In_ECDH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_HANDSHAKE_FAILURE
-    lambda 8 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 8 In_FINISHED = Out_TIMEOUT
-    lambda 8 In_APPLICATION = Out_TIMEOUT
-    lambda 8 In_CERTIFICATE = Out_TIMEOUT
-    lambda 8 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 8 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 8 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 8 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 9 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 9 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 9 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 9 In_FINISHED = Out_TIMEOUT
-    lambda 9 In_APPLICATION = Out_TIMEOUT
-    lambda 9 In_CERTIFICATE = Out_TIMEOUT
-    lambda 9 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 9 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 9 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 9 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 15 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 15 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 15 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 15 In_FINISHED = Out_TIMEOUT
-    lambda 15 In_APPLICATION = Out_TIMEOUT
-    lambda 15 In_CERTIFICATE = Out_TIMEOUT
-    lambda 15 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 15 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 15 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 15 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 20 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 20 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 20 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 20 In_FINISHED = Out_Alert_FATAL_BAD_CERTIFICATE
-    lambda 20 In_APPLICATION = Out_TIMEOUT
-    lambda 20 In_CERTIFICATE = Out_TIMEOUT
-    lambda 20 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 20 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 20 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 20 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 32 In_ECDH_CLIENT_HELLO = Out_Alert_FATAL_BAD_CERTIFICATE
-    lambda 32 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 32 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 32 In_FINISHED = Out_CHANGE_CIPHER_SPEC_FINISHED
-    lambda 32 In_APPLICATION = Out_TIMEOUT
-    lambda 32 In_CERTIFICATE = Out_TIMEOUT
-    lambda 32 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 32 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 32 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 32 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 14 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 14 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 14 In_CHANGE_CIPHER_SPEC = Out_Alert_FATAL_DECODE_ERROR
-    lambda 14 In_FINISHED = Out_Alert_FATAL_NO_CERTIFICATE_RESERVED
-    lambda 14 In_APPLICATION = Out_TIMEOUT
-    lambda 14 In_CERTIFICATE = Out_TIMEOUT
-    lambda 14 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 14 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_NO_CERTIFICATE_RESERVED
-    lambda 14 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 14 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 37 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 37 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 37 In_CHANGE_CIPHER_SPEC = Out_Alert_FATAL_DECODE_ERROR
-    lambda 37 In_FINISHED = Out_Alert_FATAL_HANDSHAKE_FAILURE
-    lambda 37 In_APPLICATION = Out_TIMEOUT
-    lambda 37 In_CERTIFICATE = Out_TIMEOUT
-    lambda 37 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 37 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 37 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 37 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 25 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 25 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 25 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 25 In_FINISHED = Out_TIMEOUT
-    lambda 25 In_APPLICATION = Out_TIMEOUT
-    lambda 25 In_CERTIFICATE = Out_TIMEOUT
-    lambda 25 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 25 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 25 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 25 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 39 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 39 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 39 In_CHANGE_CIPHER_SPEC = Out_Alert_FATAL_DECODE_ERROR
-    lambda 39 In_FINISHED = Out_TIMEOUT
-    lambda 39 In_APPLICATION = Out_TIMEOUT
-    lambda 39 In_CERTIFICATE = Out_TIMEOUT
-    lambda 39 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 39 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 39 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 39 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 17 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 17 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 17 In_CHANGE_CIPHER_SPEC = Out_Alert_FATAL_DECODE_ERROR
-    lambda 17 In_FINISHED = Out_Alert_FATAL_HANDSHAKE_FAILURE
-    lambda 17 In_APPLICATION = Out_TIMEOUT
-    lambda 17 In_CERTIFICATE = Out_TIMEOUT
-    lambda 17 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 17 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_NO_CERTIFICATE_RESERVED
-    lambda 17 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 17 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 6 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 6 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 6 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 6 In_FINISHED = Out_TIMEOUT
-    lambda 6 In_APPLICATION = Out_TIMEOUT
-    lambda 6 In_CERTIFICATE = Out_TIMEOUT
-    lambda 6 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 6 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 6 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 6 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 27 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 27 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 27 In_CHANGE_CIPHER_SPEC = Out_Alert_FATAL_DECODE_ERROR
-    lambda 27 In_FINISHED = Out_TIMEOUT
-    lambda 27 In_APPLICATION = Out_TIMEOUT
-    lambda 27 In_CERTIFICATE = Out_TIMEOUT
-    lambda 27 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 27 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 27 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 27 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 44 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 44 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 44 In_CHANGE_CIPHER_SPEC = Out_Alert_FATAL_DECODE_ERROR
-    lambda 44 In_FINISHED = Out_Alert_FATAL_HANDSHAKE_FAILURE
-    lambda 44 In_APPLICATION = Out_TIMEOUT
-    lambda 44 In_CERTIFICATE = Out_TIMEOUT
-    lambda 44 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 44 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_BAD_CERTIFICATE
-    lambda 44 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 44 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 33 In_ECDH_CLIENT_HELLO = Out_Alert_FATAL_BAD_CERTIFICATE
-    lambda 33 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 33 In_CHANGE_CIPHER_SPEC = Out_Alert_FATAL_DECODE_ERROR
-    lambda 33 In_FINISHED = Out_CHANGE_CIPHER_SPEC_FINISHED
-    lambda 33 In_APPLICATION = Out_TIMEOUT
-    lambda 33 In_CERTIFICATE = Out_TIMEOUT
-    lambda 33 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 33 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 33 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 33 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 31 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 31 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 31 In_CHANGE_CIPHER_SPEC = Out_Alert_FATAL_DECODE_ERROR
-    lambda 31 In_FINISHED = Out_Alert_FATAL_BAD_CERTIFICATE
-    lambda 31 In_APPLICATION = Out_TIMEOUT
-    lambda 31 In_CERTIFICATE = Out_TIMEOUT
-    lambda 31 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 31 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 31 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 31 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 11 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 11 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 11 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 11 In_FINISHED = Out_TIMEOUT
-    lambda 11 In_APPLICATION = Out_TIMEOUT
-    lambda 11 In_CERTIFICATE = Out_TIMEOUT
-    lambda 11 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 11 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 11 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 11 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 49 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 49 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 49 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 49 In_FINISHED = Out_TIMEOUT
-    lambda 49 In_APPLICATION = Out_TIMEOUT
-    lambda 49 In_CERTIFICATE = Out_TIMEOUT
-    lambda 49 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 49 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_NO_CERTIFICATE_RESERVED
-    lambda 49 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 49 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 50 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 50 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 50 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 50 In_FINISHED = Out_TIMEOUT
-    lambda 50 In_APPLICATION = Out_TIMEOUT
-    lambda 50 In_CERTIFICATE = Out_TIMEOUT
-    lambda 50 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 50 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 50 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 50 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 52 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 52 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 52 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 52 In_FINISHED = Out_TIMEOUT
-    lambda 52 In_APPLICATION = Out_TIMEOUT
-    lambda 52 In_CERTIFICATE = Out_TIMEOUT
-    lambda 52 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 52 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_BAD_CERTIFICATE
-    lambda 52 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 52 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 47 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 47 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 47 In_CHANGE_CIPHER_SPEC = Out_Alert_FATAL_DECODE_ERROR
-    lambda 47 In_FINISHED = Out_Alert_FATAL_HANDSHAKE_FAILURE
-    lambda 47 In_APPLICATION = Out_TIMEOUT
-    lambda 47 In_CERTIFICATE = Out_TIMEOUT
-    lambda 47 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 47 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 47 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 47 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 18 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 18 In_ECDH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_HANDSHAKE_FAILURE
-    lambda 18 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 18 In_FINISHED = Out_TIMEOUT
-    lambda 18 In_APPLICATION = Out_TIMEOUT
-    lambda 18 In_CERTIFICATE = Out_TIMEOUT
-    lambda 18 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 18 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 18 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 18 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 26 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 26 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 26 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 26 In_FINISHED = Out_Alert_FATAL_HANDSHAKE_FAILURE
-    lambda 26 In_APPLICATION = Out_TIMEOUT
-    lambda 26 In_CERTIFICATE = Out_TIMEOUT
-    lambda 26 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 26 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_BAD_CERTIFICATE
-    lambda 26 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 26 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 12 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 12 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 12 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 12 In_FINISHED = Out_Alert_FATAL_HANDSHAKE_FAILURE
-    lambda 12 In_APPLICATION = Out_TIMEOUT
-    lambda 12 In_CERTIFICATE = Out_TIMEOUT
-    lambda 12 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 12 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 12 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 12 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 29 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 29 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 29 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 29 In_FINISHED = Out_TIMEOUT
-    lambda 29 In_APPLICATION = Out_TIMEOUT
-    lambda 29 In_CERTIFICATE = Out_TIMEOUT
-    lambda 29 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 29 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 29 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 29 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 28 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 28 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 28 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 28 In_FINISHED = Out_TIMEOUT
-    lambda 28 In_APPLICATION = Out_TIMEOUT
-    lambda 28 In_CERTIFICATE = Out_TIMEOUT
-    lambda 28 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 28 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 28 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 28 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 16 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 16 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 16 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 16 In_FINISHED = Out_TIMEOUT
-    lambda 16 In_APPLICATION = Out_TIMEOUT
-    lambda 16 In_CERTIFICATE = Out_TIMEOUT
-    lambda 16 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 16 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 16 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 16 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 38 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 38 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 38 In_CHANGE_CIPHER_SPEC = Out_Alert_FATAL_DECODE_ERROR
-    lambda 38 In_FINISHED = Out_TIMEOUT
-    lambda 38 In_APPLICATION = Out_TIMEOUT
-    lambda 38 In_CERTIFICATE = Out_TIMEOUT
-    lambda 38 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 38 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 38 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 38 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 45 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 45 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 45 In_CHANGE_CIPHER_SPEC = Out_Alert_FATAL_DECODE_ERROR
-    lambda 45 In_FINISHED = Out_TIMEOUT
-    lambda 45 In_APPLICATION = Out_TIMEOUT
-    lambda 45 In_CERTIFICATE = Out_TIMEOUT
-    lambda 45 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 45 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 45 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 45 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 40 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 40 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 40 In_CHANGE_CIPHER_SPEC = Out_Alert_FATAL_DECODE_ERROR
-    lambda 40 In_FINISHED = Out_TIMEOUT
-    lambda 40 In_APPLICATION = Out_TIMEOUT
-    lambda 40 In_CERTIFICATE = Out_TIMEOUT
-    lambda 40 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 40 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 40 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 40 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 21 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 21 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 21 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 21 In_FINISHED = Out_TIMEOUT
-    lambda 21 In_APPLICATION = Out_TIMEOUT
-    lambda 21 In_CERTIFICATE = Out_TIMEOUT
-    lambda 21 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 21 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 21 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 21 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 19 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 19 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 19 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 19 In_FINISHED = Out_TIMEOUT
-    lambda 19 In_APPLICATION = Out_TIMEOUT
-    lambda 19 In_CERTIFICATE = Out_TIMEOUT
-    lambda 19 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 19 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 19 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 19 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 41 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 41 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 41 In_CHANGE_CIPHER_SPEC = Out_Alert_FATAL_DECODE_ERROR
-    lambda 41 In_FINISHED = Out_TIMEOUT
-    lambda 41 In_APPLICATION = Out_TIMEOUT
-    lambda 41 In_CERTIFICATE = Out_TIMEOUT
-    lambda 41 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 41 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_NO_CERTIFICATE_RESERVED
-    lambda 41 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 41 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 54 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 54 In_ECDH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_HANDSHAKE_FAILURE
-    lambda 54 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 54 In_FINISHED = Out_TIMEOUT
-    lambda 54 In_APPLICATION = Out_TIMEOUT
-    lambda 54 In_CERTIFICATE = Out_TIMEOUT
-    lambda 54 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 54 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 54 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 54 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 57 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 57 In_ECDH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_HANDSHAKE_FAILURE
-    lambda 57 In_CHANGE_CIPHER_SPEC = Out_Alert_FATAL_DECODE_ERROR
-    lambda 57 In_FINISHED = Out_TIMEOUT
-    lambda 57 In_APPLICATION = Out_TIMEOUT
-    lambda 57 In_CERTIFICATE = Out_TIMEOUT
-    lambda 57 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 57 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 57 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 57 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 34 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 34 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 34 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 34 In_FINISHED = Out_TIMEOUT
-    lambda 34 In_APPLICATION = Out_APPLICATION
-    lambda 34 In_CERTIFICATE = Out_TIMEOUT
-    lambda 34 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 34 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 34 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 34 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 48 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 48 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 48 In_CHANGE_CIPHER_SPEC = Out_Alert_FATAL_DECODE_ERROR
-    lambda 48 In_FINISHED = Out_TIMEOUT
-    lambda 48 In_APPLICATION = Out_APPLICATION
-    lambda 48 In_CERTIFICATE = Out_TIMEOUT
-    lambda 48 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 48 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 48 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 48 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 46 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 46 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 46 In_CHANGE_CIPHER_SPEC = Out_Alert_FATAL_DECODE_ERROR
-    lambda 46 In_FINISHED = Out_TIMEOUT
-    lambda 46 In_APPLICATION = Out_TIMEOUT
-    lambda 46 In_CERTIFICATE = Out_TIMEOUT
-    lambda 46 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 46 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 46 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 46 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 42 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 42 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 42 In_CHANGE_CIPHER_SPEC = Out_Alert_FATAL_DECODE_ERROR
-    lambda 42 In_FINISHED = Out_TIMEOUT
-    lambda 42 In_APPLICATION = Out_TIMEOUT
-    lambda 42 In_CERTIFICATE = Out_TIMEOUT
-    lambda 42 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 42 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 42 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 42 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 58 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 58 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 58 In_CHANGE_CIPHER_SPEC = Out_Alert_FATAL_DECODE_ERROR
-    lambda 58 In_FINISHED = Out_TIMEOUT
-    lambda 58 In_APPLICATION = Out_TIMEOUT
-    lambda 58 In_CERTIFICATE = Out_TIMEOUT
-    lambda 58 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 58 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_BAD_CERTIFICATE
-    lambda 58 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 58 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 35 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 35 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 35 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 35 In_FINISHED = Out_TIMEOUT
-    lambda 35 In_APPLICATION = Out_TIMEOUT
-    lambda 35 In_CERTIFICATE = Out_TIMEOUT
-    lambda 35 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 35 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 35 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 35 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 36 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 36 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 36 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 36 In_FINISHED = Out_TIMEOUT
-    lambda 36 In_APPLICATION = Out_TIMEOUT
-    lambda 36 In_CERTIFICATE = Out_TIMEOUT
-    lambda 36 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 36 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 36 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 36 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 59 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 59 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 59 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 59 In_FINISHED = Out_TIMEOUT
-    lambda 59 In_APPLICATION = Out_TIMEOUT
-    lambda 59 In_CERTIFICATE = Out_TIMEOUT
-    lambda 59 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 59 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_BAD_CERTIFICATE
-    lambda 59 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 59 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 60 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 60 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 60 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 60 In_FINISHED = Out_TIMEOUT
-    lambda 60 In_APPLICATION = Out_TIMEOUT
-    lambda 60 In_CERTIFICATE = Out_TIMEOUT
-    lambda 60 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 60 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_NO_CERTIFICATE_RESERVED
-    lambda 60 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 60 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 61 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 61 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 61 In_CHANGE_CIPHER_SPEC = Out_Alert_FATAL_DECODE_ERROR
-    lambda 61 In_FINISHED = Out_TIMEOUT
-    lambda 61 In_APPLICATION = Out_TIMEOUT
-    lambda 61 In_CERTIFICATE = Out_TIMEOUT
-    lambda 61 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 61 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_NO_CERTIFICATE_RESERVED
-    lambda 61 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 61 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 24 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 24 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 24 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 24 In_FINISHED = Out_TIMEOUT
-    lambda 24 In_APPLICATION = Out_TIMEOUT
-    lambda 24 In_CERTIFICATE = Out_TIMEOUT
-    lambda 24 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 24 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 24 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 24 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 51 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 51 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 51 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 51 In_FINISHED = Out_TIMEOUT
-    lambda 51 In_APPLICATION = Out_TIMEOUT
-    lambda 51 In_CERTIFICATE = Out_TIMEOUT
-    lambda 51 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 51 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 51 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 51 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 53 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 53 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 53 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 53 In_FINISHED = Out_TIMEOUT
-    lambda 53 In_APPLICATION = Out_TIMEOUT
-    lambda 53 In_CERTIFICATE = Out_TIMEOUT
-    lambda 53 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 53 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 53 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 53 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 63 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 63 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 63 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 63 In_FINISHED = Out_TIMEOUT
-    lambda 63 In_APPLICATION = Out_TIMEOUT
-    lambda 63 In_CERTIFICATE = Out_TIMEOUT
-    lambda 63 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 63 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_NO_CERTIFICATE_RESERVED
-    lambda 63 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 63 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 23 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 23 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 23 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 23 In_FINISHED = Out_TIMEOUT
-    lambda 23 In_APPLICATION = Out_TIMEOUT
-    lambda 23 In_CERTIFICATE = Out_TIMEOUT
-    lambda 23 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 23 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 23 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 23 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 43 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 43 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 43 In_CHANGE_CIPHER_SPEC = Out_Alert_FATAL_DECODE_ERROR
-    lambda 43 In_FINISHED = Out_TIMEOUT
-    lambda 43 In_APPLICATION = Out_TIMEOUT
-    lambda 43 In_CERTIFICATE = Out_TIMEOUT
-    lambda 43 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 43 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 43 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 43 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 56 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 56 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 56 In_CHANGE_CIPHER_SPEC = Out_Alert_FATAL_DECODE_ERROR
-    lambda 56 In_FINISHED = Out_Alert_FATAL_HANDSHAKE_FAILURE
-    lambda 56 In_APPLICATION = Out_TIMEOUT
-    lambda 56 In_CERTIFICATE = Out_TIMEOUT
-    lambda 56 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 56 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_NO_CERTIFICATE_RESERVED
-    lambda 56 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 56 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 62 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 62 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 62 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 62 In_FINISHED = Out_TIMEOUT
-    lambda 62 In_APPLICATION = Out_TIMEOUT
-    lambda 62 In_CERTIFICATE = Out_TIMEOUT
-    lambda 62 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 62 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_NO_CERTIFICATE_RESERVED
-    lambda 62 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 62 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 30 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 30 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 30 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 30 In_FINISHED = Out_Alert_FATAL_HANDSHAKE_FAILURE
-    lambda 30 In_APPLICATION = Out_TIMEOUT
-    lambda 30 In_CERTIFICATE = Out_TIMEOUT
-    lambda 30 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 30 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 30 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 30 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 55 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 55 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 55 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 55 In_FINISHED = Out_Alert_FATAL_HANDSHAKE_FAILURE
-    lambda 55 In_APPLICATION = Out_TIMEOUT
-    lambda 55 In_CERTIFICATE = Out_TIMEOUT
-    lambda 55 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 55 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_NO_CERTIFICATE_RESERVED
-    lambda 55 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 55 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 22 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 22 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 22 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 22 In_FINISHED = Out_TIMEOUT
-    lambda 22 In_APPLICATION = Out_TIMEOUT
-    lambda 22 In_CERTIFICATE = Out_TIMEOUT
-    lambda 22 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 22 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 22 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 22 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 10 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 10 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 10 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 10 In_FINISHED = Out_TIMEOUT
-    lambda 10 In_APPLICATION = Out_TIMEOUT
-    lambda 10 In_CERTIFICATE = Out_TIMEOUT
-    lambda 10 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 10 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 10 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 10 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 64 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 64 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 64 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 64 In_FINISHED = Out_Alert_FATAL_NO_CERTIFICATE_RESERVED
-    lambda 64 In_APPLICATION = Out_TIMEOUT
-    lambda 64 In_CERTIFICATE = Out_TIMEOUT
-    lambda 64 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 64 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_NO_CERTIFICATE_RESERVED
-    lambda 64 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 64 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 65 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 65 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 65 In_CHANGE_CIPHER_SPEC = Out_Alert_FATAL_DECODE_ERROR
-    lambda 65 In_FINISHED = Out_Alert_FATAL_NO_CERTIFICATE_RESERVED
-    lambda 65 In_APPLICATION = Out_TIMEOUT
-    lambda 65 In_CERTIFICATE = Out_TIMEOUT
-    lambda 65 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 65 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_NO_CERTIFICATE_RESERVED
-    lambda 65 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 65 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda _ _ = error "haal-gen: undefined transition"
+import Haal.Automaton.MealyAutomaton (MealyAutomaton, mkMealyAutomatonTable)
+
+data PionEcdheCertReqInput
+    = In_ECDH_CLIENT_HELLO
+    | In_ECDH_CLIENT_KEY_EXCHANGE
+    | In_CHANGE_CIPHER_SPEC
+    | In_FINISHED
+    | In_APPLICATION
+    | In_CERTIFICATE
+    | In_EMPTY_CERTIFICATE
+    | In_CERTIFICATE_VERIFY
+    | In_Alert_WARNING_CLOSE_NOTIFY
+    | In_Alert_FATAL_UNEXPECTED_MESSAGE
+    deriving (Show, Eq, Ord, Enum, Bounded)
+
+data PionEcdheCertReqOutput
+    = Out_HELLO_VERIFY_REQUEST
+    | Out_TIMEOUT
+    | Out_Alert_FATAL_CLOSE_NOTIFY
+    | Out_SOCKET_CLOSED
+    | Out_SERVER_HELLO_CERTIFICATE_ECDHE_SERVER_KEY_EXCHANGE_CERTIFICATE_REQUEST_SERVER_HELLO_DONE
+    | Out_Alert_FATAL_NO_CERTIFICATE_RESERVED
+    | Out_Alert_FATAL_HANDSHAKE_FAILURE
+    | Out_Alert_FATAL_BAD_CERTIFICATE
+    | Out_CHANGE_CIPHER_SPEC_FINISHED
+    | Out_Alert_FATAL_DECODE_ERROR
+    | Out_APPLICATION
+    deriving (Show, Eq, Ord, Enum, Bounded)
+
+{- Transitions (state  input -> next state / output):
+    0     In_ECDH_CLIENT_HELLO               -> 1 / Out_HELLO_VERIFY_REQUEST
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 2 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 2 / Out_TIMEOUT
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 2 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 2 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 2 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    1     In_ECDH_CLIENT_HELLO               -> 5 / Out_SERVER_HELLO_CERTIFICATE_ECDHE_SERVER_KEY_EXCHANGE_CERTIFICATE_REQUEST_SERVER_HELLO_DONE
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 2 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 2 / Out_TIMEOUT
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 2 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 2 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 2 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    2     In_ECDH_CLIENT_HELLO               -> 2 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 2 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 2 / Out_TIMEOUT
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 2 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 2 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 2 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    3     In_ECDH_CLIENT_HELLO               -> 3 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 3 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 3 / Out_TIMEOUT
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 3 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 3 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 3 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 3 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 3 / Out_TIMEOUT
+    4     In_ECDH_CLIENT_HELLO               -> 4 / Out_SOCKET_CLOSED
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 4 / Out_SOCKET_CLOSED
+          In_CHANGE_CIPHER_SPEC              -> 4 / Out_SOCKET_CLOSED
+          In_FINISHED                        -> 4 / Out_SOCKET_CLOSED
+          In_APPLICATION                     -> 4 / Out_SOCKET_CLOSED
+          In_CERTIFICATE                     -> 4 / Out_SOCKET_CLOSED
+          In_EMPTY_CERTIFICATE               -> 4 / Out_SOCKET_CLOSED
+          In_CERTIFICATE_VERIFY              -> 4 / Out_SOCKET_CLOSED
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_SOCKET_CLOSED
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_SOCKET_CLOSED
+    5     In_ECDH_CLIENT_HELLO               -> 6 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 7 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 8 / Out_TIMEOUT
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 9 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 10 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 11 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    6     In_ECDH_CLIENT_HELLO               -> 6 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 13 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 8 / Out_TIMEOUT
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 22 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 23 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 11 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    7     In_ECDH_CLIENT_HELLO               -> 12 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 13 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 14 / Out_TIMEOUT
+          In_FINISHED                        -> 4 / Out_Alert_FATAL_NO_CERTIFICATE_RESERVED
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 15 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 16 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 4 / Out_Alert_FATAL_NO_CERTIFICATE_RESERVED
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    8     In_ECDH_CLIENT_HELLO               -> 8 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 4 / Out_Alert_FATAL_HANDSHAKE_FAILURE
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 8 / Out_TIMEOUT
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 18 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 18 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 11 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    9     In_ECDH_CLIENT_HELLO               -> 19 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 20 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 21 / Out_TIMEOUT
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 22 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 23 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 24 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    10    In_ECDH_CLIENT_HELLO               -> 19 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 64 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 21 / Out_TIMEOUT
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 22 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 23 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 24 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    11    In_ECDH_CLIENT_HELLO               -> 11 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 49 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 11 / Out_TIMEOUT
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 50 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 51 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 11 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    12    In_ECDH_CLIENT_HELLO               -> 12 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 13 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 37 / Out_TIMEOUT
+          In_FINISHED                        -> 4 / Out_Alert_FATAL_HANDSHAKE_FAILURE
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 15 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 16 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 53 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    13    In_ECDH_CLIENT_HELLO               -> 12 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 13 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 17 / Out_TIMEOUT
+          In_FINISHED                        -> 4 / Out_Alert_FATAL_HANDSHAKE_FAILURE
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 15 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 16 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 4 / Out_Alert_FATAL_NO_CERTIFICATE_RESERVED
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    14    In_ECDH_CLIENT_HELLO               -> 37 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 17 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 4 / Out_Alert_FATAL_DECODE_ERROR
+          In_FINISHED                        -> 4 / Out_Alert_FATAL_NO_CERTIFICATE_RESERVED
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 27 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 38 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 4 / Out_Alert_FATAL_NO_CERTIFICATE_RESERVED
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    15    In_ECDH_CLIENT_HELLO               -> 25 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 26 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 27 / Out_TIMEOUT
+          In_FINISHED                        -> 28 / Out_TIMEOUT
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 15 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 16 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 29 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    16    In_ECDH_CLIENT_HELLO               -> 25 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 55 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 38 / Out_TIMEOUT
+          In_FINISHED                        -> 28 / Out_TIMEOUT
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 15 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 16 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 29 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    17    In_ECDH_CLIENT_HELLO               -> 37 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 17 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 4 / Out_Alert_FATAL_DECODE_ERROR
+          In_FINISHED                        -> 4 / Out_Alert_FATAL_HANDSHAKE_FAILURE
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 27 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 38 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 4 / Out_Alert_FATAL_NO_CERTIFICATE_RESERVED
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    18    In_ECDH_CLIENT_HELLO               -> 21 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 4 / Out_Alert_FATAL_HANDSHAKE_FAILURE
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 21 / Out_TIMEOUT
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 18 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 18 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 24 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    19    In_ECDH_CLIENT_HELLO               -> 19 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 19 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 21 / Out_TIMEOUT
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 22 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 23 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 24 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    20    In_ECDH_CLIENT_HELLO               -> 30 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 25 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 31 / Out_TIMEOUT
+          In_FINISHED                        -> 4 / Out_Alert_FATAL_BAD_CERTIFICATE
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 15 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 16 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 32 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    21    In_ECDH_CLIENT_HELLO               -> 21 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 21 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 21 / Out_TIMEOUT
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 18 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 18 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 24 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    22    In_ECDH_CLIENT_HELLO               -> 19 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 26 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 21 / Out_TIMEOUT
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 22 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 23 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 24 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    23    In_ECDH_CLIENT_HELLO               -> 19 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 55 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 21 / Out_TIMEOUT
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 22 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 23 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 24 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    24    In_ECDH_CLIENT_HELLO               -> 24 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 24 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 24 / Out_TIMEOUT
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 50 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 51 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 24 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    25    In_ECDH_CLIENT_HELLO               -> 25 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 25 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 40 / Out_TIMEOUT
+          In_FINISHED                        -> 28 / Out_TIMEOUT
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 15 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 16 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 29 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    26    In_ECDH_CLIENT_HELLO               -> 30 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 25 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 44 / Out_TIMEOUT
+          In_FINISHED                        -> 4 / Out_Alert_FATAL_HANDSHAKE_FAILURE
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 15 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 16 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 4 / Out_Alert_FATAL_BAD_CERTIFICATE
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    27    In_ECDH_CLIENT_HELLO               -> 40 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 44 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 4 / Out_Alert_FATAL_DECODE_ERROR
+          In_FINISHED                        -> 45 / Out_TIMEOUT
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 27 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 38 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 46 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    28    In_ECDH_CLIENT_HELLO               -> 28 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 28 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 45 / Out_TIMEOUT
+          In_FINISHED                        -> 28 / Out_TIMEOUT
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 54 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 54 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 29 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    29    In_ECDH_CLIENT_HELLO               -> 29 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 29 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 46 / Out_TIMEOUT
+          In_FINISHED                        -> 29 / Out_TIMEOUT
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 35 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 36 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 29 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    30    In_ECDH_CLIENT_HELLO               -> 30 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 25 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 47 / Out_TIMEOUT
+          In_FINISHED                        -> 4 / Out_Alert_FATAL_HANDSHAKE_FAILURE
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 15 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 16 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 29 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    31    In_ECDH_CLIENT_HELLO               -> 47 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 40 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 4 / Out_Alert_FATAL_DECODE_ERROR
+          In_FINISHED                        -> 4 / Out_Alert_FATAL_BAD_CERTIFICATE
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 27 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 38 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 33 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    32    In_ECDH_CLIENT_HELLO               -> 4 / Out_Alert_FATAL_BAD_CERTIFICATE
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 29 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 33 / Out_TIMEOUT
+          In_FINISHED                        -> 34 / Out_CHANGE_CIPHER_SPEC_FINISHED
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 35 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 36 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 29 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    33    In_ECDH_CLIENT_HELLO               -> 4 / Out_Alert_FATAL_BAD_CERTIFICATE
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 46 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 4 / Out_Alert_FATAL_DECODE_ERROR
+          In_FINISHED                        -> 48 / Out_CHANGE_CIPHER_SPEC_FINISHED
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 42 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 43 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 46 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    34    In_ECDH_CLIENT_HELLO               -> 34 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 34 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 48 / Out_TIMEOUT
+          In_FINISHED                        -> 34 / Out_TIMEOUT
+          In_APPLICATION                     -> 4 / Out_APPLICATION
+          In_CERTIFICATE                     -> 34 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 34 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 34 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    35    In_ECDH_CLIENT_HELLO               -> 29 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 59 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 42 / Out_TIMEOUT
+          In_FINISHED                        -> 29 / Out_TIMEOUT
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 35 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 36 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 29 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    36    In_ECDH_CLIENT_HELLO               -> 29 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 60 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 43 / Out_TIMEOUT
+          In_FINISHED                        -> 29 / Out_TIMEOUT
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 35 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 36 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 29 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    37    In_ECDH_CLIENT_HELLO               -> 37 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 17 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 4 / Out_Alert_FATAL_DECODE_ERROR
+          In_FINISHED                        -> 4 / Out_Alert_FATAL_HANDSHAKE_FAILURE
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 27 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 38 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 39 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    38    In_ECDH_CLIENT_HELLO               -> 40 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 56 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 4 / Out_Alert_FATAL_DECODE_ERROR
+          In_FINISHED                        -> 45 / Out_TIMEOUT
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 27 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 38 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 46 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    39    In_ECDH_CLIENT_HELLO               -> 39 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 41 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 4 / Out_Alert_FATAL_DECODE_ERROR
+          In_FINISHED                        -> 39 / Out_TIMEOUT
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 42 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 43 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 39 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    40    In_ECDH_CLIENT_HELLO               -> 40 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 40 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 4 / Out_Alert_FATAL_DECODE_ERROR
+          In_FINISHED                        -> 45 / Out_TIMEOUT
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 27 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 38 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 46 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    41    In_ECDH_CLIENT_HELLO               -> 39 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 41 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 4 / Out_Alert_FATAL_DECODE_ERROR
+          In_FINISHED                        -> 39 / Out_TIMEOUT
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 42 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 43 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 4 / Out_Alert_FATAL_NO_CERTIFICATE_RESERVED
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    42    In_ECDH_CLIENT_HELLO               -> 46 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 58 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 4 / Out_Alert_FATAL_DECODE_ERROR
+          In_FINISHED                        -> 46 / Out_TIMEOUT
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 42 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 43 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 46 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    43    In_ECDH_CLIENT_HELLO               -> 46 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 61 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 4 / Out_Alert_FATAL_DECODE_ERROR
+          In_FINISHED                        -> 46 / Out_TIMEOUT
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 42 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 43 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 46 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    44    In_ECDH_CLIENT_HELLO               -> 47 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 40 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 4 / Out_Alert_FATAL_DECODE_ERROR
+          In_FINISHED                        -> 4 / Out_Alert_FATAL_HANDSHAKE_FAILURE
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 27 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 38 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 4 / Out_Alert_FATAL_BAD_CERTIFICATE
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    45    In_ECDH_CLIENT_HELLO               -> 45 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 45 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 4 / Out_Alert_FATAL_DECODE_ERROR
+          In_FINISHED                        -> 45 / Out_TIMEOUT
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 57 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 57 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 46 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    46    In_ECDH_CLIENT_HELLO               -> 46 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 46 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 4 / Out_Alert_FATAL_DECODE_ERROR
+          In_FINISHED                        -> 46 / Out_TIMEOUT
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 42 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 43 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 46 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    47    In_ECDH_CLIENT_HELLO               -> 47 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 40 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 4 / Out_Alert_FATAL_DECODE_ERROR
+          In_FINISHED                        -> 4 / Out_Alert_FATAL_HANDSHAKE_FAILURE
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 27 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 38 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 46 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    48    In_ECDH_CLIENT_HELLO               -> 48 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 48 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 4 / Out_Alert_FATAL_DECODE_ERROR
+          In_FINISHED                        -> 48 / Out_TIMEOUT
+          In_APPLICATION                     -> 4 / Out_APPLICATION
+          In_CERTIFICATE                     -> 48 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 48 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 48 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    49    In_ECDH_CLIENT_HELLO               -> 11 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 49 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 11 / Out_TIMEOUT
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 50 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 51 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 4 / Out_Alert_FATAL_NO_CERTIFICATE_RESERVED
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    50    In_ECDH_CLIENT_HELLO               -> 24 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 52 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 24 / Out_TIMEOUT
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 50 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 51 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 24 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    51    In_ECDH_CLIENT_HELLO               -> 24 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 62 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 24 / Out_TIMEOUT
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 50 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 51 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 24 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    52    In_ECDH_CLIENT_HELLO               -> 24 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 24 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 24 / Out_TIMEOUT
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 50 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 51 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 4 / Out_Alert_FATAL_BAD_CERTIFICATE
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    53    In_ECDH_CLIENT_HELLO               -> 53 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 63 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 39 / Out_TIMEOUT
+          In_FINISHED                        -> 53 / Out_TIMEOUT
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 35 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 36 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 53 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    54    In_ECDH_CLIENT_HELLO               -> 28 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 4 / Out_Alert_FATAL_HANDSHAKE_FAILURE
+          In_CHANGE_CIPHER_SPEC              -> 57 / Out_TIMEOUT
+          In_FINISHED                        -> 28 / Out_TIMEOUT
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 54 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 54 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 29 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    55    In_ECDH_CLIENT_HELLO               -> 30 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 25 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 56 / Out_TIMEOUT
+          In_FINISHED                        -> 4 / Out_Alert_FATAL_HANDSHAKE_FAILURE
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 15 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 16 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 4 / Out_Alert_FATAL_NO_CERTIFICATE_RESERVED
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    56    In_ECDH_CLIENT_HELLO               -> 47 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 40 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 4 / Out_Alert_FATAL_DECODE_ERROR
+          In_FINISHED                        -> 4 / Out_Alert_FATAL_HANDSHAKE_FAILURE
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 27 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 38 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 4 / Out_Alert_FATAL_NO_CERTIFICATE_RESERVED
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    57    In_ECDH_CLIENT_HELLO               -> 45 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 4 / Out_Alert_FATAL_HANDSHAKE_FAILURE
+          In_CHANGE_CIPHER_SPEC              -> 4 / Out_Alert_FATAL_DECODE_ERROR
+          In_FINISHED                        -> 45 / Out_TIMEOUT
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 57 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 57 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 46 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    58    In_ECDH_CLIENT_HELLO               -> 46 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 46 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 4 / Out_Alert_FATAL_DECODE_ERROR
+          In_FINISHED                        -> 46 / Out_TIMEOUT
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 42 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 43 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 4 / Out_Alert_FATAL_BAD_CERTIFICATE
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    59    In_ECDH_CLIENT_HELLO               -> 29 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 29 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 58 / Out_TIMEOUT
+          In_FINISHED                        -> 29 / Out_TIMEOUT
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 35 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 36 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 4 / Out_Alert_FATAL_BAD_CERTIFICATE
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    60    In_ECDH_CLIENT_HELLO               -> 29 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 29 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 61 / Out_TIMEOUT
+          In_FINISHED                        -> 29 / Out_TIMEOUT
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 35 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 36 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 4 / Out_Alert_FATAL_NO_CERTIFICATE_RESERVED
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    61    In_ECDH_CLIENT_HELLO               -> 46 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 46 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 4 / Out_Alert_FATAL_DECODE_ERROR
+          In_FINISHED                        -> 46 / Out_TIMEOUT
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 42 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 43 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 4 / Out_Alert_FATAL_NO_CERTIFICATE_RESERVED
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    62    In_ECDH_CLIENT_HELLO               -> 24 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 24 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 24 / Out_TIMEOUT
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 50 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 51 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 4 / Out_Alert_FATAL_NO_CERTIFICATE_RESERVED
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    63    In_ECDH_CLIENT_HELLO               -> 53 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 63 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 41 / Out_TIMEOUT
+          In_FINISHED                        -> 53 / Out_TIMEOUT
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 35 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 36 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 4 / Out_Alert_FATAL_NO_CERTIFICATE_RESERVED
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    64    In_ECDH_CLIENT_HELLO               -> 30 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 25 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 65 / Out_TIMEOUT
+          In_FINISHED                        -> 4 / Out_Alert_FATAL_NO_CERTIFICATE_RESERVED
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 15 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 16 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 4 / Out_Alert_FATAL_NO_CERTIFICATE_RESERVED
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    65    In_ECDH_CLIENT_HELLO               -> 47 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 40 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 4 / Out_Alert_FATAL_DECODE_ERROR
+          In_FINISHED                        -> 4 / Out_Alert_FATAL_NO_CERTIFICATE_RESERVED
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 27 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 38 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 4 / Out_Alert_FATAL_NO_CERTIFICATE_RESERVED
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+-}
+pionEcdheCertReq :: MealyAutomaton Int PionEcdheCertReqInput PionEcdheCertReqOutput
+pionEcdheCertReq =
+    case mkMealyAutomatonTable 66 0 deltaTable lambdaTable of
+        Right m -> m
+        Left err -> error ("haal-gen: invalid transition table: " ++ err)
+  where
+    deltaTable =
+        "\1\2\3\2\3\2\2\2\4\4\
+        \\5\2\3\2\3\2\2\2\4\4\
+        \\2\2\3\2\3\2\2\2\4\4\
+        \\3\3\3\3\3\3\3\3\3\3\
+        \\4\4\4\4\4\4\4\4\4\4\
+        \\6\7\3\8\3\9\10\11\4\4\
+        \\6\13\3\8\3\22\23\11\4\4\
+        \\12\13\14\4\3\15\16\4\4\4\
+        \\8\4\3\8\3\18\18\11\4\4\
+        \\19\20\3\21\3\22\23\24\4\4\
+        \\19\64\3\21\3\22\23\24\4\4\
+        \\11\49\3\11\3\50\51\11\4\4\
+        \\12\13\37\4\3\15\16\53\4\4\
+        \\12\13\17\4\3\15\16\4\4\4\
+        \\37\17\4\4\3\27\38\4\4\4\
+        \\25\26\27\28\3\15\16\29\4\4\
+        \\25\55\38\28\3\15\16\29\4\4\
+        \\37\17\4\4\3\27\38\4\4\4\
+        \\21\4\3\21\3\18\18\24\4\4\
+        \\19\19\3\21\3\22\23\24\4\4\
+        \\30\25\31\4\3\15\16\32\4\4\
+        \\21\21\3\21\3\18\18\24\4\4\
+        \\19\26\3\21\3\22\23\24\4\4\
+        \\19\55\3\21\3\22\23\24\4\4\
+        \\24\24\3\24\3\50\51\24\4\4\
+        \\25\25\40\28\3\15\16\29\4\4\
+        \\30\25\44\4\3\15\16\4\4\4\
+        \\40\44\4\45\3\27\38\46\4\4\
+        \\28\28\45\28\3\54\54\29\4\4\
+        \\29\29\46\29\3\35\36\29\4\4\
+        \\30\25\47\4\3\15\16\29\4\4\
+        \\47\40\4\4\3\27\38\33\4\4\
+        \\4\29\33\34\3\35\36\29\4\4\
+        \\4\46\4\48\3\42\43\46\4\4\
+        \\34\34\48\34\4\34\34\34\4\4\
+        \\29\59\42\29\3\35\36\29\4\4\
+        \\29\60\43\29\3\35\36\29\4\4\
+        \\37\17\4\4\3\27\38\39\4\4\
+        \\40\56\4\45\3\27\38\46\4\4\
+        \\39\41\4\39\3\42\43\39\4\4\
+        \\40\40\4\45\3\27\38\46\4\4\
+        \\39\41\4\39\3\42\43\4\4\4\
+        \\46\58\4\46\3\42\43\46\4\4\
+        \\46\61\4\46\3\42\43\46\4\4\
+        \\47\40\4\4\3\27\38\4\4\4\
+        \\45\45\4\45\3\57\57\46\4\4\
+        \\46\46\4\46\3\42\43\46\4\4\
+        \\47\40\4\4\3\27\38\46\4\4\
+        \\48\48\4\48\4\48\48\48\4\4\
+        \\11\49\3\11\3\50\51\4\4\4\
+        \\24\52\3\24\3\50\51\24\4\4\
+        \\24\62\3\24\3\50\51\24\4\4\
+        \\24\24\3\24\3\50\51\4\4\4\
+        \\53\63\39\53\3\35\36\53\4\4\
+        \\28\4\57\28\3\54\54\29\4\4\
+        \\30\25\56\4\3\15\16\4\4\4\
+        \\47\40\4\4\3\27\38\4\4\4\
+        \\45\4\4\45\3\57\57\46\4\4\
+        \\46\46\4\46\3\42\43\4\4\4\
+        \\29\29\58\29\3\35\36\4\4\4\
+        \\29\29\61\29\3\35\36\4\4\4\
+        \\46\46\4\46\3\42\43\4\4\4\
+        \\24\24\3\24\3\50\51\4\4\4\
+        \\53\63\41\53\3\35\36\4\4\4\
+        \\30\25\65\4\3\15\16\4\4\4\
+        \\47\40\4\4\3\27\38\4\4\4"
+    lambdaTable =
+        "\0\1\1\1\1\1\1\1\2\1\
+        \\4\1\1\1\1\1\1\1\2\1\
+        \\1\1\1\1\1\1\1\1\2\1\
+        \\1\1\1\1\1\1\1\1\1\1\
+        \\3\3\3\3\3\3\3\3\3\3\
+        \\1\1\1\1\1\1\1\1\2\1\
+        \\1\1\1\1\1\1\1\1\2\1\
+        \\1\1\1\5\1\1\1\5\2\1\
+        \\1\6\1\1\1\1\1\1\2\1\
+        \\1\1\1\1\1\1\1\1\2\1\
+        \\1\1\1\1\1\1\1\1\2\1\
+        \\1\1\1\1\1\1\1\1\2\1\
+        \\1\1\1\6\1\1\1\1\2\1\
+        \\1\1\1\6\1\1\1\5\2\1\
+        \\1\1\9\5\1\1\1\5\2\1\
+        \\1\1\1\1\1\1\1\1\2\1\
+        \\1\1\1\1\1\1\1\1\2\1\
+        \\1\1\9\6\1\1\1\5\2\1\
+        \\1\6\1\1\1\1\1\1\2\1\
+        \\1\1\1\1\1\1\1\1\2\1\
+        \\1\1\1\7\1\1\1\1\2\1\
+        \\1\1\1\1\1\1\1\1\2\1\
+        \\1\1\1\1\1\1\1\1\2\1\
+        \\1\1\1\1\1\1\1\1\2\1\
+        \\1\1\1\1\1\1\1\1\2\1\
+        \\1\1\1\1\1\1\1\1\2\1\
+        \\1\1\1\6\1\1\1\7\2\1\
+        \\1\1\9\1\1\1\1\1\2\1\
+        \\1\1\1\1\1\1\1\1\2\1\
+        \\1\1\1\1\1\1\1\1\2\1\
+        \\1\1\1\6\1\1\1\1\2\1\
+        \\1\1\9\7\1\1\1\1\2\1\
+        \\7\1\1\8\1\1\1\1\2\1\
+        \\7\1\9\8\1\1\1\1\2\1\
+        \\1\1\1\1\10\1\1\1\2\1\
+        \\1\1\1\1\1\1\1\1\2\1\
+        \\1\1\1\1\1\1\1\1\2\1\
+        \\1\1\9\6\1\1\1\1\2\1\
+        \\1\1\9\1\1\1\1\1\2\1\
+        \\1\1\9\1\1\1\1\1\2\1\
+        \\1\1\9\1\1\1\1\1\2\1\
+        \\1\1\9\1\1\1\1\5\2\1\
+        \\1\1\9\1\1\1\1\1\2\1\
+        \\1\1\9\1\1\1\1\1\2\1\
+        \\1\1\9\6\1\1\1\7\2\1\
+        \\1\1\9\1\1\1\1\1\2\1\
+        \\1\1\9\1\1\1\1\1\2\1\
+        \\1\1\9\6\1\1\1\1\2\1\
+        \\1\1\9\1\10\1\1\1\2\1\
+        \\1\1\1\1\1\1\1\5\2\1\
+        \\1\1\1\1\1\1\1\1\2\1\
+        \\1\1\1\1\1\1\1\1\2\1\
+        \\1\1\1\1\1\1\1\7\2\1\
+        \\1\1\1\1\1\1\1\1\2\1\
+        \\1\6\1\1\1\1\1\1\2\1\
+        \\1\1\1\6\1\1\1\5\2\1\
+        \\1\1\9\6\1\1\1\5\2\1\
+        \\1\6\9\1\1\1\1\1\2\1\
+        \\1\1\9\1\1\1\1\7\2\1\
+        \\1\1\1\1\1\1\1\7\2\1\
+        \\1\1\1\1\1\1\1\5\2\1\
+        \\1\1\9\1\1\1\1\5\2\1\
+        \\1\1\1\1\1\1\1\5\2\1\
+        \\1\1\1\1\1\1\1\5\2\1\
+        \\1\1\1\5\1\1\1\5\2\1\
+        \\1\1\9\5\1\1\1\5\2\1"
diff --git a/src/Haal/Models/DTLS/PionPsk.hs b/src/Haal/Models/DTLS/PionPsk.hs
--- a/src/Haal/Models/DTLS/PionPsk.hs
+++ b/src/Haal/Models/DTLS/PionPsk.hs
@@ -5,8 +5,7 @@
     , pionPsk
     ) where
 
-import qualified Data.Set as Set
-import Haal.Automaton.MealyAutomaton (MealyAutomaton, mkMealyAutomaton)
+import Haal.Automaton.MealyAutomaton (MealyAutomaton, mkMealyAutomatonTable)
 
 data PionPskInput
     = In_PSK_CLIENT_HELLO
@@ -30,204 +29,139 @@
     | Out_Alert_FATAL_DECODE_ERROR
     deriving (Show, Eq, Ord, Enum, Bounded)
 
+{- Transitions (state  input -> next state / output):
+    0     In_PSK_CLIENT_HELLO                -> 1 / Out_HELLO_VERIFY_REQUEST
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 2 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 2 / Out_TIMEOUT
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    1     In_PSK_CLIENT_HELLO                -> 5 / Out_SERVER_HELLO_PSK_SERVER_KEY_EXCHANGE_SERVER_HELLO_DONE
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 2 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 2 / Out_TIMEOUT
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    2     In_PSK_CLIENT_HELLO                -> 2 / Out_TIMEOUT
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 2 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 2 / Out_TIMEOUT
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    3     In_PSK_CLIENT_HELLO                -> 3 / Out_TIMEOUT
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 3 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 3 / Out_TIMEOUT
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 3 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 3 / Out_TIMEOUT
+    4     In_PSK_CLIENT_HELLO                -> 4 / Out_SOCKET_CLOSED
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 4 / Out_SOCKET_CLOSED
+          In_CHANGE_CIPHER_SPEC              -> 4 / Out_SOCKET_CLOSED
+          In_FINISHED                        -> 4 / Out_SOCKET_CLOSED
+          In_APPLICATION                     -> 4 / Out_SOCKET_CLOSED
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_SOCKET_CLOSED
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_SOCKET_CLOSED
+    5     In_PSK_CLIENT_HELLO                -> 6 / Out_TIMEOUT
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 7 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 8 / Out_TIMEOUT
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    6     In_PSK_CLIENT_HELLO                -> 6 / Out_TIMEOUT
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 9 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 8 / Out_TIMEOUT
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    7     In_PSK_CLIENT_HELLO                -> 9 / Out_TIMEOUT
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 9 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 10 / Out_TIMEOUT
+          In_FINISHED                        -> 11 / Out_CHANGE_CIPHER_SPEC_FINISHED
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    8     In_PSK_CLIENT_HELLO                -> 8 / Out_TIMEOUT
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 4 / Out_Alert_FATAL_HANDSHAKE_FAILURE
+          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
+          In_FINISHED                        -> 8 / Out_TIMEOUT
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    9     In_PSK_CLIENT_HELLO                -> 9 / Out_TIMEOUT
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 9 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 12 / Out_TIMEOUT
+          In_FINISHED                        -> 4 / Out_Alert_FATAL_HANDSHAKE_FAILURE
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    10    In_PSK_CLIENT_HELLO                -> 12 / Out_TIMEOUT
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 12 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 4 / Out_Alert_FATAL_DECODE_ERROR
+          In_FINISHED                        -> 13 / Out_CHANGE_CIPHER_SPEC_FINISHED
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    11    In_PSK_CLIENT_HELLO                -> 11 / Out_TIMEOUT
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 11 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 13 / Out_TIMEOUT
+          In_FINISHED                        -> 11 / Out_TIMEOUT
+          In_APPLICATION                     -> 4 / Out_APPLICATION
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    12    In_PSK_CLIENT_HELLO                -> 12 / Out_TIMEOUT
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 12 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 4 / Out_Alert_FATAL_DECODE_ERROR
+          In_FINISHED                        -> 4 / Out_Alert_FATAL_HANDSHAKE_FAILURE
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    13    In_PSK_CLIENT_HELLO                -> 13 / Out_TIMEOUT
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 13 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 4 / Out_Alert_FATAL_DECODE_ERROR
+          In_FINISHED                        -> 13 / Out_TIMEOUT
+          In_APPLICATION                     -> 4 / Out_APPLICATION
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_FATAL_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+-}
 pionPsk :: MealyAutomaton Int PionPskInput PionPskOutput
-pionPsk = mkMealyAutomaton delta lambda (Set.fromList [0..13]) 0
+pionPsk =
+    case mkMealyAutomatonTable 14 0 deltaTable lambdaTable of
+        Right m -> m
+        Left err -> error ("haal-gen: invalid transition table: " ++ err)
   where
-    delta 0 In_PSK_CLIENT_HELLO = 1
-    delta 0 In_PSK_CLIENT_KEY_EXCHANGE = 2
-    delta 0 In_CHANGE_CIPHER_SPEC = 3
-    delta 0 In_FINISHED = 2
-    delta 0 In_APPLICATION = 3
-    delta 0 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 0 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 3 In_PSK_CLIENT_HELLO = 3
-    delta 3 In_PSK_CLIENT_KEY_EXCHANGE = 3
-    delta 3 In_CHANGE_CIPHER_SPEC = 3
-    delta 3 In_FINISHED = 3
-    delta 3 In_APPLICATION = 3
-    delta 3 In_Alert_WARNING_CLOSE_NOTIFY = 3
-    delta 3 In_Alert_FATAL_UNEXPECTED_MESSAGE = 3
-    delta 1 In_PSK_CLIENT_HELLO = 5
-    delta 1 In_PSK_CLIENT_KEY_EXCHANGE = 2
-    delta 1 In_CHANGE_CIPHER_SPEC = 3
-    delta 1 In_FINISHED = 2
-    delta 1 In_APPLICATION = 3
-    delta 1 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 1 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 4 In_PSK_CLIENT_HELLO = 4
-    delta 4 In_PSK_CLIENT_KEY_EXCHANGE = 4
-    delta 4 In_CHANGE_CIPHER_SPEC = 4
-    delta 4 In_FINISHED = 4
-    delta 4 In_APPLICATION = 4
-    delta 4 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 4 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 2 In_PSK_CLIENT_HELLO = 2
-    delta 2 In_PSK_CLIENT_KEY_EXCHANGE = 2
-    delta 2 In_CHANGE_CIPHER_SPEC = 3
-    delta 2 In_FINISHED = 2
-    delta 2 In_APPLICATION = 3
-    delta 2 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 2 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 5 In_PSK_CLIENT_HELLO = 6
-    delta 5 In_PSK_CLIENT_KEY_EXCHANGE = 7
-    delta 5 In_CHANGE_CIPHER_SPEC = 3
-    delta 5 In_FINISHED = 8
-    delta 5 In_APPLICATION = 3
-    delta 5 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 5 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 8 In_PSK_CLIENT_HELLO = 8
-    delta 8 In_PSK_CLIENT_KEY_EXCHANGE = 4
-    delta 8 In_CHANGE_CIPHER_SPEC = 3
-    delta 8 In_FINISHED = 8
-    delta 8 In_APPLICATION = 3
-    delta 8 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 8 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 7 In_PSK_CLIENT_HELLO = 9
-    delta 7 In_PSK_CLIENT_KEY_EXCHANGE = 9
-    delta 7 In_CHANGE_CIPHER_SPEC = 10
-    delta 7 In_FINISHED = 11
-    delta 7 In_APPLICATION = 3
-    delta 7 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 7 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 9 In_PSK_CLIENT_HELLO = 9
-    delta 9 In_PSK_CLIENT_KEY_EXCHANGE = 9
-    delta 9 In_CHANGE_CIPHER_SPEC = 12
-    delta 9 In_FINISHED = 4
-    delta 9 In_APPLICATION = 3
-    delta 9 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 9 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 11 In_PSK_CLIENT_HELLO = 11
-    delta 11 In_PSK_CLIENT_KEY_EXCHANGE = 11
-    delta 11 In_CHANGE_CIPHER_SPEC = 13
-    delta 11 In_FINISHED = 11
-    delta 11 In_APPLICATION = 4
-    delta 11 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 11 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 13 In_PSK_CLIENT_HELLO = 13
-    delta 13 In_PSK_CLIENT_KEY_EXCHANGE = 13
-    delta 13 In_CHANGE_CIPHER_SPEC = 4
-    delta 13 In_FINISHED = 13
-    delta 13 In_APPLICATION = 4
-    delta 13 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 13 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 12 In_PSK_CLIENT_HELLO = 12
-    delta 12 In_PSK_CLIENT_KEY_EXCHANGE = 12
-    delta 12 In_CHANGE_CIPHER_SPEC = 4
-    delta 12 In_FINISHED = 4
-    delta 12 In_APPLICATION = 3
-    delta 12 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 12 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 10 In_PSK_CLIENT_HELLO = 12
-    delta 10 In_PSK_CLIENT_KEY_EXCHANGE = 12
-    delta 10 In_CHANGE_CIPHER_SPEC = 4
-    delta 10 In_FINISHED = 13
-    delta 10 In_APPLICATION = 3
-    delta 10 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 10 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 6 In_PSK_CLIENT_HELLO = 6
-    delta 6 In_PSK_CLIENT_KEY_EXCHANGE = 9
-    delta 6 In_CHANGE_CIPHER_SPEC = 3
-    delta 6 In_FINISHED = 8
-    delta 6 In_APPLICATION = 3
-    delta 6 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 6 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta _ _ = error "haal-gen: undefined transition"
-    lambda 0 In_PSK_CLIENT_HELLO = Out_HELLO_VERIFY_REQUEST
-    lambda 0 In_PSK_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 0 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 0 In_FINISHED = Out_TIMEOUT
-    lambda 0 In_APPLICATION = Out_TIMEOUT
-    lambda 0 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 0 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 3 In_PSK_CLIENT_HELLO = Out_TIMEOUT
-    lambda 3 In_PSK_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 3 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 3 In_FINISHED = Out_TIMEOUT
-    lambda 3 In_APPLICATION = Out_TIMEOUT
-    lambda 3 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 3 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 1 In_PSK_CLIENT_HELLO = Out_SERVER_HELLO_PSK_SERVER_KEY_EXCHANGE_SERVER_HELLO_DONE
-    lambda 1 In_PSK_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 1 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 1 In_FINISHED = Out_TIMEOUT
-    lambda 1 In_APPLICATION = Out_TIMEOUT
-    lambda 1 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 1 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 4 In_PSK_CLIENT_HELLO = Out_SOCKET_CLOSED
-    lambda 4 In_PSK_CLIENT_KEY_EXCHANGE = Out_SOCKET_CLOSED
-    lambda 4 In_CHANGE_CIPHER_SPEC = Out_SOCKET_CLOSED
-    lambda 4 In_FINISHED = Out_SOCKET_CLOSED
-    lambda 4 In_APPLICATION = Out_SOCKET_CLOSED
-    lambda 4 In_Alert_WARNING_CLOSE_NOTIFY = Out_SOCKET_CLOSED
-    lambda 4 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_SOCKET_CLOSED
-    lambda 2 In_PSK_CLIENT_HELLO = Out_TIMEOUT
-    lambda 2 In_PSK_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 2 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 2 In_FINISHED = Out_TIMEOUT
-    lambda 2 In_APPLICATION = Out_TIMEOUT
-    lambda 2 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 2 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 5 In_PSK_CLIENT_HELLO = Out_TIMEOUT
-    lambda 5 In_PSK_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 5 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 5 In_FINISHED = Out_TIMEOUT
-    lambda 5 In_APPLICATION = Out_TIMEOUT
-    lambda 5 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 5 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 8 In_PSK_CLIENT_HELLO = Out_TIMEOUT
-    lambda 8 In_PSK_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_HANDSHAKE_FAILURE
-    lambda 8 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 8 In_FINISHED = Out_TIMEOUT
-    lambda 8 In_APPLICATION = Out_TIMEOUT
-    lambda 8 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 8 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 7 In_PSK_CLIENT_HELLO = Out_TIMEOUT
-    lambda 7 In_PSK_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 7 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 7 In_FINISHED = Out_CHANGE_CIPHER_SPEC_FINISHED
-    lambda 7 In_APPLICATION = Out_TIMEOUT
-    lambda 7 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 7 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 9 In_PSK_CLIENT_HELLO = Out_TIMEOUT
-    lambda 9 In_PSK_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 9 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 9 In_FINISHED = Out_Alert_FATAL_HANDSHAKE_FAILURE
-    lambda 9 In_APPLICATION = Out_TIMEOUT
-    lambda 9 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 9 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 11 In_PSK_CLIENT_HELLO = Out_TIMEOUT
-    lambda 11 In_PSK_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 11 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 11 In_FINISHED = Out_TIMEOUT
-    lambda 11 In_APPLICATION = Out_APPLICATION
-    lambda 11 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 11 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 13 In_PSK_CLIENT_HELLO = Out_TIMEOUT
-    lambda 13 In_PSK_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 13 In_CHANGE_CIPHER_SPEC = Out_Alert_FATAL_DECODE_ERROR
-    lambda 13 In_FINISHED = Out_TIMEOUT
-    lambda 13 In_APPLICATION = Out_APPLICATION
-    lambda 13 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 13 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 12 In_PSK_CLIENT_HELLO = Out_TIMEOUT
-    lambda 12 In_PSK_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 12 In_CHANGE_CIPHER_SPEC = Out_Alert_FATAL_DECODE_ERROR
-    lambda 12 In_FINISHED = Out_Alert_FATAL_HANDSHAKE_FAILURE
-    lambda 12 In_APPLICATION = Out_TIMEOUT
-    lambda 12 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 12 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 10 In_PSK_CLIENT_HELLO = Out_TIMEOUT
-    lambda 10 In_PSK_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 10 In_CHANGE_CIPHER_SPEC = Out_Alert_FATAL_DECODE_ERROR
-    lambda 10 In_FINISHED = Out_CHANGE_CIPHER_SPEC_FINISHED
-    lambda 10 In_APPLICATION = Out_TIMEOUT
-    lambda 10 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 10 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 6 In_PSK_CLIENT_HELLO = Out_TIMEOUT
-    lambda 6 In_PSK_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 6 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 6 In_FINISHED = Out_TIMEOUT
-    lambda 6 In_APPLICATION = Out_TIMEOUT
-    lambda 6 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_FATAL_CLOSE_NOTIFY
-    lambda 6 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda _ _ = error "haal-gen: undefined transition"
+    deltaTable =
+        "\1\2\3\2\3\4\4\
+        \\5\2\3\2\3\4\4\
+        \\2\2\3\2\3\4\4\
+        \\3\3\3\3\3\3\3\
+        \\4\4\4\4\4\4\4\
+        \\6\7\3\8\3\4\4\
+        \\6\9\3\8\3\4\4\
+        \\9\9\10\11\3\4\4\
+        \\8\4\3\8\3\4\4\
+        \\9\9\12\4\3\4\4\
+        \\12\12\4\13\3\4\4\
+        \\11\11\13\11\4\4\4\
+        \\12\12\4\4\3\4\4\
+        \\13\13\4\13\4\4\4"
+    lambdaTable =
+        "\0\1\1\1\1\2\1\
+        \\3\1\1\1\1\2\1\
+        \\1\1\1\1\1\2\1\
+        \\1\1\1\1\1\1\1\
+        \\4\4\4\4\4\4\4\
+        \\1\1\1\1\1\2\1\
+        \\1\1\1\1\1\2\1\
+        \\1\1\1\6\1\2\1\
+        \\1\5\1\1\1\2\1\
+        \\1\1\1\5\1\2\1\
+        \\1\1\8\6\1\2\1\
+        \\1\1\1\1\7\2\1\
+        \\1\1\8\5\1\2\1\
+        \\1\1\8\1\7\2\1"
diff --git a/src/Haal/Models/DTLS/ScandiumLatestEcdheCertNone.hs b/src/Haal/Models/DTLS/ScandiumLatestEcdheCertNone.hs
--- a/src/Haal/Models/DTLS/ScandiumLatestEcdheCertNone.hs
+++ b/src/Haal/Models/DTLS/ScandiumLatestEcdheCertNone.hs
@@ -5,8 +5,7 @@
     , scandiumLatestEcdheCertNone
     ) where
 
-import qualified Data.Set as Set
-import Haal.Automaton.MealyAutomaton (MealyAutomaton, mkMealyAutomaton)
+import Haal.Automaton.MealyAutomaton (MealyAutomaton, mkMealyAutomatonTable)
 
 data ScandiumLatestEcdheCertNoneInput
     = In_ECDH_CLIENT_HELLO
@@ -34,268 +33,169 @@
     | Out_CHANGE_CIPHER_SPEC_FINISHED_APPLICATION
     deriving (Show, Eq, Ord, Enum, Bounded)
 
+{- Transitions (state  input -> next state / output):
+    0     In_ECDH_CLIENT_HELLO               -> 1 / Out_HELLO_VERIFY_REQUEST
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 0 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_TIMEOUT
+          In_FINISHED                        -> 0 / Out_TIMEOUT
+          In_APPLICATION                     -> 0 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 0 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 0 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 0 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 0 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 0 / Out_TIMEOUT
+    1     In_ECDH_CLIENT_HELLO               -> 3 / Out_SERVER_HELLO_CERTIFICATE_ECDHE_SERVER_KEY_EXCHANGE_SERVER_HELLO_DONE
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 1 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_TIMEOUT
+          In_FINISHED                        -> 1 / Out_TIMEOUT
+          In_APPLICATION                     -> 1 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 1 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 1 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 1 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 1 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 1 / Out_TIMEOUT
+    2     In_ECDH_CLIENT_HELLO               -> 2 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 2 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_TIMEOUT
+          In_FINISHED                        -> 2 / Out_TIMEOUT
+          In_APPLICATION                     -> 2 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 2 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 2 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 2 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 2 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 2 / Out_TIMEOUT
+    3     In_ECDH_CLIENT_HELLO               -> 4 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 5 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_TIMEOUT
+          In_FINISHED                        -> 1 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 1 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_EMPTY_CERTIFICATE               -> 1 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_CERTIFICATE_VERIFY              -> 1 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 1 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 1 / Out_TIMEOUT
+    4     In_ECDH_CLIENT_HELLO               -> 4 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 4 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_TIMEOUT
+          In_FINISHED                        -> 4 / Out_TIMEOUT
+          In_APPLICATION                     -> 4 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 4 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 4 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 4 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 1 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 1 / Out_TIMEOUT
+    5     In_ECDH_CLIENT_HELLO               -> 6 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 1 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_CHANGE_CIPHER_SPEC              -> 7 / Out_TIMEOUT
+          In_FINISHED                        -> 1 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_APPLICATION                     -> 5 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 1 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_EMPTY_CERTIFICATE               -> 1 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_CERTIFICATE_VERIFY              -> 1 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 1 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 1 / Out_TIMEOUT
+    6     In_ECDH_CLIENT_HELLO               -> 6 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 11 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 12 / Out_TIMEOUT
+          In_FINISHED                        -> 11 / Out_TIMEOUT
+          In_APPLICATION                     -> 6 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 11 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 11 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 11 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 1 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 1 / Out_TIMEOUT
+    7     In_ECDH_CLIENT_HELLO               -> 2 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 2 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_FINISHED                        -> 8 / Out_CHANGE_CIPHER_SPEC_FINISHED
+          In_APPLICATION                     -> 9 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 2 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_EMPTY_CERTIFICATE               -> 2 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_CERTIFICATE_VERIFY              -> 2 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 2 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 2 / Out_TIMEOUT
+    8     In_ECDH_CLIENT_HELLO               -> 8 / Out_Alert_WARNING_NO_RENEGOTIATION
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 8 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_FINISHED                        -> 8 / Out_TIMEOUT
+          In_APPLICATION                     -> 10 / Out_APPLICATION
+          In_CERTIFICATE                     -> 8 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 8 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 8 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 2 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 2 / Out_TIMEOUT
+    9     In_ECDH_CLIENT_HELLO               -> 2 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 2 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_FINISHED                        -> 10 / Out_CHANGE_CIPHER_SPEC_FINISHED_APPLICATION
+          In_APPLICATION                     -> 9 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 2 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_EMPTY_CERTIFICATE               -> 2 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_CERTIFICATE_VERIFY              -> 2 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 2 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 2 / Out_TIMEOUT
+    10    In_ECDH_CLIENT_HELLO               -> 10 / Out_Alert_WARNING_NO_RENEGOTIATION
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 10 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_TIMEOUT
+          In_FINISHED                        -> 10 / Out_TIMEOUT
+          In_APPLICATION                     -> 10 / Out_APPLICATION
+          In_CERTIFICATE                     -> 10 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 10 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 10 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 2 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 2 / Out_TIMEOUT
+    11    In_ECDH_CLIENT_HELLO               -> 11 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 11 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_Alert_FATAL_HANDSHAKE_FAILURE
+          In_FINISHED                        -> 11 / Out_TIMEOUT
+          In_APPLICATION                     -> 11 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 11 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 11 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 11 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 1 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 1 / Out_TIMEOUT
+    12    In_ECDH_CLIENT_HELLO               -> 2 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 12 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_FINISHED                        -> 12 / Out_TIMEOUT
+          In_APPLICATION                     -> 12 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 12 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 12 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 12 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 2 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 2 / Out_TIMEOUT
+-}
 scandiumLatestEcdheCertNone :: MealyAutomaton Int ScandiumLatestEcdheCertNoneInput ScandiumLatestEcdheCertNoneOutput
-scandiumLatestEcdheCertNone = mkMealyAutomaton delta lambda (Set.fromList [0..12]) 0
+scandiumLatestEcdheCertNone =
+    case mkMealyAutomatonTable 13 0 deltaTable lambdaTable of
+        Right m -> m
+        Left err -> error ("haal-gen: invalid transition table: " ++ err)
   where
-    delta 0 In_ECDH_CLIENT_HELLO = 1
-    delta 0 In_ECDH_CLIENT_KEY_EXCHANGE = 0
-    delta 0 In_CHANGE_CIPHER_SPEC = 2
-    delta 0 In_FINISHED = 0
-    delta 0 In_APPLICATION = 0
-    delta 0 In_CERTIFICATE = 0
-    delta 0 In_EMPTY_CERTIFICATE = 0
-    delta 0 In_CERTIFICATE_VERIFY = 0
-    delta 0 In_Alert_WARNING_CLOSE_NOTIFY = 0
-    delta 0 In_Alert_FATAL_UNEXPECTED_MESSAGE = 0
-    delta 2 In_ECDH_CLIENT_HELLO = 2
-    delta 2 In_ECDH_CLIENT_KEY_EXCHANGE = 2
-    delta 2 In_CHANGE_CIPHER_SPEC = 2
-    delta 2 In_FINISHED = 2
-    delta 2 In_APPLICATION = 2
-    delta 2 In_CERTIFICATE = 2
-    delta 2 In_EMPTY_CERTIFICATE = 2
-    delta 2 In_CERTIFICATE_VERIFY = 2
-    delta 2 In_Alert_WARNING_CLOSE_NOTIFY = 2
-    delta 2 In_Alert_FATAL_UNEXPECTED_MESSAGE = 2
-    delta 1 In_ECDH_CLIENT_HELLO = 3
-    delta 1 In_ECDH_CLIENT_KEY_EXCHANGE = 1
-    delta 1 In_CHANGE_CIPHER_SPEC = 2
-    delta 1 In_FINISHED = 1
-    delta 1 In_APPLICATION = 1
-    delta 1 In_CERTIFICATE = 1
-    delta 1 In_EMPTY_CERTIFICATE = 1
-    delta 1 In_CERTIFICATE_VERIFY = 1
-    delta 1 In_Alert_WARNING_CLOSE_NOTIFY = 1
-    delta 1 In_Alert_FATAL_UNEXPECTED_MESSAGE = 1
-    delta 3 In_ECDH_CLIENT_HELLO = 4
-    delta 3 In_ECDH_CLIENT_KEY_EXCHANGE = 5
-    delta 3 In_CHANGE_CIPHER_SPEC = 2
-    delta 3 In_FINISHED = 1
-    delta 3 In_APPLICATION = 3
-    delta 3 In_CERTIFICATE = 1
-    delta 3 In_EMPTY_CERTIFICATE = 1
-    delta 3 In_CERTIFICATE_VERIFY = 1
-    delta 3 In_Alert_WARNING_CLOSE_NOTIFY = 1
-    delta 3 In_Alert_FATAL_UNEXPECTED_MESSAGE = 1
-    delta 5 In_ECDH_CLIENT_HELLO = 6
-    delta 5 In_ECDH_CLIENT_KEY_EXCHANGE = 1
-    delta 5 In_CHANGE_CIPHER_SPEC = 7
-    delta 5 In_FINISHED = 1
-    delta 5 In_APPLICATION = 5
-    delta 5 In_CERTIFICATE = 1
-    delta 5 In_EMPTY_CERTIFICATE = 1
-    delta 5 In_CERTIFICATE_VERIFY = 1
-    delta 5 In_Alert_WARNING_CLOSE_NOTIFY = 1
-    delta 5 In_Alert_FATAL_UNEXPECTED_MESSAGE = 1
-    delta 7 In_ECDH_CLIENT_HELLO = 2
-    delta 7 In_ECDH_CLIENT_KEY_EXCHANGE = 2
-    delta 7 In_CHANGE_CIPHER_SPEC = 2
-    delta 7 In_FINISHED = 8
-    delta 7 In_APPLICATION = 9
-    delta 7 In_CERTIFICATE = 2
-    delta 7 In_EMPTY_CERTIFICATE = 2
-    delta 7 In_CERTIFICATE_VERIFY = 2
-    delta 7 In_Alert_WARNING_CLOSE_NOTIFY = 2
-    delta 7 In_Alert_FATAL_UNEXPECTED_MESSAGE = 2
-    delta 8 In_ECDH_CLIENT_HELLO = 8
-    delta 8 In_ECDH_CLIENT_KEY_EXCHANGE = 8
-    delta 8 In_CHANGE_CIPHER_SPEC = 2
-    delta 8 In_FINISHED = 8
-    delta 8 In_APPLICATION = 10
-    delta 8 In_CERTIFICATE = 8
-    delta 8 In_EMPTY_CERTIFICATE = 8
-    delta 8 In_CERTIFICATE_VERIFY = 8
-    delta 8 In_Alert_WARNING_CLOSE_NOTIFY = 2
-    delta 8 In_Alert_FATAL_UNEXPECTED_MESSAGE = 2
-    delta 10 In_ECDH_CLIENT_HELLO = 10
-    delta 10 In_ECDH_CLIENT_KEY_EXCHANGE = 10
-    delta 10 In_CHANGE_CIPHER_SPEC = 2
-    delta 10 In_FINISHED = 10
-    delta 10 In_APPLICATION = 10
-    delta 10 In_CERTIFICATE = 10
-    delta 10 In_EMPTY_CERTIFICATE = 10
-    delta 10 In_CERTIFICATE_VERIFY = 10
-    delta 10 In_Alert_WARNING_CLOSE_NOTIFY = 2
-    delta 10 In_Alert_FATAL_UNEXPECTED_MESSAGE = 2
-    delta 4 In_ECDH_CLIENT_HELLO = 4
-    delta 4 In_ECDH_CLIENT_KEY_EXCHANGE = 4
-    delta 4 In_CHANGE_CIPHER_SPEC = 2
-    delta 4 In_FINISHED = 4
-    delta 4 In_APPLICATION = 4
-    delta 4 In_CERTIFICATE = 4
-    delta 4 In_EMPTY_CERTIFICATE = 4
-    delta 4 In_CERTIFICATE_VERIFY = 4
-    delta 4 In_Alert_WARNING_CLOSE_NOTIFY = 1
-    delta 4 In_Alert_FATAL_UNEXPECTED_MESSAGE = 1
-    delta 6 In_ECDH_CLIENT_HELLO = 6
-    delta 6 In_ECDH_CLIENT_KEY_EXCHANGE = 11
-    delta 6 In_CHANGE_CIPHER_SPEC = 12
-    delta 6 In_FINISHED = 11
-    delta 6 In_APPLICATION = 6
-    delta 6 In_CERTIFICATE = 11
-    delta 6 In_EMPTY_CERTIFICATE = 11
-    delta 6 In_CERTIFICATE_VERIFY = 11
-    delta 6 In_Alert_WARNING_CLOSE_NOTIFY = 1
-    delta 6 In_Alert_FATAL_UNEXPECTED_MESSAGE = 1
-    delta 11 In_ECDH_CLIENT_HELLO = 11
-    delta 11 In_ECDH_CLIENT_KEY_EXCHANGE = 11
-    delta 11 In_CHANGE_CIPHER_SPEC = 2
-    delta 11 In_FINISHED = 11
-    delta 11 In_APPLICATION = 11
-    delta 11 In_CERTIFICATE = 11
-    delta 11 In_EMPTY_CERTIFICATE = 11
-    delta 11 In_CERTIFICATE_VERIFY = 11
-    delta 11 In_Alert_WARNING_CLOSE_NOTIFY = 1
-    delta 11 In_Alert_FATAL_UNEXPECTED_MESSAGE = 1
-    delta 12 In_ECDH_CLIENT_HELLO = 2
-    delta 12 In_ECDH_CLIENT_KEY_EXCHANGE = 12
-    delta 12 In_CHANGE_CIPHER_SPEC = 2
-    delta 12 In_FINISHED = 12
-    delta 12 In_APPLICATION = 12
-    delta 12 In_CERTIFICATE = 12
-    delta 12 In_EMPTY_CERTIFICATE = 12
-    delta 12 In_CERTIFICATE_VERIFY = 12
-    delta 12 In_Alert_WARNING_CLOSE_NOTIFY = 2
-    delta 12 In_Alert_FATAL_UNEXPECTED_MESSAGE = 2
-    delta 9 In_ECDH_CLIENT_HELLO = 2
-    delta 9 In_ECDH_CLIENT_KEY_EXCHANGE = 2
-    delta 9 In_CHANGE_CIPHER_SPEC = 2
-    delta 9 In_FINISHED = 10
-    delta 9 In_APPLICATION = 9
-    delta 9 In_CERTIFICATE = 2
-    delta 9 In_EMPTY_CERTIFICATE = 2
-    delta 9 In_CERTIFICATE_VERIFY = 2
-    delta 9 In_Alert_WARNING_CLOSE_NOTIFY = 2
-    delta 9 In_Alert_FATAL_UNEXPECTED_MESSAGE = 2
-    delta _ _ = error "haal-gen: undefined transition"
-    lambda 0 In_ECDH_CLIENT_HELLO = Out_HELLO_VERIFY_REQUEST
-    lambda 0 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 0 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 0 In_FINISHED = Out_TIMEOUT
-    lambda 0 In_APPLICATION = Out_TIMEOUT
-    lambda 0 In_CERTIFICATE = Out_TIMEOUT
-    lambda 0 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 0 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 0 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 0 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 2 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 2 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 2 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 2 In_FINISHED = Out_TIMEOUT
-    lambda 2 In_APPLICATION = Out_TIMEOUT
-    lambda 2 In_CERTIFICATE = Out_TIMEOUT
-    lambda 2 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 2 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 2 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 2 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 1 In_ECDH_CLIENT_HELLO = Out_SERVER_HELLO_CERTIFICATE_ECDHE_SERVER_KEY_EXCHANGE_SERVER_HELLO_DONE
-    lambda 1 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 1 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 1 In_FINISHED = Out_TIMEOUT
-    lambda 1 In_APPLICATION = Out_TIMEOUT
-    lambda 1 In_CERTIFICATE = Out_TIMEOUT
-    lambda 1 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 1 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 1 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 1 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 3 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 3 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 3 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 3 In_FINISHED = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 3 In_APPLICATION = Out_TIMEOUT
-    lambda 3 In_CERTIFICATE = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 3 In_EMPTY_CERTIFICATE = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 3 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 3 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 3 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 5 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 5 In_ECDH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 5 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 5 In_FINISHED = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 5 In_APPLICATION = Out_TIMEOUT
-    lambda 5 In_CERTIFICATE = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 5 In_EMPTY_CERTIFICATE = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 5 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 5 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 5 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 7 In_ECDH_CLIENT_HELLO = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 7 In_ECDH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 7 In_CHANGE_CIPHER_SPEC = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 7 In_FINISHED = Out_CHANGE_CIPHER_SPEC_FINISHED
-    lambda 7 In_APPLICATION = Out_TIMEOUT
-    lambda 7 In_CERTIFICATE = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 7 In_EMPTY_CERTIFICATE = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 7 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 7 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 7 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 8 In_ECDH_CLIENT_HELLO = Out_Alert_WARNING_NO_RENEGOTIATION
-    lambda 8 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 8 In_CHANGE_CIPHER_SPEC = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 8 In_FINISHED = Out_TIMEOUT
-    lambda 8 In_APPLICATION = Out_APPLICATION
-    lambda 8 In_CERTIFICATE = Out_TIMEOUT
-    lambda 8 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 8 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 8 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 8 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 10 In_ECDH_CLIENT_HELLO = Out_Alert_WARNING_NO_RENEGOTIATION
-    lambda 10 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 10 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 10 In_FINISHED = Out_TIMEOUT
-    lambda 10 In_APPLICATION = Out_APPLICATION
-    lambda 10 In_CERTIFICATE = Out_TIMEOUT
-    lambda 10 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 10 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 10 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 10 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 4 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 4 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 4 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 4 In_FINISHED = Out_TIMEOUT
-    lambda 4 In_APPLICATION = Out_TIMEOUT
-    lambda 4 In_CERTIFICATE = Out_TIMEOUT
-    lambda 4 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 4 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 4 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 4 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 6 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 6 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 6 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 6 In_FINISHED = Out_TIMEOUT
-    lambda 6 In_APPLICATION = Out_TIMEOUT
-    lambda 6 In_CERTIFICATE = Out_TIMEOUT
-    lambda 6 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 6 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 6 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 6 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 11 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 11 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 11 In_CHANGE_CIPHER_SPEC = Out_Alert_FATAL_HANDSHAKE_FAILURE
-    lambda 11 In_FINISHED = Out_TIMEOUT
-    lambda 11 In_APPLICATION = Out_TIMEOUT
-    lambda 11 In_CERTIFICATE = Out_TIMEOUT
-    lambda 11 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 11 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 11 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 11 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 12 In_ECDH_CLIENT_HELLO = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 12 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 12 In_CHANGE_CIPHER_SPEC = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 12 In_FINISHED = Out_TIMEOUT
-    lambda 12 In_APPLICATION = Out_TIMEOUT
-    lambda 12 In_CERTIFICATE = Out_TIMEOUT
-    lambda 12 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 12 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 12 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 12 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 9 In_ECDH_CLIENT_HELLO = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 9 In_ECDH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 9 In_CHANGE_CIPHER_SPEC = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 9 In_FINISHED = Out_CHANGE_CIPHER_SPEC_FINISHED_APPLICATION
-    lambda 9 In_APPLICATION = Out_TIMEOUT
-    lambda 9 In_CERTIFICATE = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 9 In_EMPTY_CERTIFICATE = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 9 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 9 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 9 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda _ _ = error "haal-gen: undefined transition"
+    deltaTable =
+        "\1\0\2\0\0\0\0\0\0\0\
+        \\3\1\2\1\1\1\1\1\1\1\
+        \\2\2\2\2\2\2\2\2\2\2\
+        \\4\5\2\1\3\1\1\1\1\1\
+        \\4\4\2\4\4\4\4\4\1\1\
+        \\6\1\7\1\5\1\1\1\1\1\
+        \\6\11\12\11\6\11\11\11\1\1\
+        \\2\2\2\8\9\2\2\2\2\2\
+        \\8\8\2\8\10\8\8\8\2\2\
+        \\2\2\2\10\9\2\2\2\2\2\
+        \\10\10\2\10\10\10\10\10\2\2\
+        \\11\11\2\11\11\11\11\11\1\1\
+        \\2\12\2\12\12\12\12\12\2\2"
+    lambdaTable =
+        "\0\1\1\1\1\1\1\1\1\1\
+        \\2\1\1\1\1\1\1\1\1\1\
+        \\1\1\1\1\1\1\1\1\1\1\
+        \\1\1\1\3\1\3\3\3\4\1\
+        \\1\1\1\1\1\1\1\1\4\1\
+        \\1\3\1\3\1\3\3\3\4\1\
+        \\1\1\1\1\1\1\1\1\4\1\
+        \\3\3\3\5\1\3\3\3\4\1\
+        \\6\1\3\1\7\1\1\1\4\1\
+        \\3\3\3\9\1\3\3\3\4\1\
+        \\6\1\1\1\7\1\1\1\4\1\
+        \\1\1\8\1\1\1\1\1\4\1\
+        \\3\1\3\1\1\1\1\1\4\1"
diff --git a/src/Haal/Models/DTLS/ScandiumLatestEcdheCertNreq.hs b/src/Haal/Models/DTLS/ScandiumLatestEcdheCertNreq.hs
--- a/src/Haal/Models/DTLS/ScandiumLatestEcdheCertNreq.hs
+++ b/src/Haal/Models/DTLS/ScandiumLatestEcdheCertNreq.hs
@@ -5,8 +5,7 @@
     , scandiumLatestEcdheCertNreq
     ) where
 
-import qualified Data.Set as Set
-import Haal.Automaton.MealyAutomaton (MealyAutomaton, mkMealyAutomaton)
+import Haal.Automaton.MealyAutomaton (MealyAutomaton, mkMealyAutomatonTable)
 
 data ScandiumLatestEcdheCertNreqInput
     = In_ECDH_CLIENT_HELLO
@@ -34,348 +33,217 @@
     | Out_CHANGE_CIPHER_SPEC_FINISHED_APPLICATION
     deriving (Show, Eq, Ord, Enum, Bounded)
 
+{- Transitions (state  input -> next state / output):
+    0     In_ECDH_CLIENT_HELLO               -> 1 / Out_HELLO_VERIFY_REQUEST
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 0 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_TIMEOUT
+          In_FINISHED                        -> 0 / Out_TIMEOUT
+          In_APPLICATION                     -> 0 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 0 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 0 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 0 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 0 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 0 / Out_TIMEOUT
+    1     In_ECDH_CLIENT_HELLO               -> 3 / Out_SERVER_HELLO_CERTIFICATE_ECDHE_SERVER_KEY_EXCHANGE_CERTIFICATE_REQUEST_SERVER_HELLO_DONE
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 1 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_TIMEOUT
+          In_FINISHED                        -> 1 / Out_TIMEOUT
+          In_APPLICATION                     -> 1 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 1 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 1 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 1 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 1 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 1 / Out_TIMEOUT
+    2     In_ECDH_CLIENT_HELLO               -> 2 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 2 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_TIMEOUT
+          In_FINISHED                        -> 2 / Out_TIMEOUT
+          In_APPLICATION                     -> 2 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 2 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 2 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 2 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 2 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 2 / Out_TIMEOUT
+    3     In_ECDH_CLIENT_HELLO               -> 4 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 1 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_TIMEOUT
+          In_FINISHED                        -> 1 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 5 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 6 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 1 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 1 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 1 / Out_TIMEOUT
+    4     In_ECDH_CLIENT_HELLO               -> 4 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 4 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_TIMEOUT
+          In_FINISHED                        -> 4 / Out_TIMEOUT
+          In_APPLICATION                     -> 4 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 4 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 4 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 4 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 1 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 1 / Out_TIMEOUT
+    5     In_ECDH_CLIENT_HELLO               -> 4 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 7 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_TIMEOUT
+          In_FINISHED                        -> 1 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_APPLICATION                     -> 5 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 1 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_EMPTY_CERTIFICATE               -> 1 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_CERTIFICATE_VERIFY              -> 1 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 1 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 1 / Out_TIMEOUT
+    6     In_ECDH_CLIENT_HELLO               -> 4 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 9 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_TIMEOUT
+          In_FINISHED                        -> 1 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_APPLICATION                     -> 6 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 1 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_EMPTY_CERTIFICATE               -> 1 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_CERTIFICATE_VERIFY              -> 1 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 1 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 1 / Out_TIMEOUT
+    7     In_ECDH_CLIENT_HELLO               -> 8 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 1 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_FINISHED                        -> 1 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_APPLICATION                     -> 7 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 1 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_EMPTY_CERTIFICATE               -> 1 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_CERTIFICATE_VERIFY              -> 9 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 1 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 1 / Out_TIMEOUT
+    8     In_ECDH_CLIENT_HELLO               -> 8 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 8 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_FINISHED                        -> 8 / Out_TIMEOUT
+          In_APPLICATION                     -> 8 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 8 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 8 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 8 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 1 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 1 / Out_TIMEOUT
+    9     In_ECDH_CLIENT_HELLO               -> 10 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 1 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_CHANGE_CIPHER_SPEC              -> 11 / Out_TIMEOUT
+          In_FINISHED                        -> 1 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_APPLICATION                     -> 9 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 1 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_EMPTY_CERTIFICATE               -> 1 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_CERTIFICATE_VERIFY              -> 1 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 1 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 1 / Out_TIMEOUT
+    10    In_ECDH_CLIENT_HELLO               -> 10 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 15 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 16 / Out_TIMEOUT
+          In_FINISHED                        -> 15 / Out_TIMEOUT
+          In_APPLICATION                     -> 10 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 15 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 15 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 15 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 1 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 1 / Out_TIMEOUT
+    11    In_ECDH_CLIENT_HELLO               -> 2 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 2 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_FINISHED                        -> 12 / Out_CHANGE_CIPHER_SPEC_FINISHED
+          In_APPLICATION                     -> 13 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 2 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_EMPTY_CERTIFICATE               -> 2 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_CERTIFICATE_VERIFY              -> 2 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 2 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 2 / Out_TIMEOUT
+    12    In_ECDH_CLIENT_HELLO               -> 12 / Out_Alert_WARNING_NO_RENEGOTIATION
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 12 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_FINISHED                        -> 12 / Out_TIMEOUT
+          In_APPLICATION                     -> 14 / Out_APPLICATION
+          In_CERTIFICATE                     -> 12 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 12 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 12 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 2 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 2 / Out_TIMEOUT
+    13    In_ECDH_CLIENT_HELLO               -> 2 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 2 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_FINISHED                        -> 14 / Out_CHANGE_CIPHER_SPEC_FINISHED_APPLICATION
+          In_APPLICATION                     -> 13 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 2 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_EMPTY_CERTIFICATE               -> 2 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_CERTIFICATE_VERIFY              -> 2 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 2 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 2 / Out_TIMEOUT
+    14    In_ECDH_CLIENT_HELLO               -> 14 / Out_Alert_WARNING_NO_RENEGOTIATION
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 14 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_TIMEOUT
+          In_FINISHED                        -> 14 / Out_TIMEOUT
+          In_APPLICATION                     -> 14 / Out_APPLICATION
+          In_CERTIFICATE                     -> 14 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 14 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 14 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 2 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 2 / Out_TIMEOUT
+    15    In_ECDH_CLIENT_HELLO               -> 15 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 15 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_Alert_FATAL_HANDSHAKE_FAILURE
+          In_FINISHED                        -> 15 / Out_TIMEOUT
+          In_APPLICATION                     -> 15 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 15 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 15 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 15 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 1 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 1 / Out_TIMEOUT
+    16    In_ECDH_CLIENT_HELLO               -> 2 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 16 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_FINISHED                        -> 16 / Out_TIMEOUT
+          In_APPLICATION                     -> 16 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 16 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 16 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 16 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 2 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 2 / Out_TIMEOUT
+-}
 scandiumLatestEcdheCertNreq :: MealyAutomaton Int ScandiumLatestEcdheCertNreqInput ScandiumLatestEcdheCertNreqOutput
-scandiumLatestEcdheCertNreq = mkMealyAutomaton delta lambda (Set.fromList [0..16]) 0
+scandiumLatestEcdheCertNreq =
+    case mkMealyAutomatonTable 17 0 deltaTable lambdaTable of
+        Right m -> m
+        Left err -> error ("haal-gen: invalid transition table: " ++ err)
   where
-    delta 0 In_ECDH_CLIENT_HELLO = 1
-    delta 0 In_ECDH_CLIENT_KEY_EXCHANGE = 0
-    delta 0 In_CHANGE_CIPHER_SPEC = 2
-    delta 0 In_FINISHED = 0
-    delta 0 In_APPLICATION = 0
-    delta 0 In_CERTIFICATE = 0
-    delta 0 In_EMPTY_CERTIFICATE = 0
-    delta 0 In_CERTIFICATE_VERIFY = 0
-    delta 0 In_Alert_WARNING_CLOSE_NOTIFY = 0
-    delta 0 In_Alert_FATAL_UNEXPECTED_MESSAGE = 0
-    delta 2 In_ECDH_CLIENT_HELLO = 2
-    delta 2 In_ECDH_CLIENT_KEY_EXCHANGE = 2
-    delta 2 In_CHANGE_CIPHER_SPEC = 2
-    delta 2 In_FINISHED = 2
-    delta 2 In_APPLICATION = 2
-    delta 2 In_CERTIFICATE = 2
-    delta 2 In_EMPTY_CERTIFICATE = 2
-    delta 2 In_CERTIFICATE_VERIFY = 2
-    delta 2 In_Alert_WARNING_CLOSE_NOTIFY = 2
-    delta 2 In_Alert_FATAL_UNEXPECTED_MESSAGE = 2
-    delta 1 In_ECDH_CLIENT_HELLO = 3
-    delta 1 In_ECDH_CLIENT_KEY_EXCHANGE = 1
-    delta 1 In_CHANGE_CIPHER_SPEC = 2
-    delta 1 In_FINISHED = 1
-    delta 1 In_APPLICATION = 1
-    delta 1 In_CERTIFICATE = 1
-    delta 1 In_EMPTY_CERTIFICATE = 1
-    delta 1 In_CERTIFICATE_VERIFY = 1
-    delta 1 In_Alert_WARNING_CLOSE_NOTIFY = 1
-    delta 1 In_Alert_FATAL_UNEXPECTED_MESSAGE = 1
-    delta 3 In_ECDH_CLIENT_HELLO = 4
-    delta 3 In_ECDH_CLIENT_KEY_EXCHANGE = 1
-    delta 3 In_CHANGE_CIPHER_SPEC = 2
-    delta 3 In_FINISHED = 1
-    delta 3 In_APPLICATION = 3
-    delta 3 In_CERTIFICATE = 5
-    delta 3 In_EMPTY_CERTIFICATE = 6
-    delta 3 In_CERTIFICATE_VERIFY = 1
-    delta 3 In_Alert_WARNING_CLOSE_NOTIFY = 1
-    delta 3 In_Alert_FATAL_UNEXPECTED_MESSAGE = 1
-    delta 5 In_ECDH_CLIENT_HELLO = 4
-    delta 5 In_ECDH_CLIENT_KEY_EXCHANGE = 7
-    delta 5 In_CHANGE_CIPHER_SPEC = 2
-    delta 5 In_FINISHED = 1
-    delta 5 In_APPLICATION = 5
-    delta 5 In_CERTIFICATE = 1
-    delta 5 In_EMPTY_CERTIFICATE = 1
-    delta 5 In_CERTIFICATE_VERIFY = 1
-    delta 5 In_Alert_WARNING_CLOSE_NOTIFY = 1
-    delta 5 In_Alert_FATAL_UNEXPECTED_MESSAGE = 1
-    delta 4 In_ECDH_CLIENT_HELLO = 4
-    delta 4 In_ECDH_CLIENT_KEY_EXCHANGE = 4
-    delta 4 In_CHANGE_CIPHER_SPEC = 2
-    delta 4 In_FINISHED = 4
-    delta 4 In_APPLICATION = 4
-    delta 4 In_CERTIFICATE = 4
-    delta 4 In_EMPTY_CERTIFICATE = 4
-    delta 4 In_CERTIFICATE_VERIFY = 4
-    delta 4 In_Alert_WARNING_CLOSE_NOTIFY = 1
-    delta 4 In_Alert_FATAL_UNEXPECTED_MESSAGE = 1
-    delta 7 In_ECDH_CLIENT_HELLO = 8
-    delta 7 In_ECDH_CLIENT_KEY_EXCHANGE = 1
-    delta 7 In_CHANGE_CIPHER_SPEC = 2
-    delta 7 In_FINISHED = 1
-    delta 7 In_APPLICATION = 7
-    delta 7 In_CERTIFICATE = 1
-    delta 7 In_EMPTY_CERTIFICATE = 1
-    delta 7 In_CERTIFICATE_VERIFY = 9
-    delta 7 In_Alert_WARNING_CLOSE_NOTIFY = 1
-    delta 7 In_Alert_FATAL_UNEXPECTED_MESSAGE = 1
-    delta 9 In_ECDH_CLIENT_HELLO = 10
-    delta 9 In_ECDH_CLIENT_KEY_EXCHANGE = 1
-    delta 9 In_CHANGE_CIPHER_SPEC = 11
-    delta 9 In_FINISHED = 1
-    delta 9 In_APPLICATION = 9
-    delta 9 In_CERTIFICATE = 1
-    delta 9 In_EMPTY_CERTIFICATE = 1
-    delta 9 In_CERTIFICATE_VERIFY = 1
-    delta 9 In_Alert_WARNING_CLOSE_NOTIFY = 1
-    delta 9 In_Alert_FATAL_UNEXPECTED_MESSAGE = 1
-    delta 11 In_ECDH_CLIENT_HELLO = 2
-    delta 11 In_ECDH_CLIENT_KEY_EXCHANGE = 2
-    delta 11 In_CHANGE_CIPHER_SPEC = 2
-    delta 11 In_FINISHED = 12
-    delta 11 In_APPLICATION = 13
-    delta 11 In_CERTIFICATE = 2
-    delta 11 In_EMPTY_CERTIFICATE = 2
-    delta 11 In_CERTIFICATE_VERIFY = 2
-    delta 11 In_Alert_WARNING_CLOSE_NOTIFY = 2
-    delta 11 In_Alert_FATAL_UNEXPECTED_MESSAGE = 2
-    delta 12 In_ECDH_CLIENT_HELLO = 12
-    delta 12 In_ECDH_CLIENT_KEY_EXCHANGE = 12
-    delta 12 In_CHANGE_CIPHER_SPEC = 2
-    delta 12 In_FINISHED = 12
-    delta 12 In_APPLICATION = 14
-    delta 12 In_CERTIFICATE = 12
-    delta 12 In_EMPTY_CERTIFICATE = 12
-    delta 12 In_CERTIFICATE_VERIFY = 12
-    delta 12 In_Alert_WARNING_CLOSE_NOTIFY = 2
-    delta 12 In_Alert_FATAL_UNEXPECTED_MESSAGE = 2
-    delta 8 In_ECDH_CLIENT_HELLO = 8
-    delta 8 In_ECDH_CLIENT_KEY_EXCHANGE = 8
-    delta 8 In_CHANGE_CIPHER_SPEC = 2
-    delta 8 In_FINISHED = 8
-    delta 8 In_APPLICATION = 8
-    delta 8 In_CERTIFICATE = 8
-    delta 8 In_EMPTY_CERTIFICATE = 8
-    delta 8 In_CERTIFICATE_VERIFY = 8
-    delta 8 In_Alert_WARNING_CLOSE_NOTIFY = 1
-    delta 8 In_Alert_FATAL_UNEXPECTED_MESSAGE = 1
-    delta 6 In_ECDH_CLIENT_HELLO = 4
-    delta 6 In_ECDH_CLIENT_KEY_EXCHANGE = 9
-    delta 6 In_CHANGE_CIPHER_SPEC = 2
-    delta 6 In_FINISHED = 1
-    delta 6 In_APPLICATION = 6
-    delta 6 In_CERTIFICATE = 1
-    delta 6 In_EMPTY_CERTIFICATE = 1
-    delta 6 In_CERTIFICATE_VERIFY = 1
-    delta 6 In_Alert_WARNING_CLOSE_NOTIFY = 1
-    delta 6 In_Alert_FATAL_UNEXPECTED_MESSAGE = 1
-    delta 10 In_ECDH_CLIENT_HELLO = 10
-    delta 10 In_ECDH_CLIENT_KEY_EXCHANGE = 15
-    delta 10 In_CHANGE_CIPHER_SPEC = 16
-    delta 10 In_FINISHED = 15
-    delta 10 In_APPLICATION = 10
-    delta 10 In_CERTIFICATE = 15
-    delta 10 In_EMPTY_CERTIFICATE = 15
-    delta 10 In_CERTIFICATE_VERIFY = 15
-    delta 10 In_Alert_WARNING_CLOSE_NOTIFY = 1
-    delta 10 In_Alert_FATAL_UNEXPECTED_MESSAGE = 1
-    delta 15 In_ECDH_CLIENT_HELLO = 15
-    delta 15 In_ECDH_CLIENT_KEY_EXCHANGE = 15
-    delta 15 In_CHANGE_CIPHER_SPEC = 2
-    delta 15 In_FINISHED = 15
-    delta 15 In_APPLICATION = 15
-    delta 15 In_CERTIFICATE = 15
-    delta 15 In_EMPTY_CERTIFICATE = 15
-    delta 15 In_CERTIFICATE_VERIFY = 15
-    delta 15 In_Alert_WARNING_CLOSE_NOTIFY = 1
-    delta 15 In_Alert_FATAL_UNEXPECTED_MESSAGE = 1
-    delta 14 In_ECDH_CLIENT_HELLO = 14
-    delta 14 In_ECDH_CLIENT_KEY_EXCHANGE = 14
-    delta 14 In_CHANGE_CIPHER_SPEC = 2
-    delta 14 In_FINISHED = 14
-    delta 14 In_APPLICATION = 14
-    delta 14 In_CERTIFICATE = 14
-    delta 14 In_EMPTY_CERTIFICATE = 14
-    delta 14 In_CERTIFICATE_VERIFY = 14
-    delta 14 In_Alert_WARNING_CLOSE_NOTIFY = 2
-    delta 14 In_Alert_FATAL_UNEXPECTED_MESSAGE = 2
-    delta 16 In_ECDH_CLIENT_HELLO = 2
-    delta 16 In_ECDH_CLIENT_KEY_EXCHANGE = 16
-    delta 16 In_CHANGE_CIPHER_SPEC = 2
-    delta 16 In_FINISHED = 16
-    delta 16 In_APPLICATION = 16
-    delta 16 In_CERTIFICATE = 16
-    delta 16 In_EMPTY_CERTIFICATE = 16
-    delta 16 In_CERTIFICATE_VERIFY = 16
-    delta 16 In_Alert_WARNING_CLOSE_NOTIFY = 2
-    delta 16 In_Alert_FATAL_UNEXPECTED_MESSAGE = 2
-    delta 13 In_ECDH_CLIENT_HELLO = 2
-    delta 13 In_ECDH_CLIENT_KEY_EXCHANGE = 2
-    delta 13 In_CHANGE_CIPHER_SPEC = 2
-    delta 13 In_FINISHED = 14
-    delta 13 In_APPLICATION = 13
-    delta 13 In_CERTIFICATE = 2
-    delta 13 In_EMPTY_CERTIFICATE = 2
-    delta 13 In_CERTIFICATE_VERIFY = 2
-    delta 13 In_Alert_WARNING_CLOSE_NOTIFY = 2
-    delta 13 In_Alert_FATAL_UNEXPECTED_MESSAGE = 2
-    delta _ _ = error "haal-gen: undefined transition"
-    lambda 0 In_ECDH_CLIENT_HELLO = Out_HELLO_VERIFY_REQUEST
-    lambda 0 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 0 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 0 In_FINISHED = Out_TIMEOUT
-    lambda 0 In_APPLICATION = Out_TIMEOUT
-    lambda 0 In_CERTIFICATE = Out_TIMEOUT
-    lambda 0 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 0 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 0 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 0 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 2 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 2 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 2 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 2 In_FINISHED = Out_TIMEOUT
-    lambda 2 In_APPLICATION = Out_TIMEOUT
-    lambda 2 In_CERTIFICATE = Out_TIMEOUT
-    lambda 2 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 2 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 2 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 2 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 1 In_ECDH_CLIENT_HELLO = Out_SERVER_HELLO_CERTIFICATE_ECDHE_SERVER_KEY_EXCHANGE_CERTIFICATE_REQUEST_SERVER_HELLO_DONE
-    lambda 1 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 1 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 1 In_FINISHED = Out_TIMEOUT
-    lambda 1 In_APPLICATION = Out_TIMEOUT
-    lambda 1 In_CERTIFICATE = Out_TIMEOUT
-    lambda 1 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 1 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 1 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 1 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 3 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 3 In_ECDH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 3 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 3 In_FINISHED = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 3 In_APPLICATION = Out_TIMEOUT
-    lambda 3 In_CERTIFICATE = Out_TIMEOUT
-    lambda 3 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 3 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 3 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 3 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 5 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 5 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 5 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 5 In_FINISHED = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 5 In_APPLICATION = Out_TIMEOUT
-    lambda 5 In_CERTIFICATE = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 5 In_EMPTY_CERTIFICATE = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 5 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 5 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 5 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 4 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 4 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 4 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 4 In_FINISHED = Out_TIMEOUT
-    lambda 4 In_APPLICATION = Out_TIMEOUT
-    lambda 4 In_CERTIFICATE = Out_TIMEOUT
-    lambda 4 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 4 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 4 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 4 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 7 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 7 In_ECDH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 7 In_CHANGE_CIPHER_SPEC = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 7 In_FINISHED = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 7 In_APPLICATION = Out_TIMEOUT
-    lambda 7 In_CERTIFICATE = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 7 In_EMPTY_CERTIFICATE = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 7 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 7 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 7 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 9 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 9 In_ECDH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 9 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 9 In_FINISHED = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 9 In_APPLICATION = Out_TIMEOUT
-    lambda 9 In_CERTIFICATE = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 9 In_EMPTY_CERTIFICATE = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 9 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 9 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 9 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 11 In_ECDH_CLIENT_HELLO = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 11 In_ECDH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 11 In_CHANGE_CIPHER_SPEC = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 11 In_FINISHED = Out_CHANGE_CIPHER_SPEC_FINISHED
-    lambda 11 In_APPLICATION = Out_TIMEOUT
-    lambda 11 In_CERTIFICATE = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 11 In_EMPTY_CERTIFICATE = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 11 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 11 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 11 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 12 In_ECDH_CLIENT_HELLO = Out_Alert_WARNING_NO_RENEGOTIATION
-    lambda 12 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 12 In_CHANGE_CIPHER_SPEC = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 12 In_FINISHED = Out_TIMEOUT
-    lambda 12 In_APPLICATION = Out_APPLICATION
-    lambda 12 In_CERTIFICATE = Out_TIMEOUT
-    lambda 12 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 12 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 12 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 12 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 8 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 8 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 8 In_CHANGE_CIPHER_SPEC = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 8 In_FINISHED = Out_TIMEOUT
-    lambda 8 In_APPLICATION = Out_TIMEOUT
-    lambda 8 In_CERTIFICATE = Out_TIMEOUT
-    lambda 8 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 8 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 8 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 8 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 6 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 6 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 6 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 6 In_FINISHED = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 6 In_APPLICATION = Out_TIMEOUT
-    lambda 6 In_CERTIFICATE = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 6 In_EMPTY_CERTIFICATE = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 6 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 6 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 6 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 10 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 10 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 10 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 10 In_FINISHED = Out_TIMEOUT
-    lambda 10 In_APPLICATION = Out_TIMEOUT
-    lambda 10 In_CERTIFICATE = Out_TIMEOUT
-    lambda 10 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 10 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 10 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 10 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 15 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 15 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 15 In_CHANGE_CIPHER_SPEC = Out_Alert_FATAL_HANDSHAKE_FAILURE
-    lambda 15 In_FINISHED = Out_TIMEOUT
-    lambda 15 In_APPLICATION = Out_TIMEOUT
-    lambda 15 In_CERTIFICATE = Out_TIMEOUT
-    lambda 15 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 15 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 15 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 15 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 14 In_ECDH_CLIENT_HELLO = Out_Alert_WARNING_NO_RENEGOTIATION
-    lambda 14 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 14 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 14 In_FINISHED = Out_TIMEOUT
-    lambda 14 In_APPLICATION = Out_APPLICATION
-    lambda 14 In_CERTIFICATE = Out_TIMEOUT
-    lambda 14 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 14 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 14 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 14 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 16 In_ECDH_CLIENT_HELLO = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 16 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 16 In_CHANGE_CIPHER_SPEC = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 16 In_FINISHED = Out_TIMEOUT
-    lambda 16 In_APPLICATION = Out_TIMEOUT
-    lambda 16 In_CERTIFICATE = Out_TIMEOUT
-    lambda 16 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 16 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 16 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 16 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 13 In_ECDH_CLIENT_HELLO = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 13 In_ECDH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 13 In_CHANGE_CIPHER_SPEC = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 13 In_FINISHED = Out_CHANGE_CIPHER_SPEC_FINISHED_APPLICATION
-    lambda 13 In_APPLICATION = Out_TIMEOUT
-    lambda 13 In_CERTIFICATE = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 13 In_EMPTY_CERTIFICATE = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 13 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 13 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 13 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda _ _ = error "haal-gen: undefined transition"
+    deltaTable =
+        "\1\0\2\0\0\0\0\0\0\0\
+        \\3\1\2\1\1\1\1\1\1\1\
+        \\2\2\2\2\2\2\2\2\2\2\
+        \\4\1\2\1\3\5\6\1\1\1\
+        \\4\4\2\4\4\4\4\4\1\1\
+        \\4\7\2\1\5\1\1\1\1\1\
+        \\4\9\2\1\6\1\1\1\1\1\
+        \\8\1\2\1\7\1\1\9\1\1\
+        \\8\8\2\8\8\8\8\8\1\1\
+        \\10\1\11\1\9\1\1\1\1\1\
+        \\10\15\16\15\10\15\15\15\1\1\
+        \\2\2\2\12\13\2\2\2\2\2\
+        \\12\12\2\12\14\12\12\12\2\2\
+        \\2\2\2\14\13\2\2\2\2\2\
+        \\14\14\2\14\14\14\14\14\2\2\
+        \\15\15\2\15\15\15\15\15\1\1\
+        \\2\16\2\16\16\16\16\16\2\2"
+    lambdaTable =
+        "\0\1\1\1\1\1\1\1\1\1\
+        \\2\1\1\1\1\1\1\1\1\1\
+        \\1\1\1\1\1\1\1\1\1\1\
+        \\1\3\1\3\1\1\1\3\4\1\
+        \\1\1\1\1\1\1\1\1\4\1\
+        \\1\1\1\3\1\3\3\3\4\1\
+        \\1\1\1\3\1\3\3\3\4\1\
+        \\1\3\3\3\1\3\3\1\4\1\
+        \\1\1\3\1\1\1\1\1\4\1\
+        \\1\3\1\3\1\3\3\3\4\1\
+        \\1\1\1\1\1\1\1\1\4\1\
+        \\3\3\3\5\1\3\3\3\4\1\
+        \\6\1\3\1\7\1\1\1\4\1\
+        \\3\3\3\9\1\3\3\3\4\1\
+        \\6\1\1\1\7\1\1\1\4\1\
+        \\1\1\8\1\1\1\1\1\4\1\
+        \\3\1\3\1\1\1\1\1\4\1"
diff --git a/src/Haal/Models/DTLS/ScandiumLatestEcdheCertReq.hs b/src/Haal/Models/DTLS/ScandiumLatestEcdheCertReq.hs
--- a/src/Haal/Models/DTLS/ScandiumLatestEcdheCertReq.hs
+++ b/src/Haal/Models/DTLS/ScandiumLatestEcdheCertReq.hs
@@ -5,8 +5,7 @@
     , scandiumLatestEcdheCertReq
     ) where
 
-import qualified Data.Set as Set
-import Haal.Automaton.MealyAutomaton (MealyAutomaton, mkMealyAutomaton)
+import Haal.Automaton.MealyAutomaton (MealyAutomaton, mkMealyAutomatonTable)
 
 data ScandiumLatestEcdheCertReqInput
     = In_ECDH_CLIENT_HELLO
@@ -34,308 +33,193 @@
     | Out_CHANGE_CIPHER_SPEC_FINISHED_APPLICATION
     deriving (Show, Eq, Ord, Enum, Bounded)
 
+{- Transitions (state  input -> next state / output):
+    0     In_ECDH_CLIENT_HELLO               -> 1 / Out_HELLO_VERIFY_REQUEST
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 0 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_TIMEOUT
+          In_FINISHED                        -> 0 / Out_TIMEOUT
+          In_APPLICATION                     -> 0 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 0 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 0 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 0 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 0 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 0 / Out_TIMEOUT
+    1     In_ECDH_CLIENT_HELLO               -> 3 / Out_SERVER_HELLO_CERTIFICATE_ECDHE_SERVER_KEY_EXCHANGE_CERTIFICATE_REQUEST_SERVER_HELLO_DONE
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 1 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_TIMEOUT
+          In_FINISHED                        -> 1 / Out_TIMEOUT
+          In_APPLICATION                     -> 1 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 1 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 1 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 1 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 1 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 1 / Out_TIMEOUT
+    2     In_ECDH_CLIENT_HELLO               -> 2 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 2 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_TIMEOUT
+          In_FINISHED                        -> 2 / Out_TIMEOUT
+          In_APPLICATION                     -> 2 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 2 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 2 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 2 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 2 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 2 / Out_TIMEOUT
+    3     In_ECDH_CLIENT_HELLO               -> 4 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 1 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_TIMEOUT
+          In_FINISHED                        -> 1 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 5 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 1 / Out_Alert_FATAL_HANDSHAKE_FAILURE
+          In_CERTIFICATE_VERIFY              -> 1 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 1 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 1 / Out_TIMEOUT
+    4     In_ECDH_CLIENT_HELLO               -> 4 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 4 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_TIMEOUT
+          In_FINISHED                        -> 4 / Out_TIMEOUT
+          In_APPLICATION                     -> 4 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 4 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 4 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 4 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 1 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 1 / Out_TIMEOUT
+    5     In_ECDH_CLIENT_HELLO               -> 4 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 6 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_TIMEOUT
+          In_FINISHED                        -> 1 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_APPLICATION                     -> 5 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 1 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_EMPTY_CERTIFICATE               -> 1 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_CERTIFICATE_VERIFY              -> 1 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 1 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 1 / Out_TIMEOUT
+    6     In_ECDH_CLIENT_HELLO               -> 4 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 1 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_TIMEOUT
+          In_FINISHED                        -> 1 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_APPLICATION                     -> 6 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 1 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_EMPTY_CERTIFICATE               -> 1 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_CERTIFICATE_VERIFY              -> 7 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 1 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 1 / Out_TIMEOUT
+    7     In_ECDH_CLIENT_HELLO               -> 8 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 1 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_CHANGE_CIPHER_SPEC              -> 9 / Out_TIMEOUT
+          In_FINISHED                        -> 1 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_APPLICATION                     -> 7 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 1 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_EMPTY_CERTIFICATE               -> 1 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_CERTIFICATE_VERIFY              -> 1 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 1 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 1 / Out_TIMEOUT
+    8     In_ECDH_CLIENT_HELLO               -> 8 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 13 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 14 / Out_TIMEOUT
+          In_FINISHED                        -> 13 / Out_TIMEOUT
+          In_APPLICATION                     -> 8 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 13 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 13 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 13 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 1 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 1 / Out_TIMEOUT
+    9     In_ECDH_CLIENT_HELLO               -> 2 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 2 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_FINISHED                        -> 10 / Out_CHANGE_CIPHER_SPEC_FINISHED
+          In_APPLICATION                     -> 11 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 2 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_EMPTY_CERTIFICATE               -> 2 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_CERTIFICATE_VERIFY              -> 2 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 2 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 2 / Out_TIMEOUT
+    10    In_ECDH_CLIENT_HELLO               -> 10 / Out_Alert_WARNING_NO_RENEGOTIATION
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 10 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_FINISHED                        -> 10 / Out_TIMEOUT
+          In_APPLICATION                     -> 12 / Out_APPLICATION
+          In_CERTIFICATE                     -> 10 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 10 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 10 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 2 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 2 / Out_TIMEOUT
+    11    In_ECDH_CLIENT_HELLO               -> 2 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 2 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_FINISHED                        -> 12 / Out_CHANGE_CIPHER_SPEC_FINISHED_APPLICATION
+          In_APPLICATION                     -> 11 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 2 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_EMPTY_CERTIFICATE               -> 2 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_CERTIFICATE_VERIFY              -> 2 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 2 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 2 / Out_TIMEOUT
+    12    In_ECDH_CLIENT_HELLO               -> 12 / Out_Alert_WARNING_NO_RENEGOTIATION
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 12 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_TIMEOUT
+          In_FINISHED                        -> 12 / Out_TIMEOUT
+          In_APPLICATION                     -> 12 / Out_APPLICATION
+          In_CERTIFICATE                     -> 12 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 12 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 12 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 2 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 2 / Out_TIMEOUT
+    13    In_ECDH_CLIENT_HELLO               -> 13 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 13 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_Alert_FATAL_HANDSHAKE_FAILURE
+          In_FINISHED                        -> 13 / Out_TIMEOUT
+          In_APPLICATION                     -> 13 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 13 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 13 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 13 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 1 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 1 / Out_TIMEOUT
+    14    In_ECDH_CLIENT_HELLO               -> 2 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 14 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_FINISHED                        -> 14 / Out_TIMEOUT
+          In_APPLICATION                     -> 14 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 14 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 14 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 14 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 2 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 2 / Out_TIMEOUT
+-}
 scandiumLatestEcdheCertReq :: MealyAutomaton Int ScandiumLatestEcdheCertReqInput ScandiumLatestEcdheCertReqOutput
-scandiumLatestEcdheCertReq = mkMealyAutomaton delta lambda (Set.fromList [0..14]) 0
+scandiumLatestEcdheCertReq =
+    case mkMealyAutomatonTable 15 0 deltaTable lambdaTable of
+        Right m -> m
+        Left err -> error ("haal-gen: invalid transition table: " ++ err)
   where
-    delta 0 In_ECDH_CLIENT_HELLO = 1
-    delta 0 In_ECDH_CLIENT_KEY_EXCHANGE = 0
-    delta 0 In_CHANGE_CIPHER_SPEC = 2
-    delta 0 In_FINISHED = 0
-    delta 0 In_APPLICATION = 0
-    delta 0 In_CERTIFICATE = 0
-    delta 0 In_EMPTY_CERTIFICATE = 0
-    delta 0 In_CERTIFICATE_VERIFY = 0
-    delta 0 In_Alert_WARNING_CLOSE_NOTIFY = 0
-    delta 0 In_Alert_FATAL_UNEXPECTED_MESSAGE = 0
-    delta 2 In_ECDH_CLIENT_HELLO = 2
-    delta 2 In_ECDH_CLIENT_KEY_EXCHANGE = 2
-    delta 2 In_CHANGE_CIPHER_SPEC = 2
-    delta 2 In_FINISHED = 2
-    delta 2 In_APPLICATION = 2
-    delta 2 In_CERTIFICATE = 2
-    delta 2 In_EMPTY_CERTIFICATE = 2
-    delta 2 In_CERTIFICATE_VERIFY = 2
-    delta 2 In_Alert_WARNING_CLOSE_NOTIFY = 2
-    delta 2 In_Alert_FATAL_UNEXPECTED_MESSAGE = 2
-    delta 1 In_ECDH_CLIENT_HELLO = 3
-    delta 1 In_ECDH_CLIENT_KEY_EXCHANGE = 1
-    delta 1 In_CHANGE_CIPHER_SPEC = 2
-    delta 1 In_FINISHED = 1
-    delta 1 In_APPLICATION = 1
-    delta 1 In_CERTIFICATE = 1
-    delta 1 In_EMPTY_CERTIFICATE = 1
-    delta 1 In_CERTIFICATE_VERIFY = 1
-    delta 1 In_Alert_WARNING_CLOSE_NOTIFY = 1
-    delta 1 In_Alert_FATAL_UNEXPECTED_MESSAGE = 1
-    delta 3 In_ECDH_CLIENT_HELLO = 4
-    delta 3 In_ECDH_CLIENT_KEY_EXCHANGE = 1
-    delta 3 In_CHANGE_CIPHER_SPEC = 2
-    delta 3 In_FINISHED = 1
-    delta 3 In_APPLICATION = 3
-    delta 3 In_CERTIFICATE = 5
-    delta 3 In_EMPTY_CERTIFICATE = 1
-    delta 3 In_CERTIFICATE_VERIFY = 1
-    delta 3 In_Alert_WARNING_CLOSE_NOTIFY = 1
-    delta 3 In_Alert_FATAL_UNEXPECTED_MESSAGE = 1
-    delta 5 In_ECDH_CLIENT_HELLO = 4
-    delta 5 In_ECDH_CLIENT_KEY_EXCHANGE = 6
-    delta 5 In_CHANGE_CIPHER_SPEC = 2
-    delta 5 In_FINISHED = 1
-    delta 5 In_APPLICATION = 5
-    delta 5 In_CERTIFICATE = 1
-    delta 5 In_EMPTY_CERTIFICATE = 1
-    delta 5 In_CERTIFICATE_VERIFY = 1
-    delta 5 In_Alert_WARNING_CLOSE_NOTIFY = 1
-    delta 5 In_Alert_FATAL_UNEXPECTED_MESSAGE = 1
-    delta 4 In_ECDH_CLIENT_HELLO = 4
-    delta 4 In_ECDH_CLIENT_KEY_EXCHANGE = 4
-    delta 4 In_CHANGE_CIPHER_SPEC = 2
-    delta 4 In_FINISHED = 4
-    delta 4 In_APPLICATION = 4
-    delta 4 In_CERTIFICATE = 4
-    delta 4 In_EMPTY_CERTIFICATE = 4
-    delta 4 In_CERTIFICATE_VERIFY = 4
-    delta 4 In_Alert_WARNING_CLOSE_NOTIFY = 1
-    delta 4 In_Alert_FATAL_UNEXPECTED_MESSAGE = 1
-    delta 6 In_ECDH_CLIENT_HELLO = 4
-    delta 6 In_ECDH_CLIENT_KEY_EXCHANGE = 1
-    delta 6 In_CHANGE_CIPHER_SPEC = 2
-    delta 6 In_FINISHED = 1
-    delta 6 In_APPLICATION = 6
-    delta 6 In_CERTIFICATE = 1
-    delta 6 In_EMPTY_CERTIFICATE = 1
-    delta 6 In_CERTIFICATE_VERIFY = 7
-    delta 6 In_Alert_WARNING_CLOSE_NOTIFY = 1
-    delta 6 In_Alert_FATAL_UNEXPECTED_MESSAGE = 1
-    delta 7 In_ECDH_CLIENT_HELLO = 8
-    delta 7 In_ECDH_CLIENT_KEY_EXCHANGE = 1
-    delta 7 In_CHANGE_CIPHER_SPEC = 9
-    delta 7 In_FINISHED = 1
-    delta 7 In_APPLICATION = 7
-    delta 7 In_CERTIFICATE = 1
-    delta 7 In_EMPTY_CERTIFICATE = 1
-    delta 7 In_CERTIFICATE_VERIFY = 1
-    delta 7 In_Alert_WARNING_CLOSE_NOTIFY = 1
-    delta 7 In_Alert_FATAL_UNEXPECTED_MESSAGE = 1
-    delta 9 In_ECDH_CLIENT_HELLO = 2
-    delta 9 In_ECDH_CLIENT_KEY_EXCHANGE = 2
-    delta 9 In_CHANGE_CIPHER_SPEC = 2
-    delta 9 In_FINISHED = 10
-    delta 9 In_APPLICATION = 11
-    delta 9 In_CERTIFICATE = 2
-    delta 9 In_EMPTY_CERTIFICATE = 2
-    delta 9 In_CERTIFICATE_VERIFY = 2
-    delta 9 In_Alert_WARNING_CLOSE_NOTIFY = 2
-    delta 9 In_Alert_FATAL_UNEXPECTED_MESSAGE = 2
-    delta 10 In_ECDH_CLIENT_HELLO = 10
-    delta 10 In_ECDH_CLIENT_KEY_EXCHANGE = 10
-    delta 10 In_CHANGE_CIPHER_SPEC = 2
-    delta 10 In_FINISHED = 10
-    delta 10 In_APPLICATION = 12
-    delta 10 In_CERTIFICATE = 10
-    delta 10 In_EMPTY_CERTIFICATE = 10
-    delta 10 In_CERTIFICATE_VERIFY = 10
-    delta 10 In_Alert_WARNING_CLOSE_NOTIFY = 2
-    delta 10 In_Alert_FATAL_UNEXPECTED_MESSAGE = 2
-    delta 12 In_ECDH_CLIENT_HELLO = 12
-    delta 12 In_ECDH_CLIENT_KEY_EXCHANGE = 12
-    delta 12 In_CHANGE_CIPHER_SPEC = 2
-    delta 12 In_FINISHED = 12
-    delta 12 In_APPLICATION = 12
-    delta 12 In_CERTIFICATE = 12
-    delta 12 In_EMPTY_CERTIFICATE = 12
-    delta 12 In_CERTIFICATE_VERIFY = 12
-    delta 12 In_Alert_WARNING_CLOSE_NOTIFY = 2
-    delta 12 In_Alert_FATAL_UNEXPECTED_MESSAGE = 2
-    delta 11 In_ECDH_CLIENT_HELLO = 2
-    delta 11 In_ECDH_CLIENT_KEY_EXCHANGE = 2
-    delta 11 In_CHANGE_CIPHER_SPEC = 2
-    delta 11 In_FINISHED = 12
-    delta 11 In_APPLICATION = 11
-    delta 11 In_CERTIFICATE = 2
-    delta 11 In_EMPTY_CERTIFICATE = 2
-    delta 11 In_CERTIFICATE_VERIFY = 2
-    delta 11 In_Alert_WARNING_CLOSE_NOTIFY = 2
-    delta 11 In_Alert_FATAL_UNEXPECTED_MESSAGE = 2
-    delta 8 In_ECDH_CLIENT_HELLO = 8
-    delta 8 In_ECDH_CLIENT_KEY_EXCHANGE = 13
-    delta 8 In_CHANGE_CIPHER_SPEC = 14
-    delta 8 In_FINISHED = 13
-    delta 8 In_APPLICATION = 8
-    delta 8 In_CERTIFICATE = 13
-    delta 8 In_EMPTY_CERTIFICATE = 13
-    delta 8 In_CERTIFICATE_VERIFY = 13
-    delta 8 In_Alert_WARNING_CLOSE_NOTIFY = 1
-    delta 8 In_Alert_FATAL_UNEXPECTED_MESSAGE = 1
-    delta 14 In_ECDH_CLIENT_HELLO = 2
-    delta 14 In_ECDH_CLIENT_KEY_EXCHANGE = 14
-    delta 14 In_CHANGE_CIPHER_SPEC = 2
-    delta 14 In_FINISHED = 14
-    delta 14 In_APPLICATION = 14
-    delta 14 In_CERTIFICATE = 14
-    delta 14 In_EMPTY_CERTIFICATE = 14
-    delta 14 In_CERTIFICATE_VERIFY = 14
-    delta 14 In_Alert_WARNING_CLOSE_NOTIFY = 2
-    delta 14 In_Alert_FATAL_UNEXPECTED_MESSAGE = 2
-    delta 13 In_ECDH_CLIENT_HELLO = 13
-    delta 13 In_ECDH_CLIENT_KEY_EXCHANGE = 13
-    delta 13 In_CHANGE_CIPHER_SPEC = 2
-    delta 13 In_FINISHED = 13
-    delta 13 In_APPLICATION = 13
-    delta 13 In_CERTIFICATE = 13
-    delta 13 In_EMPTY_CERTIFICATE = 13
-    delta 13 In_CERTIFICATE_VERIFY = 13
-    delta 13 In_Alert_WARNING_CLOSE_NOTIFY = 1
-    delta 13 In_Alert_FATAL_UNEXPECTED_MESSAGE = 1
-    delta _ _ = error "haal-gen: undefined transition"
-    lambda 0 In_ECDH_CLIENT_HELLO = Out_HELLO_VERIFY_REQUEST
-    lambda 0 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 0 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 0 In_FINISHED = Out_TIMEOUT
-    lambda 0 In_APPLICATION = Out_TIMEOUT
-    lambda 0 In_CERTIFICATE = Out_TIMEOUT
-    lambda 0 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 0 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 0 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 0 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 2 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 2 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 2 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 2 In_FINISHED = Out_TIMEOUT
-    lambda 2 In_APPLICATION = Out_TIMEOUT
-    lambda 2 In_CERTIFICATE = Out_TIMEOUT
-    lambda 2 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 2 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 2 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 2 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 1 In_ECDH_CLIENT_HELLO = Out_SERVER_HELLO_CERTIFICATE_ECDHE_SERVER_KEY_EXCHANGE_CERTIFICATE_REQUEST_SERVER_HELLO_DONE
-    lambda 1 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 1 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 1 In_FINISHED = Out_TIMEOUT
-    lambda 1 In_APPLICATION = Out_TIMEOUT
-    lambda 1 In_CERTIFICATE = Out_TIMEOUT
-    lambda 1 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 1 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 1 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 1 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 3 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 3 In_ECDH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 3 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 3 In_FINISHED = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 3 In_APPLICATION = Out_TIMEOUT
-    lambda 3 In_CERTIFICATE = Out_TIMEOUT
-    lambda 3 In_EMPTY_CERTIFICATE = Out_Alert_FATAL_HANDSHAKE_FAILURE
-    lambda 3 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 3 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 3 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 5 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 5 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 5 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 5 In_FINISHED = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 5 In_APPLICATION = Out_TIMEOUT
-    lambda 5 In_CERTIFICATE = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 5 In_EMPTY_CERTIFICATE = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 5 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 5 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 5 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 4 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 4 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 4 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 4 In_FINISHED = Out_TIMEOUT
-    lambda 4 In_APPLICATION = Out_TIMEOUT
-    lambda 4 In_CERTIFICATE = Out_TIMEOUT
-    lambda 4 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 4 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 4 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 4 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 6 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 6 In_ECDH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 6 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 6 In_FINISHED = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 6 In_APPLICATION = Out_TIMEOUT
-    lambda 6 In_CERTIFICATE = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 6 In_EMPTY_CERTIFICATE = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 6 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 6 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 6 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 7 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 7 In_ECDH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 7 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 7 In_FINISHED = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 7 In_APPLICATION = Out_TIMEOUT
-    lambda 7 In_CERTIFICATE = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 7 In_EMPTY_CERTIFICATE = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 7 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 7 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 7 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 9 In_ECDH_CLIENT_HELLO = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 9 In_ECDH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 9 In_CHANGE_CIPHER_SPEC = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 9 In_FINISHED = Out_CHANGE_CIPHER_SPEC_FINISHED
-    lambda 9 In_APPLICATION = Out_TIMEOUT
-    lambda 9 In_CERTIFICATE = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 9 In_EMPTY_CERTIFICATE = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 9 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 9 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 9 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 10 In_ECDH_CLIENT_HELLO = Out_Alert_WARNING_NO_RENEGOTIATION
-    lambda 10 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 10 In_CHANGE_CIPHER_SPEC = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 10 In_FINISHED = Out_TIMEOUT
-    lambda 10 In_APPLICATION = Out_APPLICATION
-    lambda 10 In_CERTIFICATE = Out_TIMEOUT
-    lambda 10 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 10 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 10 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 10 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 12 In_ECDH_CLIENT_HELLO = Out_Alert_WARNING_NO_RENEGOTIATION
-    lambda 12 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 12 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 12 In_FINISHED = Out_TIMEOUT
-    lambda 12 In_APPLICATION = Out_APPLICATION
-    lambda 12 In_CERTIFICATE = Out_TIMEOUT
-    lambda 12 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 12 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 12 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 12 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 11 In_ECDH_CLIENT_HELLO = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 11 In_ECDH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 11 In_CHANGE_CIPHER_SPEC = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 11 In_FINISHED = Out_CHANGE_CIPHER_SPEC_FINISHED_APPLICATION
-    lambda 11 In_APPLICATION = Out_TIMEOUT
-    lambda 11 In_CERTIFICATE = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 11 In_EMPTY_CERTIFICATE = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 11 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 11 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 11 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 8 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 8 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 8 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 8 In_FINISHED = Out_TIMEOUT
-    lambda 8 In_APPLICATION = Out_TIMEOUT
-    lambda 8 In_CERTIFICATE = Out_TIMEOUT
-    lambda 8 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 8 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 8 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 8 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 14 In_ECDH_CLIENT_HELLO = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 14 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 14 In_CHANGE_CIPHER_SPEC = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 14 In_FINISHED = Out_TIMEOUT
-    lambda 14 In_APPLICATION = Out_TIMEOUT
-    lambda 14 In_CERTIFICATE = Out_TIMEOUT
-    lambda 14 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 14 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 14 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 14 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 13 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 13 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 13 In_CHANGE_CIPHER_SPEC = Out_Alert_FATAL_HANDSHAKE_FAILURE
-    lambda 13 In_FINISHED = Out_TIMEOUT
-    lambda 13 In_APPLICATION = Out_TIMEOUT
-    lambda 13 In_CERTIFICATE = Out_TIMEOUT
-    lambda 13 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 13 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 13 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 13 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda _ _ = error "haal-gen: undefined transition"
+    deltaTable =
+        "\1\0\2\0\0\0\0\0\0\0\
+        \\3\1\2\1\1\1\1\1\1\1\
+        \\2\2\2\2\2\2\2\2\2\2\
+        \\4\1\2\1\3\5\1\1\1\1\
+        \\4\4\2\4\4\4\4\4\1\1\
+        \\4\6\2\1\5\1\1\1\1\1\
+        \\4\1\2\1\6\1\1\7\1\1\
+        \\8\1\9\1\7\1\1\1\1\1\
+        \\8\13\14\13\8\13\13\13\1\1\
+        \\2\2\2\10\11\2\2\2\2\2\
+        \\10\10\2\10\12\10\10\10\2\2\
+        \\2\2\2\12\11\2\2\2\2\2\
+        \\12\12\2\12\12\12\12\12\2\2\
+        \\13\13\2\13\13\13\13\13\1\1\
+        \\2\14\2\14\14\14\14\14\2\2"
+    lambdaTable =
+        "\0\1\1\1\1\1\1\1\1\1\
+        \\2\1\1\1\1\1\1\1\1\1\
+        \\1\1\1\1\1\1\1\1\1\1\
+        \\1\3\1\3\1\1\4\3\5\1\
+        \\1\1\1\1\1\1\1\1\5\1\
+        \\1\1\1\3\1\3\3\3\5\1\
+        \\1\3\1\3\1\3\3\1\5\1\
+        \\1\3\1\3\1\3\3\3\5\1\
+        \\1\1\1\1\1\1\1\1\5\1\
+        \\3\3\3\6\1\3\3\3\5\1\
+        \\7\1\3\1\8\1\1\1\5\1\
+        \\3\3\3\9\1\3\3\3\5\1\
+        \\7\1\1\1\8\1\1\1\5\1\
+        \\1\1\4\1\1\1\1\1\5\1\
+        \\3\1\3\1\1\1\1\1\5\1"
diff --git a/src/Haal/Models/DTLS/ScandiumLatestPsk.hs b/src/Haal/Models/DTLS/ScandiumLatestPsk.hs
--- a/src/Haal/Models/DTLS/ScandiumLatestPsk.hs
+++ b/src/Haal/Models/DTLS/ScandiumLatestPsk.hs
@@ -5,8 +5,7 @@
     , scandiumLatestPsk
     ) where
 
-import qualified Data.Set as Set
-import Haal.Automaton.MealyAutomaton (MealyAutomaton, mkMealyAutomaton)
+import Haal.Automaton.MealyAutomaton (MealyAutomaton, mkMealyAutomatonTable)
 
 data ScandiumLatestPskInput
     = In_PSK_CLIENT_HELLO
@@ -31,190 +30,130 @@
     | Out_CHANGE_CIPHER_SPEC_FINISHED_APPLICATION
     deriving (Show, Eq, Ord, Enum, Bounded)
 
+{- Transitions (state  input -> next state / output):
+    0     In_PSK_CLIENT_HELLO                -> 1 / Out_HELLO_VERIFY_REQUEST
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 0 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_TIMEOUT
+          In_FINISHED                        -> 0 / Out_TIMEOUT
+          In_APPLICATION                     -> 0 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 0 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 0 / Out_TIMEOUT
+    1     In_PSK_CLIENT_HELLO                -> 3 / Out_SERVER_HELLO_SERVER_HELLO_DONE
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 1 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_TIMEOUT
+          In_FINISHED                        -> 1 / Out_TIMEOUT
+          In_APPLICATION                     -> 1 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 1 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 1 / Out_TIMEOUT
+    2     In_PSK_CLIENT_HELLO                -> 2 / Out_TIMEOUT
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 2 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_TIMEOUT
+          In_FINISHED                        -> 2 / Out_TIMEOUT
+          In_APPLICATION                     -> 2 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 2 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 2 / Out_TIMEOUT
+    3     In_PSK_CLIENT_HELLO                -> 4 / Out_TIMEOUT
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 5 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_TIMEOUT
+          In_FINISHED                        -> 1 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 1 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 1 / Out_TIMEOUT
+    4     In_PSK_CLIENT_HELLO                -> 4 / Out_TIMEOUT
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 4 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_TIMEOUT
+          In_FINISHED                        -> 4 / Out_TIMEOUT
+          In_APPLICATION                     -> 4 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 1 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 1 / Out_TIMEOUT
+    5     In_PSK_CLIENT_HELLO                -> 6 / Out_TIMEOUT
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 1 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_CHANGE_CIPHER_SPEC              -> 7 / Out_TIMEOUT
+          In_FINISHED                        -> 1 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_APPLICATION                     -> 5 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 1 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 1 / Out_TIMEOUT
+    6     In_PSK_CLIENT_HELLO                -> 6 / Out_TIMEOUT
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 11 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 12 / Out_TIMEOUT
+          In_FINISHED                        -> 11 / Out_TIMEOUT
+          In_APPLICATION                     -> 6 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 1 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 1 / Out_TIMEOUT
+    7     In_PSK_CLIENT_HELLO                -> 2 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 2 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_FINISHED                        -> 8 / Out_CHANGE_CIPHER_SPEC_FINISHED
+          In_APPLICATION                     -> 9 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 2 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 2 / Out_TIMEOUT
+    8     In_PSK_CLIENT_HELLO                -> 8 / Out_Alert_WARNING_NO_RENEGOTIATION
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 8 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_FINISHED                        -> 8 / Out_TIMEOUT
+          In_APPLICATION                     -> 10 / Out_APPLICATION
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 2 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 2 / Out_TIMEOUT
+    9     In_PSK_CLIENT_HELLO                -> 2 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 2 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_FINISHED                        -> 10 / Out_CHANGE_CIPHER_SPEC_FINISHED_APPLICATION
+          In_APPLICATION                     -> 9 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 2 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 2 / Out_TIMEOUT
+    10    In_PSK_CLIENT_HELLO                -> 10 / Out_Alert_WARNING_NO_RENEGOTIATION
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 10 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_TIMEOUT
+          In_FINISHED                        -> 10 / Out_TIMEOUT
+          In_APPLICATION                     -> 10 / Out_APPLICATION
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 2 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 2 / Out_TIMEOUT
+    11    In_PSK_CLIENT_HELLO                -> 11 / Out_TIMEOUT
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 11 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_Alert_FATAL_HANDSHAKE_FAILURE
+          In_FINISHED                        -> 11 / Out_TIMEOUT
+          In_APPLICATION                     -> 11 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 1 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 1 / Out_TIMEOUT
+    12    In_PSK_CLIENT_HELLO                -> 2 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 12 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_FINISHED                        -> 12 / Out_TIMEOUT
+          In_APPLICATION                     -> 12 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 2 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 2 / Out_TIMEOUT
+-}
 scandiumLatestPsk :: MealyAutomaton Int ScandiumLatestPskInput ScandiumLatestPskOutput
-scandiumLatestPsk = mkMealyAutomaton delta lambda (Set.fromList [0..12]) 0
+scandiumLatestPsk =
+    case mkMealyAutomatonTable 13 0 deltaTable lambdaTable of
+        Right m -> m
+        Left err -> error ("haal-gen: invalid transition table: " ++ err)
   where
-    delta 0 In_PSK_CLIENT_HELLO = 1
-    delta 0 In_PSK_CLIENT_KEY_EXCHANGE = 0
-    delta 0 In_CHANGE_CIPHER_SPEC = 2
-    delta 0 In_FINISHED = 0
-    delta 0 In_APPLICATION = 0
-    delta 0 In_Alert_WARNING_CLOSE_NOTIFY = 0
-    delta 0 In_Alert_FATAL_UNEXPECTED_MESSAGE = 0
-    delta 2 In_PSK_CLIENT_HELLO = 2
-    delta 2 In_PSK_CLIENT_KEY_EXCHANGE = 2
-    delta 2 In_CHANGE_CIPHER_SPEC = 2
-    delta 2 In_FINISHED = 2
-    delta 2 In_APPLICATION = 2
-    delta 2 In_Alert_WARNING_CLOSE_NOTIFY = 2
-    delta 2 In_Alert_FATAL_UNEXPECTED_MESSAGE = 2
-    delta 1 In_PSK_CLIENT_HELLO = 3
-    delta 1 In_PSK_CLIENT_KEY_EXCHANGE = 1
-    delta 1 In_CHANGE_CIPHER_SPEC = 2
-    delta 1 In_FINISHED = 1
-    delta 1 In_APPLICATION = 1
-    delta 1 In_Alert_WARNING_CLOSE_NOTIFY = 1
-    delta 1 In_Alert_FATAL_UNEXPECTED_MESSAGE = 1
-    delta 3 In_PSK_CLIENT_HELLO = 4
-    delta 3 In_PSK_CLIENT_KEY_EXCHANGE = 5
-    delta 3 In_CHANGE_CIPHER_SPEC = 2
-    delta 3 In_FINISHED = 1
-    delta 3 In_APPLICATION = 3
-    delta 3 In_Alert_WARNING_CLOSE_NOTIFY = 1
-    delta 3 In_Alert_FATAL_UNEXPECTED_MESSAGE = 1
-    delta 5 In_PSK_CLIENT_HELLO = 6
-    delta 5 In_PSK_CLIENT_KEY_EXCHANGE = 1
-    delta 5 In_CHANGE_CIPHER_SPEC = 7
-    delta 5 In_FINISHED = 1
-    delta 5 In_APPLICATION = 5
-    delta 5 In_Alert_WARNING_CLOSE_NOTIFY = 1
-    delta 5 In_Alert_FATAL_UNEXPECTED_MESSAGE = 1
-    delta 7 In_PSK_CLIENT_HELLO = 2
-    delta 7 In_PSK_CLIENT_KEY_EXCHANGE = 2
-    delta 7 In_CHANGE_CIPHER_SPEC = 2
-    delta 7 In_FINISHED = 8
-    delta 7 In_APPLICATION = 9
-    delta 7 In_Alert_WARNING_CLOSE_NOTIFY = 2
-    delta 7 In_Alert_FATAL_UNEXPECTED_MESSAGE = 2
-    delta 8 In_PSK_CLIENT_HELLO = 8
-    delta 8 In_PSK_CLIENT_KEY_EXCHANGE = 8
-    delta 8 In_CHANGE_CIPHER_SPEC = 2
-    delta 8 In_FINISHED = 8
-    delta 8 In_APPLICATION = 10
-    delta 8 In_Alert_WARNING_CLOSE_NOTIFY = 2
-    delta 8 In_Alert_FATAL_UNEXPECTED_MESSAGE = 2
-    delta 4 In_PSK_CLIENT_HELLO = 4
-    delta 4 In_PSK_CLIENT_KEY_EXCHANGE = 4
-    delta 4 In_CHANGE_CIPHER_SPEC = 2
-    delta 4 In_FINISHED = 4
-    delta 4 In_APPLICATION = 4
-    delta 4 In_Alert_WARNING_CLOSE_NOTIFY = 1
-    delta 4 In_Alert_FATAL_UNEXPECTED_MESSAGE = 1
-    delta 6 In_PSK_CLIENT_HELLO = 6
-    delta 6 In_PSK_CLIENT_KEY_EXCHANGE = 11
-    delta 6 In_CHANGE_CIPHER_SPEC = 12
-    delta 6 In_FINISHED = 11
-    delta 6 In_APPLICATION = 6
-    delta 6 In_Alert_WARNING_CLOSE_NOTIFY = 1
-    delta 6 In_Alert_FATAL_UNEXPECTED_MESSAGE = 1
-    delta 11 In_PSK_CLIENT_HELLO = 11
-    delta 11 In_PSK_CLIENT_KEY_EXCHANGE = 11
-    delta 11 In_CHANGE_CIPHER_SPEC = 2
-    delta 11 In_FINISHED = 11
-    delta 11 In_APPLICATION = 11
-    delta 11 In_Alert_WARNING_CLOSE_NOTIFY = 1
-    delta 11 In_Alert_FATAL_UNEXPECTED_MESSAGE = 1
-    delta 12 In_PSK_CLIENT_HELLO = 2
-    delta 12 In_PSK_CLIENT_KEY_EXCHANGE = 12
-    delta 12 In_CHANGE_CIPHER_SPEC = 2
-    delta 12 In_FINISHED = 12
-    delta 12 In_APPLICATION = 12
-    delta 12 In_Alert_WARNING_CLOSE_NOTIFY = 2
-    delta 12 In_Alert_FATAL_UNEXPECTED_MESSAGE = 2
-    delta 10 In_PSK_CLIENT_HELLO = 10
-    delta 10 In_PSK_CLIENT_KEY_EXCHANGE = 10
-    delta 10 In_CHANGE_CIPHER_SPEC = 2
-    delta 10 In_FINISHED = 10
-    delta 10 In_APPLICATION = 10
-    delta 10 In_Alert_WARNING_CLOSE_NOTIFY = 2
-    delta 10 In_Alert_FATAL_UNEXPECTED_MESSAGE = 2
-    delta 9 In_PSK_CLIENT_HELLO = 2
-    delta 9 In_PSK_CLIENT_KEY_EXCHANGE = 2
-    delta 9 In_CHANGE_CIPHER_SPEC = 2
-    delta 9 In_FINISHED = 10
-    delta 9 In_APPLICATION = 9
-    delta 9 In_Alert_WARNING_CLOSE_NOTIFY = 2
-    delta 9 In_Alert_FATAL_UNEXPECTED_MESSAGE = 2
-    delta _ _ = error "haal-gen: undefined transition"
-    lambda 0 In_PSK_CLIENT_HELLO = Out_HELLO_VERIFY_REQUEST
-    lambda 0 In_PSK_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 0 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 0 In_FINISHED = Out_TIMEOUT
-    lambda 0 In_APPLICATION = Out_TIMEOUT
-    lambda 0 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 0 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 2 In_PSK_CLIENT_HELLO = Out_TIMEOUT
-    lambda 2 In_PSK_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 2 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 2 In_FINISHED = Out_TIMEOUT
-    lambda 2 In_APPLICATION = Out_TIMEOUT
-    lambda 2 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 2 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 1 In_PSK_CLIENT_HELLO = Out_SERVER_HELLO_SERVER_HELLO_DONE
-    lambda 1 In_PSK_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 1 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 1 In_FINISHED = Out_TIMEOUT
-    lambda 1 In_APPLICATION = Out_TIMEOUT
-    lambda 1 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 1 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 3 In_PSK_CLIENT_HELLO = Out_TIMEOUT
-    lambda 3 In_PSK_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 3 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 3 In_FINISHED = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 3 In_APPLICATION = Out_TIMEOUT
-    lambda 3 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 3 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 5 In_PSK_CLIENT_HELLO = Out_TIMEOUT
-    lambda 5 In_PSK_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 5 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 5 In_FINISHED = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 5 In_APPLICATION = Out_TIMEOUT
-    lambda 5 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 5 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 7 In_PSK_CLIENT_HELLO = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 7 In_PSK_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 7 In_CHANGE_CIPHER_SPEC = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 7 In_FINISHED = Out_CHANGE_CIPHER_SPEC_FINISHED
-    lambda 7 In_APPLICATION = Out_TIMEOUT
-    lambda 7 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 7 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 8 In_PSK_CLIENT_HELLO = Out_Alert_WARNING_NO_RENEGOTIATION
-    lambda 8 In_PSK_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 8 In_CHANGE_CIPHER_SPEC = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 8 In_FINISHED = Out_TIMEOUT
-    lambda 8 In_APPLICATION = Out_APPLICATION
-    lambda 8 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 8 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 4 In_PSK_CLIENT_HELLO = Out_TIMEOUT
-    lambda 4 In_PSK_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 4 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 4 In_FINISHED = Out_TIMEOUT
-    lambda 4 In_APPLICATION = Out_TIMEOUT
-    lambda 4 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 4 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 6 In_PSK_CLIENT_HELLO = Out_TIMEOUT
-    lambda 6 In_PSK_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 6 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 6 In_FINISHED = Out_TIMEOUT
-    lambda 6 In_APPLICATION = Out_TIMEOUT
-    lambda 6 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 6 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 11 In_PSK_CLIENT_HELLO = Out_TIMEOUT
-    lambda 11 In_PSK_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 11 In_CHANGE_CIPHER_SPEC = Out_Alert_FATAL_HANDSHAKE_FAILURE
-    lambda 11 In_FINISHED = Out_TIMEOUT
-    lambda 11 In_APPLICATION = Out_TIMEOUT
-    lambda 11 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 11 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 12 In_PSK_CLIENT_HELLO = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 12 In_PSK_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 12 In_CHANGE_CIPHER_SPEC = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 12 In_FINISHED = Out_TIMEOUT
-    lambda 12 In_APPLICATION = Out_TIMEOUT
-    lambda 12 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 12 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 10 In_PSK_CLIENT_HELLO = Out_Alert_WARNING_NO_RENEGOTIATION
-    lambda 10 In_PSK_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 10 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 10 In_FINISHED = Out_TIMEOUT
-    lambda 10 In_APPLICATION = Out_APPLICATION
-    lambda 10 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 10 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 9 In_PSK_CLIENT_HELLO = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 9 In_PSK_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 9 In_CHANGE_CIPHER_SPEC = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 9 In_FINISHED = Out_CHANGE_CIPHER_SPEC_FINISHED_APPLICATION
-    lambda 9 In_APPLICATION = Out_TIMEOUT
-    lambda 9 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 9 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda _ _ = error "haal-gen: undefined transition"
+    deltaTable =
+        "\1\0\2\0\0\0\0\
+        \\3\1\2\1\1\1\1\
+        \\2\2\2\2\2\2\2\
+        \\4\5\2\1\3\1\1\
+        \\4\4\2\4\4\1\1\
+        \\6\1\7\1\5\1\1\
+        \\6\11\12\11\6\1\1\
+        \\2\2\2\8\9\2\2\
+        \\8\8\2\8\10\2\2\
+        \\2\2\2\10\9\2\2\
+        \\10\10\2\10\10\2\2\
+        \\11\11\2\11\11\1\1\
+        \\2\12\2\12\12\2\2"
+    lambdaTable =
+        "\0\1\1\1\1\1\1\
+        \\2\1\1\1\1\1\1\
+        \\1\1\1\1\1\1\1\
+        \\1\1\1\3\1\4\1\
+        \\1\1\1\1\1\4\1\
+        \\1\3\1\3\1\4\1\
+        \\1\1\1\1\1\4\1\
+        \\3\3\3\5\1\4\1\
+        \\6\1\3\1\7\4\1\
+        \\3\3\3\9\1\4\1\
+        \\6\1\1\1\7\4\1\
+        \\1\1\8\1\1\4\1\
+        \\3\1\3\1\1\4\1"
diff --git a/src/Haal/Models/DTLS/ScandiumV2V0V0EcdheCertNone.hs b/src/Haal/Models/DTLS/ScandiumV2V0V0EcdheCertNone.hs
--- a/src/Haal/Models/DTLS/ScandiumV2V0V0EcdheCertNone.hs
+++ b/src/Haal/Models/DTLS/ScandiumV2V0V0EcdheCertNone.hs
@@ -5,8 +5,7 @@
     , scandiumV2V0V0EcdheCertNone
     ) where
 
-import qualified Data.Set as Set
-import Haal.Automaton.MealyAutomaton (MealyAutomaton, mkMealyAutomaton)
+import Haal.Automaton.MealyAutomaton (MealyAutomaton, mkMealyAutomatonTable)
 
 data ScandiumV2V0V0EcdheCertNoneInput
     = In_ECDH_CLIENT_HELLO
@@ -37,608 +36,373 @@
     | Out_CHANGE_CIPHER_SPEC_FINISHED_APPLICATION
     deriving (Show, Eq, Ord, Enum, Bounded)
 
+{- Transitions (state  input -> next state / output):
+    0     In_ECDH_CLIENT_HELLO               -> 1 / Out_HELLO_VERIFY_REQUEST
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 2 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_TIMEOUT
+          In_FINISHED                        -> 2 / Out_TIMEOUT
+          In_APPLICATION                     -> 0 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 2 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 2 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 2 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 0 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 0 / Out_TIMEOUT
+    1     In_ECDH_CLIENT_HELLO               -> 3 / Out_SERVER_HELLO_CERTIFICATE_ECDHE_SERVER_KEY_EXCHANGE_SERVER_HELLO_DONE
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 4 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_TIMEOUT
+          In_FINISHED                        -> 4 / Out_TIMEOUT
+          In_APPLICATION                     -> 1 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 4 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 4 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 4 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 1 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 1 / Out_TIMEOUT
+    2     In_ECDH_CLIENT_HELLO               -> 2 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 2 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_TIMEOUT
+          In_FINISHED                        -> 2 / Out_TIMEOUT
+          In_APPLICATION                     -> 2 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 2 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 2 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 2 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 2 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 2 / Out_TIMEOUT
+    3     In_ECDH_CLIENT_HELLO               -> 8 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 9 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_TIMEOUT
+          In_FINISHED                        -> 10 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 10 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_EMPTY_CERTIFICATE               -> 10 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_CERTIFICATE_VERIFY              -> 10 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 11 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 11 / Out_TIMEOUT
+    4     In_ECDH_CLIENT_HELLO               -> 5 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 4 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_TIMEOUT
+          In_FINISHED                        -> 4 / Out_TIMEOUT
+          In_APPLICATION                     -> 4 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 4 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 4 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 4 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    5     In_ECDH_CLIENT_HELLO               -> 6 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 7 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_TIMEOUT
+          In_FINISHED                        -> 4 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_APPLICATION                     -> 5 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 4 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_EMPTY_CERTIFICATE               -> 4 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_CERTIFICATE_VERIFY              -> 4 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    6     In_ECDH_CLIENT_HELLO               -> 6 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 6 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_TIMEOUT
+          In_FINISHED                        -> 6 / Out_TIMEOUT
+          In_APPLICATION                     -> 6 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 6 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 6 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 6 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    7     In_ECDH_CLIENT_HELLO               -> 25 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 4 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_TIMEOUT
+          In_FINISHED                        -> 4 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_APPLICATION                     -> 7 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 4 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_EMPTY_CERTIFICATE               -> 4 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_CERTIFICATE_VERIFY              -> 4 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    8     In_ECDH_CLIENT_HELLO               -> 22 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 22 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_TIMEOUT
+          In_FINISHED                        -> 22 / Out_TIMEOUT
+          In_APPLICATION                     -> 8 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 22 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 22 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 22 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 10 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 10 / Out_TIMEOUT
+    9     In_ECDH_CLIENT_HELLO               -> 14 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 13 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_CHANGE_CIPHER_SPEC              -> 15 / Out_TIMEOUT
+          In_FINISHED                        -> 13 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_APPLICATION                     -> 9 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 13 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_EMPTY_CERTIFICATE               -> 13 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_CERTIFICATE_VERIFY              -> 13 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 10 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 10 / Out_TIMEOUT
+    10    In_ECDH_CLIENT_HELLO               -> 12 / Out_ECDHE_SERVER_KEY_EXCHANGE_SERVER_HELLO_DONE
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 13 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_TIMEOUT
+          In_FINISHED                        -> 13 / Out_TIMEOUT
+          In_APPLICATION                     -> 10 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 13 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 13 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 13 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 10 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 10 / Out_TIMEOUT
+    11    In_ECDH_CLIENT_HELLO               -> 12 / Out_SERVER_HELLO_DONE
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 10 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_TIMEOUT
+          In_FINISHED                        -> 10 / Out_TIMEOUT
+          In_APPLICATION                     -> 11 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 10 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 10 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 10 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 11 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 11 / Out_TIMEOUT
+    12    In_ECDH_CLIENT_HELLO               -> 8 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 26 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_TIMEOUT
+          In_FINISHED                        -> 10 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_APPLICATION                     -> 12 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 10 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_EMPTY_CERTIFICATE               -> 10 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_CERTIFICATE_VERIFY              -> 10 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 11 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 11 / Out_TIMEOUT
+    13    In_ECDH_CLIENT_HELLO               -> 12 / Out_CERTIFICATE_ECDHE_SERVER_KEY_EXCHANGE_SERVER_HELLO_DONE
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 1 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_TIMEOUT
+          In_FINISHED                        -> 1 / Out_TIMEOUT
+          In_APPLICATION                     -> 13 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 1 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 1 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 1 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 13 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 13 / Out_TIMEOUT
+    14    In_ECDH_CLIENT_HELLO               -> 19 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 20 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 21 / Out_TIMEOUT
+          In_FINISHED                        -> 20 / Out_TIMEOUT
+          In_APPLICATION                     -> 14 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 20 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 20 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 20 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 13 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 13 / Out_TIMEOUT
+    15    In_ECDH_CLIENT_HELLO               -> 2 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 2 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_FINISHED                        -> 16 / Out_CHANGE_CIPHER_SPEC_FINISHED
+          In_APPLICATION                     -> 17 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 2 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_EMPTY_CERTIFICATE               -> 2 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_CERTIFICATE_VERIFY              -> 2 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 2 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 2 / Out_TIMEOUT
+    16    In_ECDH_CLIENT_HELLO               -> 16 / Out_Alert_WARNING_NO_RENEGOTIATION
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 16 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_FINISHED                        -> 16 / Out_TIMEOUT
+          In_APPLICATION                     -> 18 / Out_APPLICATION
+          In_CERTIFICATE                     -> 16 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 16 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 16 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 2 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 2 / Out_TIMEOUT
+    17    In_ECDH_CLIENT_HELLO               -> 2 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 2 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_FINISHED                        -> 18 / Out_CHANGE_CIPHER_SPEC_FINISHED_APPLICATION
+          In_APPLICATION                     -> 17 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 2 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_EMPTY_CERTIFICATE               -> 2 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_CERTIFICATE_VERIFY              -> 2 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 2 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 2 / Out_TIMEOUT
+    18    In_ECDH_CLIENT_HELLO               -> 18 / Out_Alert_WARNING_NO_RENEGOTIATION
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 18 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_TIMEOUT
+          In_FINISHED                        -> 18 / Out_TIMEOUT
+          In_APPLICATION                     -> 18 / Out_APPLICATION
+          In_CERTIFICATE                     -> 18 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 18 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 18 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 2 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 2 / Out_TIMEOUT
+    19    In_ECDH_CLIENT_HELLO               -> 29 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 23 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 21 / Out_TIMEOUT
+          In_FINISHED                        -> 23 / Out_TIMEOUT
+          In_APPLICATION                     -> 19 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 23 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 23 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 23 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 1 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 1 / Out_TIMEOUT
+    20    In_ECDH_CLIENT_HELLO               -> 23 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 23 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_Alert_FATAL_HANDSHAKE_FAILURE
+          In_FINISHED                        -> 23 / Out_TIMEOUT
+          In_APPLICATION                     -> 20 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 23 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 23 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 23 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 1 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 1 / Out_TIMEOUT
+    21    In_ECDH_CLIENT_HELLO               -> 2 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 21 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_FINISHED                        -> 21 / Out_TIMEOUT
+          In_APPLICATION                     -> 21 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 21 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 21 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 21 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 2 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 2 / Out_TIMEOUT
+    22    In_ECDH_CLIENT_HELLO               -> 24 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 24 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_TIMEOUT
+          In_FINISHED                        -> 24 / Out_TIMEOUT
+          In_APPLICATION                     -> 22 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 24 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 24 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 24 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 13 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 13 / Out_TIMEOUT
+    23    In_ECDH_CLIENT_HELLO               -> 23 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 23 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_Alert_FATAL_HANDSHAKE_FAILURE
+          In_FINISHED                        -> 23 / Out_TIMEOUT
+          In_APPLICATION                     -> 23 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 23 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 23 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 23 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    24    In_ECDH_CLIENT_HELLO               -> 6 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 6 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_TIMEOUT
+          In_FINISHED                        -> 6 / Out_TIMEOUT
+          In_APPLICATION                     -> 24 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 6 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 6 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 6 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 1 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 1 / Out_TIMEOUT
+    25    In_ECDH_CLIENT_HELLO               -> 25 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 23 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_TIMEOUT
+          In_FINISHED                        -> 23 / Out_TIMEOUT
+          In_APPLICATION                     -> 25 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 23 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 23 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 23 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    26    In_ECDH_CLIENT_HELLO               -> 27 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 13 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_TIMEOUT
+          In_FINISHED                        -> 13 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_APPLICATION                     -> 26 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 13 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_EMPTY_CERTIFICATE               -> 13 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_CERTIFICATE_VERIFY              -> 13 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 10 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 10 / Out_TIMEOUT
+    27    In_ECDH_CLIENT_HELLO               -> 28 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 20 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_TIMEOUT
+          In_FINISHED                        -> 20 / Out_TIMEOUT
+          In_APPLICATION                     -> 27 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 20 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 20 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 20 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 13 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 13 / Out_TIMEOUT
+    28    In_ECDH_CLIENT_HELLO               -> 25 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 23 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_TIMEOUT
+          In_FINISHED                        -> 23 / Out_TIMEOUT
+          In_APPLICATION                     -> 28 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 23 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 23 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 23 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 1 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 1 / Out_TIMEOUT
+    29    In_ECDH_CLIENT_HELLO               -> 29 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 23 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 21 / Out_TIMEOUT
+          In_FINISHED                        -> 23 / Out_TIMEOUT
+          In_APPLICATION                     -> 29 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 23 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 23 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 23 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+-}
 scandiumV2V0V0EcdheCertNone :: MealyAutomaton Int ScandiumV2V0V0EcdheCertNoneInput ScandiumV2V0V0EcdheCertNoneOutput
-scandiumV2V0V0EcdheCertNone = mkMealyAutomaton delta lambda (Set.fromList [0..29]) 0
+scandiumV2V0V0EcdheCertNone =
+    case mkMealyAutomatonTable 30 0 deltaTable lambdaTable of
+        Right m -> m
+        Left err -> error ("haal-gen: invalid transition table: " ++ err)
   where
-    delta 0 In_ECDH_CLIENT_HELLO = 1
-    delta 0 In_ECDH_CLIENT_KEY_EXCHANGE = 2
-    delta 0 In_CHANGE_CIPHER_SPEC = 2
-    delta 0 In_FINISHED = 2
-    delta 0 In_APPLICATION = 0
-    delta 0 In_CERTIFICATE = 2
-    delta 0 In_EMPTY_CERTIFICATE = 2
-    delta 0 In_CERTIFICATE_VERIFY = 2
-    delta 0 In_Alert_WARNING_CLOSE_NOTIFY = 0
-    delta 0 In_Alert_FATAL_UNEXPECTED_MESSAGE = 0
-    delta 2 In_ECDH_CLIENT_HELLO = 2
-    delta 2 In_ECDH_CLIENT_KEY_EXCHANGE = 2
-    delta 2 In_CHANGE_CIPHER_SPEC = 2
-    delta 2 In_FINISHED = 2
-    delta 2 In_APPLICATION = 2
-    delta 2 In_CERTIFICATE = 2
-    delta 2 In_EMPTY_CERTIFICATE = 2
-    delta 2 In_CERTIFICATE_VERIFY = 2
-    delta 2 In_Alert_WARNING_CLOSE_NOTIFY = 2
-    delta 2 In_Alert_FATAL_UNEXPECTED_MESSAGE = 2
-    delta 1 In_ECDH_CLIENT_HELLO = 3
-    delta 1 In_ECDH_CLIENT_KEY_EXCHANGE = 4
-    delta 1 In_CHANGE_CIPHER_SPEC = 2
-    delta 1 In_FINISHED = 4
-    delta 1 In_APPLICATION = 1
-    delta 1 In_CERTIFICATE = 4
-    delta 1 In_EMPTY_CERTIFICATE = 4
-    delta 1 In_CERTIFICATE_VERIFY = 4
-    delta 1 In_Alert_WARNING_CLOSE_NOTIFY = 1
-    delta 1 In_Alert_FATAL_UNEXPECTED_MESSAGE = 1
-    delta 4 In_ECDH_CLIENT_HELLO = 5
-    delta 4 In_ECDH_CLIENT_KEY_EXCHANGE = 4
-    delta 4 In_CHANGE_CIPHER_SPEC = 2
-    delta 4 In_FINISHED = 4
-    delta 4 In_APPLICATION = 4
-    delta 4 In_CERTIFICATE = 4
-    delta 4 In_EMPTY_CERTIFICATE = 4
-    delta 4 In_CERTIFICATE_VERIFY = 4
-    delta 4 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 4 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 5 In_ECDH_CLIENT_HELLO = 6
-    delta 5 In_ECDH_CLIENT_KEY_EXCHANGE = 7
-    delta 5 In_CHANGE_CIPHER_SPEC = 2
-    delta 5 In_FINISHED = 4
-    delta 5 In_APPLICATION = 5
-    delta 5 In_CERTIFICATE = 4
-    delta 5 In_EMPTY_CERTIFICATE = 4
-    delta 5 In_CERTIFICATE_VERIFY = 4
-    delta 5 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 5 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 3 In_ECDH_CLIENT_HELLO = 8
-    delta 3 In_ECDH_CLIENT_KEY_EXCHANGE = 9
-    delta 3 In_CHANGE_CIPHER_SPEC = 2
-    delta 3 In_FINISHED = 10
-    delta 3 In_APPLICATION = 3
-    delta 3 In_CERTIFICATE = 10
-    delta 3 In_EMPTY_CERTIFICATE = 10
-    delta 3 In_CERTIFICATE_VERIFY = 10
-    delta 3 In_Alert_WARNING_CLOSE_NOTIFY = 11
-    delta 3 In_Alert_FATAL_UNEXPECTED_MESSAGE = 11
-    delta 11 In_ECDH_CLIENT_HELLO = 12
-    delta 11 In_ECDH_CLIENT_KEY_EXCHANGE = 10
-    delta 11 In_CHANGE_CIPHER_SPEC = 2
-    delta 11 In_FINISHED = 10
-    delta 11 In_APPLICATION = 11
-    delta 11 In_CERTIFICATE = 10
-    delta 11 In_EMPTY_CERTIFICATE = 10
-    delta 11 In_CERTIFICATE_VERIFY = 10
-    delta 11 In_Alert_WARNING_CLOSE_NOTIFY = 11
-    delta 11 In_Alert_FATAL_UNEXPECTED_MESSAGE = 11
-    delta 10 In_ECDH_CLIENT_HELLO = 12
-    delta 10 In_ECDH_CLIENT_KEY_EXCHANGE = 13
-    delta 10 In_CHANGE_CIPHER_SPEC = 2
-    delta 10 In_FINISHED = 13
-    delta 10 In_APPLICATION = 10
-    delta 10 In_CERTIFICATE = 13
-    delta 10 In_EMPTY_CERTIFICATE = 13
-    delta 10 In_CERTIFICATE_VERIFY = 13
-    delta 10 In_Alert_WARNING_CLOSE_NOTIFY = 10
-    delta 10 In_Alert_FATAL_UNEXPECTED_MESSAGE = 10
-    delta 13 In_ECDH_CLIENT_HELLO = 12
-    delta 13 In_ECDH_CLIENT_KEY_EXCHANGE = 1
-    delta 13 In_CHANGE_CIPHER_SPEC = 2
-    delta 13 In_FINISHED = 1
-    delta 13 In_APPLICATION = 13
-    delta 13 In_CERTIFICATE = 1
-    delta 13 In_EMPTY_CERTIFICATE = 1
-    delta 13 In_CERTIFICATE_VERIFY = 1
-    delta 13 In_Alert_WARNING_CLOSE_NOTIFY = 13
-    delta 13 In_Alert_FATAL_UNEXPECTED_MESSAGE = 13
-    delta 9 In_ECDH_CLIENT_HELLO = 14
-    delta 9 In_ECDH_CLIENT_KEY_EXCHANGE = 13
-    delta 9 In_CHANGE_CIPHER_SPEC = 15
-    delta 9 In_FINISHED = 13
-    delta 9 In_APPLICATION = 9
-    delta 9 In_CERTIFICATE = 13
-    delta 9 In_EMPTY_CERTIFICATE = 13
-    delta 9 In_CERTIFICATE_VERIFY = 13
-    delta 9 In_Alert_WARNING_CLOSE_NOTIFY = 10
-    delta 9 In_Alert_FATAL_UNEXPECTED_MESSAGE = 10
-    delta 15 In_ECDH_CLIENT_HELLO = 2
-    delta 15 In_ECDH_CLIENT_KEY_EXCHANGE = 2
-    delta 15 In_CHANGE_CIPHER_SPEC = 2
-    delta 15 In_FINISHED = 16
-    delta 15 In_APPLICATION = 17
-    delta 15 In_CERTIFICATE = 2
-    delta 15 In_EMPTY_CERTIFICATE = 2
-    delta 15 In_CERTIFICATE_VERIFY = 2
-    delta 15 In_Alert_WARNING_CLOSE_NOTIFY = 2
-    delta 15 In_Alert_FATAL_UNEXPECTED_MESSAGE = 2
-    delta 16 In_ECDH_CLIENT_HELLO = 16
-    delta 16 In_ECDH_CLIENT_KEY_EXCHANGE = 16
-    delta 16 In_CHANGE_CIPHER_SPEC = 2
-    delta 16 In_FINISHED = 16
-    delta 16 In_APPLICATION = 18
-    delta 16 In_CERTIFICATE = 16
-    delta 16 In_EMPTY_CERTIFICATE = 16
-    delta 16 In_CERTIFICATE_VERIFY = 16
-    delta 16 In_Alert_WARNING_CLOSE_NOTIFY = 2
-    delta 16 In_Alert_FATAL_UNEXPECTED_MESSAGE = 2
-    delta 14 In_ECDH_CLIENT_HELLO = 19
-    delta 14 In_ECDH_CLIENT_KEY_EXCHANGE = 20
-    delta 14 In_CHANGE_CIPHER_SPEC = 21
-    delta 14 In_FINISHED = 20
-    delta 14 In_APPLICATION = 14
-    delta 14 In_CERTIFICATE = 20
-    delta 14 In_EMPTY_CERTIFICATE = 20
-    delta 14 In_CERTIFICATE_VERIFY = 20
-    delta 14 In_Alert_WARNING_CLOSE_NOTIFY = 13
-    delta 14 In_Alert_FATAL_UNEXPECTED_MESSAGE = 13
-    delta 21 In_ECDH_CLIENT_HELLO = 2
-    delta 21 In_ECDH_CLIENT_KEY_EXCHANGE = 21
-    delta 21 In_CHANGE_CIPHER_SPEC = 2
-    delta 21 In_FINISHED = 21
-    delta 21 In_APPLICATION = 21
-    delta 21 In_CERTIFICATE = 21
-    delta 21 In_EMPTY_CERTIFICATE = 21
-    delta 21 In_CERTIFICATE_VERIFY = 21
-    delta 21 In_Alert_WARNING_CLOSE_NOTIFY = 2
-    delta 21 In_Alert_FATAL_UNEXPECTED_MESSAGE = 2
-    delta 8 In_ECDH_CLIENT_HELLO = 22
-    delta 8 In_ECDH_CLIENT_KEY_EXCHANGE = 22
-    delta 8 In_CHANGE_CIPHER_SPEC = 2
-    delta 8 In_FINISHED = 22
-    delta 8 In_APPLICATION = 8
-    delta 8 In_CERTIFICATE = 22
-    delta 8 In_EMPTY_CERTIFICATE = 22
-    delta 8 In_CERTIFICATE_VERIFY = 22
-    delta 8 In_Alert_WARNING_CLOSE_NOTIFY = 10
-    delta 8 In_Alert_FATAL_UNEXPECTED_MESSAGE = 10
-    delta 20 In_ECDH_CLIENT_HELLO = 23
-    delta 20 In_ECDH_CLIENT_KEY_EXCHANGE = 23
-    delta 20 In_CHANGE_CIPHER_SPEC = 2
-    delta 20 In_FINISHED = 23
-    delta 20 In_APPLICATION = 20
-    delta 20 In_CERTIFICATE = 23
-    delta 20 In_EMPTY_CERTIFICATE = 23
-    delta 20 In_CERTIFICATE_VERIFY = 23
-    delta 20 In_Alert_WARNING_CLOSE_NOTIFY = 1
-    delta 20 In_Alert_FATAL_UNEXPECTED_MESSAGE = 1
-    delta 18 In_ECDH_CLIENT_HELLO = 18
-    delta 18 In_ECDH_CLIENT_KEY_EXCHANGE = 18
-    delta 18 In_CHANGE_CIPHER_SPEC = 2
-    delta 18 In_FINISHED = 18
-    delta 18 In_APPLICATION = 18
-    delta 18 In_CERTIFICATE = 18
-    delta 18 In_EMPTY_CERTIFICATE = 18
-    delta 18 In_CERTIFICATE_VERIFY = 18
-    delta 18 In_Alert_WARNING_CLOSE_NOTIFY = 2
-    delta 18 In_Alert_FATAL_UNEXPECTED_MESSAGE = 2
-    delta 23 In_ECDH_CLIENT_HELLO = 23
-    delta 23 In_ECDH_CLIENT_KEY_EXCHANGE = 23
-    delta 23 In_CHANGE_CIPHER_SPEC = 2
-    delta 23 In_FINISHED = 23
-    delta 23 In_APPLICATION = 23
-    delta 23 In_CERTIFICATE = 23
-    delta 23 In_EMPTY_CERTIFICATE = 23
-    delta 23 In_CERTIFICATE_VERIFY = 23
-    delta 23 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 23 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 22 In_ECDH_CLIENT_HELLO = 24
-    delta 22 In_ECDH_CLIENT_KEY_EXCHANGE = 24
-    delta 22 In_CHANGE_CIPHER_SPEC = 2
-    delta 22 In_FINISHED = 24
-    delta 22 In_APPLICATION = 22
-    delta 22 In_CERTIFICATE = 24
-    delta 22 In_EMPTY_CERTIFICATE = 24
-    delta 22 In_CERTIFICATE_VERIFY = 24
-    delta 22 In_Alert_WARNING_CLOSE_NOTIFY = 13
-    delta 22 In_Alert_FATAL_UNEXPECTED_MESSAGE = 13
-    delta 6 In_ECDH_CLIENT_HELLO = 6
-    delta 6 In_ECDH_CLIENT_KEY_EXCHANGE = 6
-    delta 6 In_CHANGE_CIPHER_SPEC = 2
-    delta 6 In_FINISHED = 6
-    delta 6 In_APPLICATION = 6
-    delta 6 In_CERTIFICATE = 6
-    delta 6 In_EMPTY_CERTIFICATE = 6
-    delta 6 In_CERTIFICATE_VERIFY = 6
-    delta 6 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 6 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 24 In_ECDH_CLIENT_HELLO = 6
-    delta 24 In_ECDH_CLIENT_KEY_EXCHANGE = 6
-    delta 24 In_CHANGE_CIPHER_SPEC = 2
-    delta 24 In_FINISHED = 6
-    delta 24 In_APPLICATION = 24
-    delta 24 In_CERTIFICATE = 6
-    delta 24 In_EMPTY_CERTIFICATE = 6
-    delta 24 In_CERTIFICATE_VERIFY = 6
-    delta 24 In_Alert_WARNING_CLOSE_NOTIFY = 1
-    delta 24 In_Alert_FATAL_UNEXPECTED_MESSAGE = 1
-    delta 7 In_ECDH_CLIENT_HELLO = 25
-    delta 7 In_ECDH_CLIENT_KEY_EXCHANGE = 4
-    delta 7 In_CHANGE_CIPHER_SPEC = 2
-    delta 7 In_FINISHED = 4
-    delta 7 In_APPLICATION = 7
-    delta 7 In_CERTIFICATE = 4
-    delta 7 In_EMPTY_CERTIFICATE = 4
-    delta 7 In_CERTIFICATE_VERIFY = 4
-    delta 7 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 7 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 12 In_ECDH_CLIENT_HELLO = 8
-    delta 12 In_ECDH_CLIENT_KEY_EXCHANGE = 26
-    delta 12 In_CHANGE_CIPHER_SPEC = 2
-    delta 12 In_FINISHED = 10
-    delta 12 In_APPLICATION = 12
-    delta 12 In_CERTIFICATE = 10
-    delta 12 In_EMPTY_CERTIFICATE = 10
-    delta 12 In_CERTIFICATE_VERIFY = 10
-    delta 12 In_Alert_WARNING_CLOSE_NOTIFY = 11
-    delta 12 In_Alert_FATAL_UNEXPECTED_MESSAGE = 11
-    delta 26 In_ECDH_CLIENT_HELLO = 27
-    delta 26 In_ECDH_CLIENT_KEY_EXCHANGE = 13
-    delta 26 In_CHANGE_CIPHER_SPEC = 2
-    delta 26 In_FINISHED = 13
-    delta 26 In_APPLICATION = 26
-    delta 26 In_CERTIFICATE = 13
-    delta 26 In_EMPTY_CERTIFICATE = 13
-    delta 26 In_CERTIFICATE_VERIFY = 13
-    delta 26 In_Alert_WARNING_CLOSE_NOTIFY = 10
-    delta 26 In_Alert_FATAL_UNEXPECTED_MESSAGE = 10
-    delta 25 In_ECDH_CLIENT_HELLO = 25
-    delta 25 In_ECDH_CLIENT_KEY_EXCHANGE = 23
-    delta 25 In_CHANGE_CIPHER_SPEC = 2
-    delta 25 In_FINISHED = 23
-    delta 25 In_APPLICATION = 25
-    delta 25 In_CERTIFICATE = 23
-    delta 25 In_EMPTY_CERTIFICATE = 23
-    delta 25 In_CERTIFICATE_VERIFY = 23
-    delta 25 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 25 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 27 In_ECDH_CLIENT_HELLO = 28
-    delta 27 In_ECDH_CLIENT_KEY_EXCHANGE = 20
-    delta 27 In_CHANGE_CIPHER_SPEC = 2
-    delta 27 In_FINISHED = 20
-    delta 27 In_APPLICATION = 27
-    delta 27 In_CERTIFICATE = 20
-    delta 27 In_EMPTY_CERTIFICATE = 20
-    delta 27 In_CERTIFICATE_VERIFY = 20
-    delta 27 In_Alert_WARNING_CLOSE_NOTIFY = 13
-    delta 27 In_Alert_FATAL_UNEXPECTED_MESSAGE = 13
-    delta 19 In_ECDH_CLIENT_HELLO = 29
-    delta 19 In_ECDH_CLIENT_KEY_EXCHANGE = 23
-    delta 19 In_CHANGE_CIPHER_SPEC = 21
-    delta 19 In_FINISHED = 23
-    delta 19 In_APPLICATION = 19
-    delta 19 In_CERTIFICATE = 23
-    delta 19 In_EMPTY_CERTIFICATE = 23
-    delta 19 In_CERTIFICATE_VERIFY = 23
-    delta 19 In_Alert_WARNING_CLOSE_NOTIFY = 1
-    delta 19 In_Alert_FATAL_UNEXPECTED_MESSAGE = 1
-    delta 29 In_ECDH_CLIENT_HELLO = 29
-    delta 29 In_ECDH_CLIENT_KEY_EXCHANGE = 23
-    delta 29 In_CHANGE_CIPHER_SPEC = 21
-    delta 29 In_FINISHED = 23
-    delta 29 In_APPLICATION = 29
-    delta 29 In_CERTIFICATE = 23
-    delta 29 In_EMPTY_CERTIFICATE = 23
-    delta 29 In_CERTIFICATE_VERIFY = 23
-    delta 29 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 29 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 28 In_ECDH_CLIENT_HELLO = 25
-    delta 28 In_ECDH_CLIENT_KEY_EXCHANGE = 23
-    delta 28 In_CHANGE_CIPHER_SPEC = 2
-    delta 28 In_FINISHED = 23
-    delta 28 In_APPLICATION = 28
-    delta 28 In_CERTIFICATE = 23
-    delta 28 In_EMPTY_CERTIFICATE = 23
-    delta 28 In_CERTIFICATE_VERIFY = 23
-    delta 28 In_Alert_WARNING_CLOSE_NOTIFY = 1
-    delta 28 In_Alert_FATAL_UNEXPECTED_MESSAGE = 1
-    delta 17 In_ECDH_CLIENT_HELLO = 2
-    delta 17 In_ECDH_CLIENT_KEY_EXCHANGE = 2
-    delta 17 In_CHANGE_CIPHER_SPEC = 2
-    delta 17 In_FINISHED = 18
-    delta 17 In_APPLICATION = 17
-    delta 17 In_CERTIFICATE = 2
-    delta 17 In_EMPTY_CERTIFICATE = 2
-    delta 17 In_CERTIFICATE_VERIFY = 2
-    delta 17 In_Alert_WARNING_CLOSE_NOTIFY = 2
-    delta 17 In_Alert_FATAL_UNEXPECTED_MESSAGE = 2
-    delta _ _ = error "haal-gen: undefined transition"
-    lambda 0 In_ECDH_CLIENT_HELLO = Out_HELLO_VERIFY_REQUEST
-    lambda 0 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 0 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 0 In_FINISHED = Out_TIMEOUT
-    lambda 0 In_APPLICATION = Out_TIMEOUT
-    lambda 0 In_CERTIFICATE = Out_TIMEOUT
-    lambda 0 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 0 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 0 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 0 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 2 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 2 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 2 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 2 In_FINISHED = Out_TIMEOUT
-    lambda 2 In_APPLICATION = Out_TIMEOUT
-    lambda 2 In_CERTIFICATE = Out_TIMEOUT
-    lambda 2 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 2 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 2 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 2 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 1 In_ECDH_CLIENT_HELLO = Out_SERVER_HELLO_CERTIFICATE_ECDHE_SERVER_KEY_EXCHANGE_SERVER_HELLO_DONE
-    lambda 1 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 1 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 1 In_FINISHED = Out_TIMEOUT
-    lambda 1 In_APPLICATION = Out_TIMEOUT
-    lambda 1 In_CERTIFICATE = Out_TIMEOUT
-    lambda 1 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 1 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 1 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 1 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 4 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 4 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 4 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 4 In_FINISHED = Out_TIMEOUT
-    lambda 4 In_APPLICATION = Out_TIMEOUT
-    lambda 4 In_CERTIFICATE = Out_TIMEOUT
-    lambda 4 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 4 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 4 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 4 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 5 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 5 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 5 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 5 In_FINISHED = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 5 In_APPLICATION = Out_TIMEOUT
-    lambda 5 In_CERTIFICATE = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 5 In_EMPTY_CERTIFICATE = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 5 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 5 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 5 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 3 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 3 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 3 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 3 In_FINISHED = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 3 In_APPLICATION = Out_TIMEOUT
-    lambda 3 In_CERTIFICATE = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 3 In_EMPTY_CERTIFICATE = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 3 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 3 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 3 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 11 In_ECDH_CLIENT_HELLO = Out_SERVER_HELLO_DONE
-    lambda 11 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 11 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 11 In_FINISHED = Out_TIMEOUT
-    lambda 11 In_APPLICATION = Out_TIMEOUT
-    lambda 11 In_CERTIFICATE = Out_TIMEOUT
-    lambda 11 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 11 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 11 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 11 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 10 In_ECDH_CLIENT_HELLO = Out_ECDHE_SERVER_KEY_EXCHANGE_SERVER_HELLO_DONE
-    lambda 10 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 10 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 10 In_FINISHED = Out_TIMEOUT
-    lambda 10 In_APPLICATION = Out_TIMEOUT
-    lambda 10 In_CERTIFICATE = Out_TIMEOUT
-    lambda 10 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 10 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 10 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 10 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 13 In_ECDH_CLIENT_HELLO = Out_CERTIFICATE_ECDHE_SERVER_KEY_EXCHANGE_SERVER_HELLO_DONE
-    lambda 13 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 13 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 13 In_FINISHED = Out_TIMEOUT
-    lambda 13 In_APPLICATION = Out_TIMEOUT
-    lambda 13 In_CERTIFICATE = Out_TIMEOUT
-    lambda 13 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 13 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 13 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 13 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 9 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 9 In_ECDH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 9 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 9 In_FINISHED = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 9 In_APPLICATION = Out_TIMEOUT
-    lambda 9 In_CERTIFICATE = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 9 In_EMPTY_CERTIFICATE = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 9 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 9 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 9 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 15 In_ECDH_CLIENT_HELLO = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 15 In_ECDH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 15 In_CHANGE_CIPHER_SPEC = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 15 In_FINISHED = Out_CHANGE_CIPHER_SPEC_FINISHED
-    lambda 15 In_APPLICATION = Out_TIMEOUT
-    lambda 15 In_CERTIFICATE = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 15 In_EMPTY_CERTIFICATE = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 15 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 15 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 15 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 16 In_ECDH_CLIENT_HELLO = Out_Alert_WARNING_NO_RENEGOTIATION
-    lambda 16 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 16 In_CHANGE_CIPHER_SPEC = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 16 In_FINISHED = Out_TIMEOUT
-    lambda 16 In_APPLICATION = Out_APPLICATION
-    lambda 16 In_CERTIFICATE = Out_TIMEOUT
-    lambda 16 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 16 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 16 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 16 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 14 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 14 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 14 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 14 In_FINISHED = Out_TIMEOUT
-    lambda 14 In_APPLICATION = Out_TIMEOUT
-    lambda 14 In_CERTIFICATE = Out_TIMEOUT
-    lambda 14 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 14 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 14 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 14 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 21 In_ECDH_CLIENT_HELLO = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 21 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 21 In_CHANGE_CIPHER_SPEC = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 21 In_FINISHED = Out_TIMEOUT
-    lambda 21 In_APPLICATION = Out_TIMEOUT
-    lambda 21 In_CERTIFICATE = Out_TIMEOUT
-    lambda 21 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 21 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 21 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 21 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 8 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 8 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 8 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 8 In_FINISHED = Out_TIMEOUT
-    lambda 8 In_APPLICATION = Out_TIMEOUT
-    lambda 8 In_CERTIFICATE = Out_TIMEOUT
-    lambda 8 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 8 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 8 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 8 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 20 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 20 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 20 In_CHANGE_CIPHER_SPEC = Out_Alert_FATAL_HANDSHAKE_FAILURE
-    lambda 20 In_FINISHED = Out_TIMEOUT
-    lambda 20 In_APPLICATION = Out_TIMEOUT
-    lambda 20 In_CERTIFICATE = Out_TIMEOUT
-    lambda 20 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 20 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 20 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 20 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 18 In_ECDH_CLIENT_HELLO = Out_Alert_WARNING_NO_RENEGOTIATION
-    lambda 18 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 18 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 18 In_FINISHED = Out_TIMEOUT
-    lambda 18 In_APPLICATION = Out_APPLICATION
-    lambda 18 In_CERTIFICATE = Out_TIMEOUT
-    lambda 18 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 18 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 18 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 18 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 23 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 23 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 23 In_CHANGE_CIPHER_SPEC = Out_Alert_FATAL_HANDSHAKE_FAILURE
-    lambda 23 In_FINISHED = Out_TIMEOUT
-    lambda 23 In_APPLICATION = Out_TIMEOUT
-    lambda 23 In_CERTIFICATE = Out_TIMEOUT
-    lambda 23 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 23 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 23 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 23 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 22 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 22 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 22 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 22 In_FINISHED = Out_TIMEOUT
-    lambda 22 In_APPLICATION = Out_TIMEOUT
-    lambda 22 In_CERTIFICATE = Out_TIMEOUT
-    lambda 22 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 22 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 22 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 22 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 6 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 6 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 6 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 6 In_FINISHED = Out_TIMEOUT
-    lambda 6 In_APPLICATION = Out_TIMEOUT
-    lambda 6 In_CERTIFICATE = Out_TIMEOUT
-    lambda 6 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 6 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 6 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 6 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 24 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 24 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 24 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 24 In_FINISHED = Out_TIMEOUT
-    lambda 24 In_APPLICATION = Out_TIMEOUT
-    lambda 24 In_CERTIFICATE = Out_TIMEOUT
-    lambda 24 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 24 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 24 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 24 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 7 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 7 In_ECDH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 7 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 7 In_FINISHED = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 7 In_APPLICATION = Out_TIMEOUT
-    lambda 7 In_CERTIFICATE = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 7 In_EMPTY_CERTIFICATE = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 7 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 7 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 7 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 12 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 12 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 12 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 12 In_FINISHED = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 12 In_APPLICATION = Out_TIMEOUT
-    lambda 12 In_CERTIFICATE = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 12 In_EMPTY_CERTIFICATE = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 12 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 12 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 12 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 26 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 26 In_ECDH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 26 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 26 In_FINISHED = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 26 In_APPLICATION = Out_TIMEOUT
-    lambda 26 In_CERTIFICATE = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 26 In_EMPTY_CERTIFICATE = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 26 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 26 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 26 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 25 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 25 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 25 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 25 In_FINISHED = Out_TIMEOUT
-    lambda 25 In_APPLICATION = Out_TIMEOUT
-    lambda 25 In_CERTIFICATE = Out_TIMEOUT
-    lambda 25 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 25 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 25 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 25 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 27 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 27 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 27 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 27 In_FINISHED = Out_TIMEOUT
-    lambda 27 In_APPLICATION = Out_TIMEOUT
-    lambda 27 In_CERTIFICATE = Out_TIMEOUT
-    lambda 27 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 27 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 27 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 27 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 19 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 19 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 19 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 19 In_FINISHED = Out_TIMEOUT
-    lambda 19 In_APPLICATION = Out_TIMEOUT
-    lambda 19 In_CERTIFICATE = Out_TIMEOUT
-    lambda 19 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 19 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 19 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 19 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 29 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 29 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 29 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 29 In_FINISHED = Out_TIMEOUT
-    lambda 29 In_APPLICATION = Out_TIMEOUT
-    lambda 29 In_CERTIFICATE = Out_TIMEOUT
-    lambda 29 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 29 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 29 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 29 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 28 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 28 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 28 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 28 In_FINISHED = Out_TIMEOUT
-    lambda 28 In_APPLICATION = Out_TIMEOUT
-    lambda 28 In_CERTIFICATE = Out_TIMEOUT
-    lambda 28 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 28 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 28 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 28 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 17 In_ECDH_CLIENT_HELLO = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 17 In_ECDH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 17 In_CHANGE_CIPHER_SPEC = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 17 In_FINISHED = Out_CHANGE_CIPHER_SPEC_FINISHED_APPLICATION
-    lambda 17 In_APPLICATION = Out_TIMEOUT
-    lambda 17 In_CERTIFICATE = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 17 In_EMPTY_CERTIFICATE = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 17 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 17 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 17 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda _ _ = error "haal-gen: undefined transition"
+    deltaTable =
+        "\1\2\2\2\0\2\2\2\0\0\
+        \\3\4\2\4\1\4\4\4\1\1\
+        \\2\2\2\2\2\2\2\2\2\2\
+        \\8\9\2\10\3\10\10\10\11\11\
+        \\5\4\2\4\4\4\4\4\4\4\
+        \\6\7\2\4\5\4\4\4\4\4\
+        \\6\6\2\6\6\6\6\6\4\4\
+        \\25\4\2\4\7\4\4\4\4\4\
+        \\22\22\2\22\8\22\22\22\10\10\
+        \\14\13\15\13\9\13\13\13\10\10\
+        \\12\13\2\13\10\13\13\13\10\10\
+        \\12\10\2\10\11\10\10\10\11\11\
+        \\8\26\2\10\12\10\10\10\11\11\
+        \\12\1\2\1\13\1\1\1\13\13\
+        \\19\20\21\20\14\20\20\20\13\13\
+        \\2\2\2\16\17\2\2\2\2\2\
+        \\16\16\2\16\18\16\16\16\2\2\
+        \\2\2\2\18\17\2\2\2\2\2\
+        \\18\18\2\18\18\18\18\18\2\2\
+        \\29\23\21\23\19\23\23\23\1\1\
+        \\23\23\2\23\20\23\23\23\1\1\
+        \\2\21\2\21\21\21\21\21\2\2\
+        \\24\24\2\24\22\24\24\24\13\13\
+        \\23\23\2\23\23\23\23\23\4\4\
+        \\6\6\2\6\24\6\6\6\1\1\
+        \\25\23\2\23\25\23\23\23\4\4\
+        \\27\13\2\13\26\13\13\13\10\10\
+        \\28\20\2\20\27\20\20\20\13\13\
+        \\25\23\2\23\28\23\23\23\1\1\
+        \\29\23\21\23\29\23\23\23\4\4"
+    lambdaTable =
+        "\0\1\1\1\1\1\1\1\1\1\
+        \\2\1\1\1\1\1\1\1\1\1\
+        \\1\1\1\1\1\1\1\1\1\1\
+        \\1\1\1\3\1\3\3\3\4\1\
+        \\1\1\1\1\1\1\1\1\1\1\
+        \\1\1\1\3\1\3\3\3\4\1\
+        \\1\1\1\1\1\1\1\1\4\1\
+        \\1\3\1\3\1\3\3\3\4\1\
+        \\1\1\1\1\1\1\1\1\4\1\
+        \\1\3\1\3\1\3\3\3\4\1\
+        \\6\1\1\1\1\1\1\1\1\1\
+        \\5\1\1\1\1\1\1\1\1\1\
+        \\1\1\1\3\1\3\3\3\4\1\
+        \\7\1\1\1\1\1\1\1\1\1\
+        \\1\1\1\1\1\1\1\1\4\1\
+        \\3\3\3\8\1\3\3\3\4\1\
+        \\9\1\3\1\10\1\1\1\4\1\
+        \\3\3\3\12\1\3\3\3\4\1\
+        \\9\1\1\1\10\1\1\1\4\1\
+        \\1\1\1\1\1\1\1\1\4\1\
+        \\1\1\11\1\1\1\1\1\4\1\
+        \\3\1\3\1\1\1\1\1\4\1\
+        \\1\1\1\1\1\1\1\1\4\1\
+        \\1\1\11\1\1\1\1\1\4\1\
+        \\1\1\1\1\1\1\1\1\4\1\
+        \\1\1\1\1\1\1\1\1\4\1\
+        \\1\3\1\3\1\3\3\3\4\1\
+        \\1\1\1\1\1\1\1\1\4\1\
+        \\1\1\1\1\1\1\1\1\4\1\
+        \\1\1\1\1\1\1\1\1\4\1"
diff --git a/src/Haal/Models/DTLS/ScandiumV2V0V0EcdheCertNreq.hs b/src/Haal/Models/DTLS/ScandiumV2V0V0EcdheCertNreq.hs
--- a/src/Haal/Models/DTLS/ScandiumV2V0V0EcdheCertNreq.hs
+++ b/src/Haal/Models/DTLS/ScandiumV2V0V0EcdheCertNreq.hs
@@ -5,941 +5,585 @@
     , scandiumV2V0V0EcdheCertNreq
     ) where
 
-import qualified Data.Set as Set
-import Haal.Automaton.MealyAutomaton (MealyAutomaton, mkMealyAutomaton)
-
-data ScandiumV2V0V0EcdheCertNreqInput
-    = In_ECDH_CLIENT_HELLO
-    | In_ECDH_CLIENT_KEY_EXCHANGE
-    | In_CHANGE_CIPHER_SPEC
-    | In_FINISHED
-    | In_APPLICATION
-    | In_CERTIFICATE
-    | In_EMPTY_CERTIFICATE
-    | In_CERTIFICATE_VERIFY
-    | In_Alert_WARNING_CLOSE_NOTIFY
-    | In_Alert_FATAL_UNEXPECTED_MESSAGE
-    deriving (Show, Eq, Ord, Enum, Bounded)
-
-data ScandiumV2V0V0EcdheCertNreqOutput
-    = Out_HELLO_VERIFY_REQUEST
-    | Out_TIMEOUT
-    | Out_SERVER_HELLO_CERTIFICATE_ECDHE_SERVER_KEY_EXCHANGE_CERTIFICATE_REQUEST_SERVER_HELLO_DONE
-    | Out_Alert_FATAL_INTERNAL_ERROR
-    | Out_Alert_WARNING_CLOSE_NOTIFY
-    | Out_SERVER_HELLO_DONE
-    | Out_CERTIFICATE_REQUEST_SERVER_HELLO_DONE
-    | Out_ECDHE_SERVER_KEY_EXCHANGE_CERTIFICATE_REQUEST_SERVER_HELLO_DONE
-    | Out_CERTIFICATE_ECDHE_SERVER_KEY_EXCHANGE_CERTIFICATE_REQUEST_SERVER_HELLO_DONE
-    | Out_CHANGE_CIPHER_SPEC_FINISHED
-    | Out_Alert_WARNING_NO_RENEGOTIATION
-    | Out_APPLICATION
-    | Out_Alert_FATAL_HANDSHAKE_FAILURE
-    | Out_CHANGE_CIPHER_SPEC_FINISHED_APPLICATION
-    deriving (Show, Eq, Ord, Enum, Bounded)
-
-scandiumV2V0V0EcdheCertNreq :: MealyAutomaton Int ScandiumV2V0V0EcdheCertNreqInput ScandiumV2V0V0EcdheCertNreqOutput
-scandiumV2V0V0EcdheCertNreq = mkMealyAutomaton delta lambda (Set.fromList [0..44]) 0
-  where
-    delta 0 In_ECDH_CLIENT_HELLO = 1
-    delta 0 In_ECDH_CLIENT_KEY_EXCHANGE = 2
-    delta 0 In_CHANGE_CIPHER_SPEC = 2
-    delta 0 In_FINISHED = 2
-    delta 0 In_APPLICATION = 0
-    delta 0 In_CERTIFICATE = 2
-    delta 0 In_EMPTY_CERTIFICATE = 2
-    delta 0 In_CERTIFICATE_VERIFY = 2
-    delta 0 In_Alert_WARNING_CLOSE_NOTIFY = 0
-    delta 0 In_Alert_FATAL_UNEXPECTED_MESSAGE = 0
-    delta 2 In_ECDH_CLIENT_HELLO = 2
-    delta 2 In_ECDH_CLIENT_KEY_EXCHANGE = 2
-    delta 2 In_CHANGE_CIPHER_SPEC = 2
-    delta 2 In_FINISHED = 2
-    delta 2 In_APPLICATION = 2
-    delta 2 In_CERTIFICATE = 2
-    delta 2 In_EMPTY_CERTIFICATE = 2
-    delta 2 In_CERTIFICATE_VERIFY = 2
-    delta 2 In_Alert_WARNING_CLOSE_NOTIFY = 2
-    delta 2 In_Alert_FATAL_UNEXPECTED_MESSAGE = 2
-    delta 1 In_ECDH_CLIENT_HELLO = 3
-    delta 1 In_ECDH_CLIENT_KEY_EXCHANGE = 4
-    delta 1 In_CHANGE_CIPHER_SPEC = 2
-    delta 1 In_FINISHED = 4
-    delta 1 In_APPLICATION = 1
-    delta 1 In_CERTIFICATE = 4
-    delta 1 In_EMPTY_CERTIFICATE = 4
-    delta 1 In_CERTIFICATE_VERIFY = 4
-    delta 1 In_Alert_WARNING_CLOSE_NOTIFY = 1
-    delta 1 In_Alert_FATAL_UNEXPECTED_MESSAGE = 1
-    delta 4 In_ECDH_CLIENT_HELLO = 5
-    delta 4 In_ECDH_CLIENT_KEY_EXCHANGE = 4
-    delta 4 In_CHANGE_CIPHER_SPEC = 2
-    delta 4 In_FINISHED = 4
-    delta 4 In_APPLICATION = 4
-    delta 4 In_CERTIFICATE = 4
-    delta 4 In_EMPTY_CERTIFICATE = 4
-    delta 4 In_CERTIFICATE_VERIFY = 4
-    delta 4 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 4 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 5 In_ECDH_CLIENT_HELLO = 6
-    delta 5 In_ECDH_CLIENT_KEY_EXCHANGE = 4
-    delta 5 In_CHANGE_CIPHER_SPEC = 2
-    delta 5 In_FINISHED = 4
-    delta 5 In_APPLICATION = 5
-    delta 5 In_CERTIFICATE = 7
-    delta 5 In_EMPTY_CERTIFICATE = 8
-    delta 5 In_CERTIFICATE_VERIFY = 4
-    delta 5 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 5 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 3 In_ECDH_CLIENT_HELLO = 9
-    delta 3 In_ECDH_CLIENT_KEY_EXCHANGE = 10
-    delta 3 In_CHANGE_CIPHER_SPEC = 2
-    delta 3 In_FINISHED = 10
-    delta 3 In_APPLICATION = 3
-    delta 3 In_CERTIFICATE = 11
-    delta 3 In_EMPTY_CERTIFICATE = 12
-    delta 3 In_CERTIFICATE_VERIFY = 10
-    delta 3 In_Alert_WARNING_CLOSE_NOTIFY = 13
-    delta 3 In_Alert_FATAL_UNEXPECTED_MESSAGE = 13
-    delta 13 In_ECDH_CLIENT_HELLO = 14
-    delta 13 In_ECDH_CLIENT_KEY_EXCHANGE = 10
-    delta 13 In_CHANGE_CIPHER_SPEC = 2
-    delta 13 In_FINISHED = 10
-    delta 13 In_APPLICATION = 13
-    delta 13 In_CERTIFICATE = 10
-    delta 13 In_EMPTY_CERTIFICATE = 10
-    delta 13 In_CERTIFICATE_VERIFY = 10
-    delta 13 In_Alert_WARNING_CLOSE_NOTIFY = 13
-    delta 13 In_Alert_FATAL_UNEXPECTED_MESSAGE = 13
-    delta 10 In_ECDH_CLIENT_HELLO = 14
-    delta 10 In_ECDH_CLIENT_KEY_EXCHANGE = 15
-    delta 10 In_CHANGE_CIPHER_SPEC = 2
-    delta 10 In_FINISHED = 15
-    delta 10 In_APPLICATION = 10
-    delta 10 In_CERTIFICATE = 15
-    delta 10 In_EMPTY_CERTIFICATE = 15
-    delta 10 In_CERTIFICATE_VERIFY = 15
-    delta 10 In_Alert_WARNING_CLOSE_NOTIFY = 10
-    delta 10 In_Alert_FATAL_UNEXPECTED_MESSAGE = 10
-    delta 15 In_ECDH_CLIENT_HELLO = 14
-    delta 15 In_ECDH_CLIENT_KEY_EXCHANGE = 16
-    delta 15 In_CHANGE_CIPHER_SPEC = 2
-    delta 15 In_FINISHED = 16
-    delta 15 In_APPLICATION = 15
-    delta 15 In_CERTIFICATE = 16
-    delta 15 In_EMPTY_CERTIFICATE = 16
-    delta 15 In_CERTIFICATE_VERIFY = 16
-    delta 15 In_Alert_WARNING_CLOSE_NOTIFY = 15
-    delta 15 In_Alert_FATAL_UNEXPECTED_MESSAGE = 15
-    delta 16 In_ECDH_CLIENT_HELLO = 14
-    delta 16 In_ECDH_CLIENT_KEY_EXCHANGE = 1
-    delta 16 In_CHANGE_CIPHER_SPEC = 2
-    delta 16 In_FINISHED = 1
-    delta 16 In_APPLICATION = 16
-    delta 16 In_CERTIFICATE = 1
-    delta 16 In_EMPTY_CERTIFICATE = 1
-    delta 16 In_CERTIFICATE_VERIFY = 1
-    delta 16 In_Alert_WARNING_CLOSE_NOTIFY = 16
-    delta 16 In_Alert_FATAL_UNEXPECTED_MESSAGE = 16
-    delta 7 In_ECDH_CLIENT_HELLO = 6
-    delta 7 In_ECDH_CLIENT_KEY_EXCHANGE = 17
-    delta 7 In_CHANGE_CIPHER_SPEC = 2
-    delta 7 In_FINISHED = 4
-    delta 7 In_APPLICATION = 7
-    delta 7 In_CERTIFICATE = 4
-    delta 7 In_EMPTY_CERTIFICATE = 4
-    delta 7 In_CERTIFICATE_VERIFY = 4
-    delta 7 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 7 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 6 In_ECDH_CLIENT_HELLO = 6
-    delta 6 In_ECDH_CLIENT_KEY_EXCHANGE = 6
-    delta 6 In_CHANGE_CIPHER_SPEC = 2
-    delta 6 In_FINISHED = 6
-    delta 6 In_APPLICATION = 6
-    delta 6 In_CERTIFICATE = 6
-    delta 6 In_EMPTY_CERTIFICATE = 6
-    delta 6 In_CERTIFICATE_VERIFY = 6
-    delta 6 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 6 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 9 In_ECDH_CLIENT_HELLO = 18
-    delta 9 In_ECDH_CLIENT_KEY_EXCHANGE = 18
-    delta 9 In_CHANGE_CIPHER_SPEC = 2
-    delta 9 In_FINISHED = 18
-    delta 9 In_APPLICATION = 9
-    delta 9 In_CERTIFICATE = 18
-    delta 9 In_EMPTY_CERTIFICATE = 18
-    delta 9 In_CERTIFICATE_VERIFY = 18
-    delta 9 In_Alert_WARNING_CLOSE_NOTIFY = 10
-    delta 9 In_Alert_FATAL_UNEXPECTED_MESSAGE = 10
-    delta 18 In_ECDH_CLIENT_HELLO = 19
-    delta 18 In_ECDH_CLIENT_KEY_EXCHANGE = 19
-    delta 18 In_CHANGE_CIPHER_SPEC = 2
-    delta 18 In_FINISHED = 19
-    delta 18 In_APPLICATION = 18
-    delta 18 In_CERTIFICATE = 19
-    delta 18 In_EMPTY_CERTIFICATE = 19
-    delta 18 In_CERTIFICATE_VERIFY = 19
-    delta 18 In_Alert_WARNING_CLOSE_NOTIFY = 15
-    delta 18 In_Alert_FATAL_UNEXPECTED_MESSAGE = 15
-    delta 19 In_ECDH_CLIENT_HELLO = 20
-    delta 19 In_ECDH_CLIENT_KEY_EXCHANGE = 20
-    delta 19 In_CHANGE_CIPHER_SPEC = 2
-    delta 19 In_FINISHED = 20
-    delta 19 In_APPLICATION = 19
-    delta 19 In_CERTIFICATE = 20
-    delta 19 In_EMPTY_CERTIFICATE = 20
-    delta 19 In_CERTIFICATE_VERIFY = 20
-    delta 19 In_Alert_WARNING_CLOSE_NOTIFY = 16
-    delta 19 In_Alert_FATAL_UNEXPECTED_MESSAGE = 16
-    delta 20 In_ECDH_CLIENT_HELLO = 6
-    delta 20 In_ECDH_CLIENT_KEY_EXCHANGE = 6
-    delta 20 In_CHANGE_CIPHER_SPEC = 2
-    delta 20 In_FINISHED = 6
-    delta 20 In_APPLICATION = 20
-    delta 20 In_CERTIFICATE = 6
-    delta 20 In_EMPTY_CERTIFICATE = 6
-    delta 20 In_CERTIFICATE_VERIFY = 6
-    delta 20 In_Alert_WARNING_CLOSE_NOTIFY = 1
-    delta 20 In_Alert_FATAL_UNEXPECTED_MESSAGE = 1
-    delta 11 In_ECDH_CLIENT_HELLO = 18
-    delta 11 In_ECDH_CLIENT_KEY_EXCHANGE = 21
-    delta 11 In_CHANGE_CIPHER_SPEC = 2
-    delta 11 In_FINISHED = 15
-    delta 11 In_APPLICATION = 11
-    delta 11 In_CERTIFICATE = 15
-    delta 11 In_EMPTY_CERTIFICATE = 15
-    delta 11 In_CERTIFICATE_VERIFY = 15
-    delta 11 In_Alert_WARNING_CLOSE_NOTIFY = 10
-    delta 11 In_Alert_FATAL_UNEXPECTED_MESSAGE = 10
-    delta 21 In_ECDH_CLIENT_HELLO = 22
-    delta 21 In_ECDH_CLIENT_KEY_EXCHANGE = 16
-    delta 21 In_CHANGE_CIPHER_SPEC = 2
-    delta 21 In_FINISHED = 16
-    delta 21 In_APPLICATION = 21
-    delta 21 In_CERTIFICATE = 16
-    delta 21 In_EMPTY_CERTIFICATE = 16
-    delta 21 In_CERTIFICATE_VERIFY = 23
-    delta 21 In_Alert_WARNING_CLOSE_NOTIFY = 15
-    delta 21 In_Alert_FATAL_UNEXPECTED_MESSAGE = 15
-    delta 23 In_ECDH_CLIENT_HELLO = 24
-    delta 23 In_ECDH_CLIENT_KEY_EXCHANGE = 1
-    delta 23 In_CHANGE_CIPHER_SPEC = 25
-    delta 23 In_FINISHED = 1
-    delta 23 In_APPLICATION = 23
-    delta 23 In_CERTIFICATE = 1
-    delta 23 In_EMPTY_CERTIFICATE = 1
-    delta 23 In_CERTIFICATE_VERIFY = 1
-    delta 23 In_Alert_WARNING_CLOSE_NOTIFY = 16
-    delta 23 In_Alert_FATAL_UNEXPECTED_MESSAGE = 16
-    delta 25 In_ECDH_CLIENT_HELLO = 2
-    delta 25 In_ECDH_CLIENT_KEY_EXCHANGE = 2
-    delta 25 In_CHANGE_CIPHER_SPEC = 2
-    delta 25 In_FINISHED = 26
-    delta 25 In_APPLICATION = 27
-    delta 25 In_CERTIFICATE = 2
-    delta 25 In_EMPTY_CERTIFICATE = 2
-    delta 25 In_CERTIFICATE_VERIFY = 2
-    delta 25 In_Alert_WARNING_CLOSE_NOTIFY = 2
-    delta 25 In_Alert_FATAL_UNEXPECTED_MESSAGE = 2
-    delta 26 In_ECDH_CLIENT_HELLO = 26
-    delta 26 In_ECDH_CLIENT_KEY_EXCHANGE = 26
-    delta 26 In_CHANGE_CIPHER_SPEC = 2
-    delta 26 In_FINISHED = 26
-    delta 26 In_APPLICATION = 28
-    delta 26 In_CERTIFICATE = 26
-    delta 26 In_EMPTY_CERTIFICATE = 26
-    delta 26 In_CERTIFICATE_VERIFY = 26
-    delta 26 In_Alert_WARNING_CLOSE_NOTIFY = 2
-    delta 26 In_Alert_FATAL_UNEXPECTED_MESSAGE = 2
-    delta 12 In_ECDH_CLIENT_HELLO = 18
-    delta 12 In_ECDH_CLIENT_KEY_EXCHANGE = 29
-    delta 12 In_CHANGE_CIPHER_SPEC = 2
-    delta 12 In_FINISHED = 15
-    delta 12 In_APPLICATION = 12
-    delta 12 In_CERTIFICATE = 15
-    delta 12 In_EMPTY_CERTIFICATE = 15
-    delta 12 In_CERTIFICATE_VERIFY = 15
-    delta 12 In_Alert_WARNING_CLOSE_NOTIFY = 10
-    delta 12 In_Alert_FATAL_UNEXPECTED_MESSAGE = 10
-    delta 29 In_ECDH_CLIENT_HELLO = 30
-    delta 29 In_ECDH_CLIENT_KEY_EXCHANGE = 16
-    delta 29 In_CHANGE_CIPHER_SPEC = 25
-    delta 29 In_FINISHED = 16
-    delta 29 In_APPLICATION = 29
-    delta 29 In_CERTIFICATE = 16
-    delta 29 In_EMPTY_CERTIFICATE = 16
-    delta 29 In_CERTIFICATE_VERIFY = 16
-    delta 29 In_Alert_WARNING_CLOSE_NOTIFY = 15
-    delta 29 In_Alert_FATAL_UNEXPECTED_MESSAGE = 15
-    delta 17 In_ECDH_CLIENT_HELLO = 31
-    delta 17 In_ECDH_CLIENT_KEY_EXCHANGE = 4
-    delta 17 In_CHANGE_CIPHER_SPEC = 2
-    delta 17 In_FINISHED = 4
-    delta 17 In_APPLICATION = 17
-    delta 17 In_CERTIFICATE = 4
-    delta 17 In_EMPTY_CERTIFICATE = 4
-    delta 17 In_CERTIFICATE_VERIFY = 4
-    delta 17 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 17 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 28 In_ECDH_CLIENT_HELLO = 28
-    delta 28 In_ECDH_CLIENT_KEY_EXCHANGE = 28
-    delta 28 In_CHANGE_CIPHER_SPEC = 2
-    delta 28 In_FINISHED = 28
-    delta 28 In_APPLICATION = 28
-    delta 28 In_CERTIFICATE = 28
-    delta 28 In_EMPTY_CERTIFICATE = 28
-    delta 28 In_CERTIFICATE_VERIFY = 28
-    delta 28 In_Alert_WARNING_CLOSE_NOTIFY = 2
-    delta 28 In_Alert_FATAL_UNEXPECTED_MESSAGE = 2
-    delta 24 In_ECDH_CLIENT_HELLO = 32
-    delta 24 In_ECDH_CLIENT_KEY_EXCHANGE = 33
-    delta 24 In_CHANGE_CIPHER_SPEC = 34
-    delta 24 In_FINISHED = 33
-    delta 24 In_APPLICATION = 24
-    delta 24 In_CERTIFICATE = 33
-    delta 24 In_EMPTY_CERTIFICATE = 33
-    delta 24 In_CERTIFICATE_VERIFY = 33
-    delta 24 In_Alert_WARNING_CLOSE_NOTIFY = 1
-    delta 24 In_Alert_FATAL_UNEXPECTED_MESSAGE = 1
-    delta 34 In_ECDH_CLIENT_HELLO = 2
-    delta 34 In_ECDH_CLIENT_KEY_EXCHANGE = 34
-    delta 34 In_CHANGE_CIPHER_SPEC = 2
-    delta 34 In_FINISHED = 34
-    delta 34 In_APPLICATION = 34
-    delta 34 In_CERTIFICATE = 34
-    delta 34 In_EMPTY_CERTIFICATE = 34
-    delta 34 In_CERTIFICATE_VERIFY = 34
-    delta 34 In_Alert_WARNING_CLOSE_NOTIFY = 2
-    delta 34 In_Alert_FATAL_UNEXPECTED_MESSAGE = 2
-    delta 8 In_ECDH_CLIENT_HELLO = 6
-    delta 8 In_ECDH_CLIENT_KEY_EXCHANGE = 35
-    delta 8 In_CHANGE_CIPHER_SPEC = 2
-    delta 8 In_FINISHED = 4
-    delta 8 In_APPLICATION = 8
-    delta 8 In_CERTIFICATE = 4
-    delta 8 In_EMPTY_CERTIFICATE = 4
-    delta 8 In_CERTIFICATE_VERIFY = 4
-    delta 8 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 8 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 22 In_ECDH_CLIENT_HELLO = 36
-    delta 22 In_ECDH_CLIENT_KEY_EXCHANGE = 36
-    delta 22 In_CHANGE_CIPHER_SPEC = 2
-    delta 22 In_FINISHED = 36
-    delta 22 In_APPLICATION = 22
-    delta 22 In_CERTIFICATE = 36
-    delta 22 In_EMPTY_CERTIFICATE = 36
-    delta 22 In_CERTIFICATE_VERIFY = 36
-    delta 22 In_Alert_WARNING_CLOSE_NOTIFY = 16
-    delta 22 In_Alert_FATAL_UNEXPECTED_MESSAGE = 16
-    delta 36 In_ECDH_CLIENT_HELLO = 31
-    delta 36 In_ECDH_CLIENT_KEY_EXCHANGE = 31
-    delta 36 In_CHANGE_CIPHER_SPEC = 2
-    delta 36 In_FINISHED = 31
-    delta 36 In_APPLICATION = 36
-    delta 36 In_CERTIFICATE = 31
-    delta 36 In_EMPTY_CERTIFICATE = 31
-    delta 36 In_CERTIFICATE_VERIFY = 31
-    delta 36 In_Alert_WARNING_CLOSE_NOTIFY = 1
-    delta 36 In_Alert_FATAL_UNEXPECTED_MESSAGE = 1
-    delta 31 In_ECDH_CLIENT_HELLO = 31
-    delta 31 In_ECDH_CLIENT_KEY_EXCHANGE = 31
-    delta 31 In_CHANGE_CIPHER_SPEC = 2
-    delta 31 In_FINISHED = 31
-    delta 31 In_APPLICATION = 31
-    delta 31 In_CERTIFICATE = 31
-    delta 31 In_EMPTY_CERTIFICATE = 31
-    delta 31 In_CERTIFICATE_VERIFY = 31
-    delta 31 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 31 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 33 In_ECDH_CLIENT_HELLO = 33
-    delta 33 In_ECDH_CLIENT_KEY_EXCHANGE = 33
-    delta 33 In_CHANGE_CIPHER_SPEC = 2
-    delta 33 In_FINISHED = 33
-    delta 33 In_APPLICATION = 33
-    delta 33 In_CERTIFICATE = 33
-    delta 33 In_EMPTY_CERTIFICATE = 33
-    delta 33 In_CERTIFICATE_VERIFY = 33
-    delta 33 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 33 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 35 In_ECDH_CLIENT_HELLO = 37
-    delta 35 In_ECDH_CLIENT_KEY_EXCHANGE = 4
-    delta 35 In_CHANGE_CIPHER_SPEC = 2
-    delta 35 In_FINISHED = 4
-    delta 35 In_APPLICATION = 35
-    delta 35 In_CERTIFICATE = 4
-    delta 35 In_EMPTY_CERTIFICATE = 4
-    delta 35 In_CERTIFICATE_VERIFY = 4
-    delta 35 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 35 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 30 In_ECDH_CLIENT_HELLO = 24
-    delta 30 In_ECDH_CLIENT_KEY_EXCHANGE = 38
-    delta 30 In_CHANGE_CIPHER_SPEC = 34
-    delta 30 In_FINISHED = 38
-    delta 30 In_APPLICATION = 30
-    delta 30 In_CERTIFICATE = 38
-    delta 30 In_EMPTY_CERTIFICATE = 38
-    delta 30 In_CERTIFICATE_VERIFY = 38
-    delta 30 In_Alert_WARNING_CLOSE_NOTIFY = 16
-    delta 30 In_Alert_FATAL_UNEXPECTED_MESSAGE = 16
-    delta 38 In_ECDH_CLIENT_HELLO = 33
-    delta 38 In_ECDH_CLIENT_KEY_EXCHANGE = 33
-    delta 38 In_CHANGE_CIPHER_SPEC = 2
-    delta 38 In_FINISHED = 33
-    delta 38 In_APPLICATION = 38
-    delta 38 In_CERTIFICATE = 33
-    delta 38 In_EMPTY_CERTIFICATE = 33
-    delta 38 In_CERTIFICATE_VERIFY = 33
-    delta 38 In_Alert_WARNING_CLOSE_NOTIFY = 1
-    delta 38 In_Alert_FATAL_UNEXPECTED_MESSAGE = 1
-    delta 37 In_ECDH_CLIENT_HELLO = 37
-    delta 37 In_ECDH_CLIENT_KEY_EXCHANGE = 33
-    delta 37 In_CHANGE_CIPHER_SPEC = 2
-    delta 37 In_FINISHED = 33
-    delta 37 In_APPLICATION = 37
-    delta 37 In_CERTIFICATE = 33
-    delta 37 In_EMPTY_CERTIFICATE = 33
-    delta 37 In_CERTIFICATE_VERIFY = 33
-    delta 37 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 37 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 14 In_ECDH_CLIENT_HELLO = 9
-    delta 14 In_ECDH_CLIENT_KEY_EXCHANGE = 10
-    delta 14 In_CHANGE_CIPHER_SPEC = 2
-    delta 14 In_FINISHED = 10
-    delta 14 In_APPLICATION = 14
-    delta 14 In_CERTIFICATE = 39
-    delta 14 In_EMPTY_CERTIFICATE = 40
-    delta 14 In_CERTIFICATE_VERIFY = 10
-    delta 14 In_Alert_WARNING_CLOSE_NOTIFY = 13
-    delta 14 In_Alert_FATAL_UNEXPECTED_MESSAGE = 13
-    delta 40 In_ECDH_CLIENT_HELLO = 18
-    delta 40 In_ECDH_CLIENT_KEY_EXCHANGE = 41
-    delta 40 In_CHANGE_CIPHER_SPEC = 2
-    delta 40 In_FINISHED = 15
-    delta 40 In_APPLICATION = 40
-    delta 40 In_CERTIFICATE = 15
-    delta 40 In_EMPTY_CERTIFICATE = 15
-    delta 40 In_CERTIFICATE_VERIFY = 15
-    delta 40 In_Alert_WARNING_CLOSE_NOTIFY = 10
-    delta 40 In_Alert_FATAL_UNEXPECTED_MESSAGE = 10
-    delta 41 In_ECDH_CLIENT_HELLO = 42
-    delta 41 In_ECDH_CLIENT_KEY_EXCHANGE = 16
-    delta 41 In_CHANGE_CIPHER_SPEC = 2
-    delta 41 In_FINISHED = 16
-    delta 41 In_APPLICATION = 41
-    delta 41 In_CERTIFICATE = 16
-    delta 41 In_EMPTY_CERTIFICATE = 16
-    delta 41 In_CERTIFICATE_VERIFY = 16
-    delta 41 In_Alert_WARNING_CLOSE_NOTIFY = 15
-    delta 41 In_Alert_FATAL_UNEXPECTED_MESSAGE = 15
-    delta 42 In_ECDH_CLIENT_HELLO = 43
-    delta 42 In_ECDH_CLIENT_KEY_EXCHANGE = 38
-    delta 42 In_CHANGE_CIPHER_SPEC = 2
-    delta 42 In_FINISHED = 38
-    delta 42 In_APPLICATION = 42
-    delta 42 In_CERTIFICATE = 38
-    delta 42 In_EMPTY_CERTIFICATE = 38
-    delta 42 In_CERTIFICATE_VERIFY = 38
-    delta 42 In_Alert_WARNING_CLOSE_NOTIFY = 16
-    delta 42 In_Alert_FATAL_UNEXPECTED_MESSAGE = 16
-    delta 32 In_ECDH_CLIENT_HELLO = 32
-    delta 32 In_ECDH_CLIENT_KEY_EXCHANGE = 33
-    delta 32 In_CHANGE_CIPHER_SPEC = 34
-    delta 32 In_FINISHED = 33
-    delta 32 In_APPLICATION = 32
-    delta 32 In_CERTIFICATE = 33
-    delta 32 In_EMPTY_CERTIFICATE = 33
-    delta 32 In_CERTIFICATE_VERIFY = 33
-    delta 32 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 32 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 43 In_ECDH_CLIENT_HELLO = 37
-    delta 43 In_ECDH_CLIENT_KEY_EXCHANGE = 33
-    delta 43 In_CHANGE_CIPHER_SPEC = 2
-    delta 43 In_FINISHED = 33
-    delta 43 In_APPLICATION = 43
-    delta 43 In_CERTIFICATE = 33
-    delta 43 In_EMPTY_CERTIFICATE = 33
-    delta 43 In_CERTIFICATE_VERIFY = 33
-    delta 43 In_Alert_WARNING_CLOSE_NOTIFY = 1
-    delta 43 In_Alert_FATAL_UNEXPECTED_MESSAGE = 1
-    delta 27 In_ECDH_CLIENT_HELLO = 2
-    delta 27 In_ECDH_CLIENT_KEY_EXCHANGE = 2
-    delta 27 In_CHANGE_CIPHER_SPEC = 2
-    delta 27 In_FINISHED = 28
-    delta 27 In_APPLICATION = 27
-    delta 27 In_CERTIFICATE = 2
-    delta 27 In_EMPTY_CERTIFICATE = 2
-    delta 27 In_CERTIFICATE_VERIFY = 2
-    delta 27 In_Alert_WARNING_CLOSE_NOTIFY = 2
-    delta 27 In_Alert_FATAL_UNEXPECTED_MESSAGE = 2
-    delta 39 In_ECDH_CLIENT_HELLO = 18
-    delta 39 In_ECDH_CLIENT_KEY_EXCHANGE = 44
-    delta 39 In_CHANGE_CIPHER_SPEC = 2
-    delta 39 In_FINISHED = 15
-    delta 39 In_APPLICATION = 39
-    delta 39 In_CERTIFICATE = 15
-    delta 39 In_EMPTY_CERTIFICATE = 15
-    delta 39 In_CERTIFICATE_VERIFY = 15
-    delta 39 In_Alert_WARNING_CLOSE_NOTIFY = 10
-    delta 39 In_Alert_FATAL_UNEXPECTED_MESSAGE = 10
-    delta 44 In_ECDH_CLIENT_HELLO = 22
-    delta 44 In_ECDH_CLIENT_KEY_EXCHANGE = 16
-    delta 44 In_CHANGE_CIPHER_SPEC = 2
-    delta 44 In_FINISHED = 16
-    delta 44 In_APPLICATION = 44
-    delta 44 In_CERTIFICATE = 16
-    delta 44 In_EMPTY_CERTIFICATE = 16
-    delta 44 In_CERTIFICATE_VERIFY = 16
-    delta 44 In_Alert_WARNING_CLOSE_NOTIFY = 15
-    delta 44 In_Alert_FATAL_UNEXPECTED_MESSAGE = 15
-    delta _ _ = error "haal-gen: undefined transition"
-    lambda 0 In_ECDH_CLIENT_HELLO = Out_HELLO_VERIFY_REQUEST
-    lambda 0 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 0 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 0 In_FINISHED = Out_TIMEOUT
-    lambda 0 In_APPLICATION = Out_TIMEOUT
-    lambda 0 In_CERTIFICATE = Out_TIMEOUT
-    lambda 0 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 0 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 0 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 0 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 2 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 2 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 2 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 2 In_FINISHED = Out_TIMEOUT
-    lambda 2 In_APPLICATION = Out_TIMEOUT
-    lambda 2 In_CERTIFICATE = Out_TIMEOUT
-    lambda 2 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 2 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 2 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 2 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 1 In_ECDH_CLIENT_HELLO = Out_SERVER_HELLO_CERTIFICATE_ECDHE_SERVER_KEY_EXCHANGE_CERTIFICATE_REQUEST_SERVER_HELLO_DONE
-    lambda 1 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 1 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 1 In_FINISHED = Out_TIMEOUT
-    lambda 1 In_APPLICATION = Out_TIMEOUT
-    lambda 1 In_CERTIFICATE = Out_TIMEOUT
-    lambda 1 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 1 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 1 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 1 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 4 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 4 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 4 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 4 In_FINISHED = Out_TIMEOUT
-    lambda 4 In_APPLICATION = Out_TIMEOUT
-    lambda 4 In_CERTIFICATE = Out_TIMEOUT
-    lambda 4 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 4 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 4 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 4 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 5 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 5 In_ECDH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 5 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 5 In_FINISHED = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 5 In_APPLICATION = Out_TIMEOUT
-    lambda 5 In_CERTIFICATE = Out_TIMEOUT
-    lambda 5 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 5 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 5 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 5 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 3 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 3 In_ECDH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 3 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 3 In_FINISHED = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 3 In_APPLICATION = Out_TIMEOUT
-    lambda 3 In_CERTIFICATE = Out_TIMEOUT
-    lambda 3 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 3 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 3 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 3 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 13 In_ECDH_CLIENT_HELLO = Out_SERVER_HELLO_DONE
-    lambda 13 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 13 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 13 In_FINISHED = Out_TIMEOUT
-    lambda 13 In_APPLICATION = Out_TIMEOUT
-    lambda 13 In_CERTIFICATE = Out_TIMEOUT
-    lambda 13 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 13 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 13 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 13 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 10 In_ECDH_CLIENT_HELLO = Out_CERTIFICATE_REQUEST_SERVER_HELLO_DONE
-    lambda 10 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 10 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 10 In_FINISHED = Out_TIMEOUT
-    lambda 10 In_APPLICATION = Out_TIMEOUT
-    lambda 10 In_CERTIFICATE = Out_TIMEOUT
-    lambda 10 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 10 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 10 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 10 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 15 In_ECDH_CLIENT_HELLO = Out_ECDHE_SERVER_KEY_EXCHANGE_CERTIFICATE_REQUEST_SERVER_HELLO_DONE
-    lambda 15 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 15 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 15 In_FINISHED = Out_TIMEOUT
-    lambda 15 In_APPLICATION = Out_TIMEOUT
-    lambda 15 In_CERTIFICATE = Out_TIMEOUT
-    lambda 15 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 15 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 15 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 15 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 16 In_ECDH_CLIENT_HELLO = Out_CERTIFICATE_ECDHE_SERVER_KEY_EXCHANGE_CERTIFICATE_REQUEST_SERVER_HELLO_DONE
-    lambda 16 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 16 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 16 In_FINISHED = Out_TIMEOUT
-    lambda 16 In_APPLICATION = Out_TIMEOUT
-    lambda 16 In_CERTIFICATE = Out_TIMEOUT
-    lambda 16 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 16 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 16 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 16 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 7 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 7 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 7 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 7 In_FINISHED = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 7 In_APPLICATION = Out_TIMEOUT
-    lambda 7 In_CERTIFICATE = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 7 In_EMPTY_CERTIFICATE = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 7 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 7 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 7 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 6 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 6 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 6 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 6 In_FINISHED = Out_TIMEOUT
-    lambda 6 In_APPLICATION = Out_TIMEOUT
-    lambda 6 In_CERTIFICATE = Out_TIMEOUT
-    lambda 6 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 6 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 6 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 6 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 9 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 9 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 9 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 9 In_FINISHED = Out_TIMEOUT
-    lambda 9 In_APPLICATION = Out_TIMEOUT
-    lambda 9 In_CERTIFICATE = Out_TIMEOUT
-    lambda 9 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 9 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 9 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 9 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 18 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 18 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 18 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 18 In_FINISHED = Out_TIMEOUT
-    lambda 18 In_APPLICATION = Out_TIMEOUT
-    lambda 18 In_CERTIFICATE = Out_TIMEOUT
-    lambda 18 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 18 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 18 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 18 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 19 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 19 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 19 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 19 In_FINISHED = Out_TIMEOUT
-    lambda 19 In_APPLICATION = Out_TIMEOUT
-    lambda 19 In_CERTIFICATE = Out_TIMEOUT
-    lambda 19 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 19 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 19 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 19 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 20 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 20 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 20 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 20 In_FINISHED = Out_TIMEOUT
-    lambda 20 In_APPLICATION = Out_TIMEOUT
-    lambda 20 In_CERTIFICATE = Out_TIMEOUT
-    lambda 20 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 20 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 20 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 20 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 11 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 11 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 11 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 11 In_FINISHED = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 11 In_APPLICATION = Out_TIMEOUT
-    lambda 11 In_CERTIFICATE = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 11 In_EMPTY_CERTIFICATE = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 11 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 11 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 11 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 21 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 21 In_ECDH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 21 In_CHANGE_CIPHER_SPEC = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 21 In_FINISHED = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 21 In_APPLICATION = Out_TIMEOUT
-    lambda 21 In_CERTIFICATE = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 21 In_EMPTY_CERTIFICATE = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 21 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 21 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 21 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 23 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 23 In_ECDH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 23 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 23 In_FINISHED = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 23 In_APPLICATION = Out_TIMEOUT
-    lambda 23 In_CERTIFICATE = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 23 In_EMPTY_CERTIFICATE = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 23 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 23 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 23 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 25 In_ECDH_CLIENT_HELLO = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 25 In_ECDH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 25 In_CHANGE_CIPHER_SPEC = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 25 In_FINISHED = Out_CHANGE_CIPHER_SPEC_FINISHED
-    lambda 25 In_APPLICATION = Out_TIMEOUT
-    lambda 25 In_CERTIFICATE = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 25 In_EMPTY_CERTIFICATE = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 25 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 25 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 25 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 26 In_ECDH_CLIENT_HELLO = Out_Alert_WARNING_NO_RENEGOTIATION
-    lambda 26 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 26 In_CHANGE_CIPHER_SPEC = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 26 In_FINISHED = Out_TIMEOUT
-    lambda 26 In_APPLICATION = Out_APPLICATION
-    lambda 26 In_CERTIFICATE = Out_TIMEOUT
-    lambda 26 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 26 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 26 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 26 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 12 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 12 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 12 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 12 In_FINISHED = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 12 In_APPLICATION = Out_TIMEOUT
-    lambda 12 In_CERTIFICATE = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 12 In_EMPTY_CERTIFICATE = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 12 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 12 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 12 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 29 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 29 In_ECDH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 29 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 29 In_FINISHED = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 29 In_APPLICATION = Out_TIMEOUT
-    lambda 29 In_CERTIFICATE = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 29 In_EMPTY_CERTIFICATE = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 29 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 29 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 29 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 17 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 17 In_ECDH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 17 In_CHANGE_CIPHER_SPEC = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 17 In_FINISHED = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 17 In_APPLICATION = Out_TIMEOUT
-    lambda 17 In_CERTIFICATE = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 17 In_EMPTY_CERTIFICATE = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 17 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_HANDSHAKE_FAILURE
-    lambda 17 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 17 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 28 In_ECDH_CLIENT_HELLO = Out_Alert_WARNING_NO_RENEGOTIATION
-    lambda 28 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 28 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 28 In_FINISHED = Out_TIMEOUT
-    lambda 28 In_APPLICATION = Out_APPLICATION
-    lambda 28 In_CERTIFICATE = Out_TIMEOUT
-    lambda 28 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 28 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 28 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 28 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 24 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 24 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 24 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 24 In_FINISHED = Out_TIMEOUT
-    lambda 24 In_APPLICATION = Out_TIMEOUT
-    lambda 24 In_CERTIFICATE = Out_TIMEOUT
-    lambda 24 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 24 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 24 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 24 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 34 In_ECDH_CLIENT_HELLO = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 34 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 34 In_CHANGE_CIPHER_SPEC = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 34 In_FINISHED = Out_TIMEOUT
-    lambda 34 In_APPLICATION = Out_TIMEOUT
-    lambda 34 In_CERTIFICATE = Out_TIMEOUT
-    lambda 34 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 34 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 34 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 34 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 8 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 8 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 8 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 8 In_FINISHED = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 8 In_APPLICATION = Out_TIMEOUT
-    lambda 8 In_CERTIFICATE = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 8 In_EMPTY_CERTIFICATE = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 8 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 8 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 8 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 22 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 22 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 22 In_CHANGE_CIPHER_SPEC = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 22 In_FINISHED = Out_TIMEOUT
-    lambda 22 In_APPLICATION = Out_TIMEOUT
-    lambda 22 In_CERTIFICATE = Out_TIMEOUT
-    lambda 22 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 22 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 22 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 22 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 36 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 36 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 36 In_CHANGE_CIPHER_SPEC = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 36 In_FINISHED = Out_TIMEOUT
-    lambda 36 In_APPLICATION = Out_TIMEOUT
-    lambda 36 In_CERTIFICATE = Out_TIMEOUT
-    lambda 36 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 36 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 36 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 36 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 31 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 31 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 31 In_CHANGE_CIPHER_SPEC = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 31 In_FINISHED = Out_TIMEOUT
-    lambda 31 In_APPLICATION = Out_TIMEOUT
-    lambda 31 In_CERTIFICATE = Out_TIMEOUT
-    lambda 31 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 31 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 31 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 31 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 33 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 33 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 33 In_CHANGE_CIPHER_SPEC = Out_Alert_FATAL_HANDSHAKE_FAILURE
-    lambda 33 In_FINISHED = Out_TIMEOUT
-    lambda 33 In_APPLICATION = Out_TIMEOUT
-    lambda 33 In_CERTIFICATE = Out_TIMEOUT
-    lambda 33 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 33 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 33 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 33 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 35 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 35 In_ECDH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 35 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 35 In_FINISHED = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 35 In_APPLICATION = Out_TIMEOUT
-    lambda 35 In_CERTIFICATE = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 35 In_EMPTY_CERTIFICATE = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 35 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 35 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 35 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 30 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 30 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 30 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 30 In_FINISHED = Out_TIMEOUT
-    lambda 30 In_APPLICATION = Out_TIMEOUT
-    lambda 30 In_CERTIFICATE = Out_TIMEOUT
-    lambda 30 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 30 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 30 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 30 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 38 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 38 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 38 In_CHANGE_CIPHER_SPEC = Out_Alert_FATAL_HANDSHAKE_FAILURE
-    lambda 38 In_FINISHED = Out_TIMEOUT
-    lambda 38 In_APPLICATION = Out_TIMEOUT
-    lambda 38 In_CERTIFICATE = Out_TIMEOUT
-    lambda 38 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 38 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 38 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 38 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 37 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 37 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 37 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 37 In_FINISHED = Out_TIMEOUT
-    lambda 37 In_APPLICATION = Out_TIMEOUT
-    lambda 37 In_CERTIFICATE = Out_TIMEOUT
-    lambda 37 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 37 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 37 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 37 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 14 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 14 In_ECDH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 14 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 14 In_FINISHED = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 14 In_APPLICATION = Out_TIMEOUT
-    lambda 14 In_CERTIFICATE = Out_TIMEOUT
-    lambda 14 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 14 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 14 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 14 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 40 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 40 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 40 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 40 In_FINISHED = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 40 In_APPLICATION = Out_TIMEOUT
-    lambda 40 In_CERTIFICATE = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 40 In_EMPTY_CERTIFICATE = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 40 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 40 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 40 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 41 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 41 In_ECDH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 41 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 41 In_FINISHED = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 41 In_APPLICATION = Out_TIMEOUT
-    lambda 41 In_CERTIFICATE = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 41 In_EMPTY_CERTIFICATE = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 41 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 41 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 41 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 42 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 42 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 42 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 42 In_FINISHED = Out_TIMEOUT
-    lambda 42 In_APPLICATION = Out_TIMEOUT
-    lambda 42 In_CERTIFICATE = Out_TIMEOUT
-    lambda 42 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 42 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 42 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 42 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 32 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 32 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 32 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 32 In_FINISHED = Out_TIMEOUT
-    lambda 32 In_APPLICATION = Out_TIMEOUT
-    lambda 32 In_CERTIFICATE = Out_TIMEOUT
-    lambda 32 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 32 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 32 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 32 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 43 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 43 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 43 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 43 In_FINISHED = Out_TIMEOUT
-    lambda 43 In_APPLICATION = Out_TIMEOUT
-    lambda 43 In_CERTIFICATE = Out_TIMEOUT
-    lambda 43 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 43 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 43 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 43 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 27 In_ECDH_CLIENT_HELLO = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 27 In_ECDH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 27 In_CHANGE_CIPHER_SPEC = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 27 In_FINISHED = Out_CHANGE_CIPHER_SPEC_FINISHED_APPLICATION
-    lambda 27 In_APPLICATION = Out_TIMEOUT
-    lambda 27 In_CERTIFICATE = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 27 In_EMPTY_CERTIFICATE = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 27 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 27 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 27 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 39 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 39 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 39 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 39 In_FINISHED = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 39 In_APPLICATION = Out_TIMEOUT
-    lambda 39 In_CERTIFICATE = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 39 In_EMPTY_CERTIFICATE = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 39 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 39 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 39 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 44 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 44 In_ECDH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 44 In_CHANGE_CIPHER_SPEC = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 44 In_FINISHED = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 44 In_APPLICATION = Out_TIMEOUT
-    lambda 44 In_CERTIFICATE = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 44 In_EMPTY_CERTIFICATE = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 44 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_HANDSHAKE_FAILURE
-    lambda 44 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 44 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda _ _ = error "haal-gen: undefined transition"
+import Haal.Automaton.MealyAutomaton (MealyAutomaton, mkMealyAutomatonTable)
+
+data ScandiumV2V0V0EcdheCertNreqInput
+    = In_ECDH_CLIENT_HELLO
+    | In_ECDH_CLIENT_KEY_EXCHANGE
+    | In_CHANGE_CIPHER_SPEC
+    | In_FINISHED
+    | In_APPLICATION
+    | In_CERTIFICATE
+    | In_EMPTY_CERTIFICATE
+    | In_CERTIFICATE_VERIFY
+    | In_Alert_WARNING_CLOSE_NOTIFY
+    | In_Alert_FATAL_UNEXPECTED_MESSAGE
+    deriving (Show, Eq, Ord, Enum, Bounded)
+
+data ScandiumV2V0V0EcdheCertNreqOutput
+    = Out_HELLO_VERIFY_REQUEST
+    | Out_TIMEOUT
+    | Out_SERVER_HELLO_CERTIFICATE_ECDHE_SERVER_KEY_EXCHANGE_CERTIFICATE_REQUEST_SERVER_HELLO_DONE
+    | Out_Alert_FATAL_INTERNAL_ERROR
+    | Out_Alert_WARNING_CLOSE_NOTIFY
+    | Out_SERVER_HELLO_DONE
+    | Out_CERTIFICATE_REQUEST_SERVER_HELLO_DONE
+    | Out_ECDHE_SERVER_KEY_EXCHANGE_CERTIFICATE_REQUEST_SERVER_HELLO_DONE
+    | Out_CERTIFICATE_ECDHE_SERVER_KEY_EXCHANGE_CERTIFICATE_REQUEST_SERVER_HELLO_DONE
+    | Out_CHANGE_CIPHER_SPEC_FINISHED
+    | Out_Alert_WARNING_NO_RENEGOTIATION
+    | Out_APPLICATION
+    | Out_Alert_FATAL_HANDSHAKE_FAILURE
+    | Out_CHANGE_CIPHER_SPEC_FINISHED_APPLICATION
+    deriving (Show, Eq, Ord, Enum, Bounded)
+
+{- Transitions (state  input -> next state / output):
+    0     In_ECDH_CLIENT_HELLO               -> 1 / Out_HELLO_VERIFY_REQUEST
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 2 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_TIMEOUT
+          In_FINISHED                        -> 2 / Out_TIMEOUT
+          In_APPLICATION                     -> 0 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 2 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 2 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 2 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 0 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 0 / Out_TIMEOUT
+    1     In_ECDH_CLIENT_HELLO               -> 3 / Out_SERVER_HELLO_CERTIFICATE_ECDHE_SERVER_KEY_EXCHANGE_CERTIFICATE_REQUEST_SERVER_HELLO_DONE
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 4 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_TIMEOUT
+          In_FINISHED                        -> 4 / Out_TIMEOUT
+          In_APPLICATION                     -> 1 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 4 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 4 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 4 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 1 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 1 / Out_TIMEOUT
+    2     In_ECDH_CLIENT_HELLO               -> 2 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 2 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_TIMEOUT
+          In_FINISHED                        -> 2 / Out_TIMEOUT
+          In_APPLICATION                     -> 2 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 2 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 2 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 2 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 2 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 2 / Out_TIMEOUT
+    3     In_ECDH_CLIENT_HELLO               -> 9 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 10 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_TIMEOUT
+          In_FINISHED                        -> 10 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 11 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 12 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 10 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 13 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 13 / Out_TIMEOUT
+    4     In_ECDH_CLIENT_HELLO               -> 5 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 4 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_TIMEOUT
+          In_FINISHED                        -> 4 / Out_TIMEOUT
+          In_APPLICATION                     -> 4 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 4 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 4 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 4 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    5     In_ECDH_CLIENT_HELLO               -> 6 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 4 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_TIMEOUT
+          In_FINISHED                        -> 4 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_APPLICATION                     -> 5 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 7 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 8 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 4 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    6     In_ECDH_CLIENT_HELLO               -> 6 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 6 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_TIMEOUT
+          In_FINISHED                        -> 6 / Out_TIMEOUT
+          In_APPLICATION                     -> 6 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 6 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 6 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 6 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    7     In_ECDH_CLIENT_HELLO               -> 6 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 17 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_TIMEOUT
+          In_FINISHED                        -> 4 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_APPLICATION                     -> 7 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 4 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_EMPTY_CERTIFICATE               -> 4 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_CERTIFICATE_VERIFY              -> 4 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    8     In_ECDH_CLIENT_HELLO               -> 6 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 35 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_TIMEOUT
+          In_FINISHED                        -> 4 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_APPLICATION                     -> 8 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 4 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_EMPTY_CERTIFICATE               -> 4 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_CERTIFICATE_VERIFY              -> 4 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    9     In_ECDH_CLIENT_HELLO               -> 18 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 18 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_TIMEOUT
+          In_FINISHED                        -> 18 / Out_TIMEOUT
+          In_APPLICATION                     -> 9 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 18 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 18 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 18 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 10 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 10 / Out_TIMEOUT
+    10    In_ECDH_CLIENT_HELLO               -> 14 / Out_CERTIFICATE_REQUEST_SERVER_HELLO_DONE
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 15 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_TIMEOUT
+          In_FINISHED                        -> 15 / Out_TIMEOUT
+          In_APPLICATION                     -> 10 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 15 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 15 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 15 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 10 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 10 / Out_TIMEOUT
+    11    In_ECDH_CLIENT_HELLO               -> 18 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 21 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_TIMEOUT
+          In_FINISHED                        -> 15 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_APPLICATION                     -> 11 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 15 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_EMPTY_CERTIFICATE               -> 15 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_CERTIFICATE_VERIFY              -> 15 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 10 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 10 / Out_TIMEOUT
+    12    In_ECDH_CLIENT_HELLO               -> 18 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 29 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_TIMEOUT
+          In_FINISHED                        -> 15 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_APPLICATION                     -> 12 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 15 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_EMPTY_CERTIFICATE               -> 15 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_CERTIFICATE_VERIFY              -> 15 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 10 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 10 / Out_TIMEOUT
+    13    In_ECDH_CLIENT_HELLO               -> 14 / Out_SERVER_HELLO_DONE
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 10 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_TIMEOUT
+          In_FINISHED                        -> 10 / Out_TIMEOUT
+          In_APPLICATION                     -> 13 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 10 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 10 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 10 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 13 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 13 / Out_TIMEOUT
+    14    In_ECDH_CLIENT_HELLO               -> 9 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 10 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_TIMEOUT
+          In_FINISHED                        -> 10 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_APPLICATION                     -> 14 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 39 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 40 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 10 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 13 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 13 / Out_TIMEOUT
+    15    In_ECDH_CLIENT_HELLO               -> 14 / Out_ECDHE_SERVER_KEY_EXCHANGE_CERTIFICATE_REQUEST_SERVER_HELLO_DONE
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 16 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_TIMEOUT
+          In_FINISHED                        -> 16 / Out_TIMEOUT
+          In_APPLICATION                     -> 15 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 16 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 16 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 16 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 15 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 15 / Out_TIMEOUT
+    16    In_ECDH_CLIENT_HELLO               -> 14 / Out_CERTIFICATE_ECDHE_SERVER_KEY_EXCHANGE_CERTIFICATE_REQUEST_SERVER_HELLO_DONE
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 1 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_TIMEOUT
+          In_FINISHED                        -> 1 / Out_TIMEOUT
+          In_APPLICATION                     -> 16 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 1 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 1 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 1 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 16 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 16 / Out_TIMEOUT
+    17    In_ECDH_CLIENT_HELLO               -> 31 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 4 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_FINISHED                        -> 4 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_APPLICATION                     -> 17 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 4 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_EMPTY_CERTIFICATE               -> 4 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_CERTIFICATE_VERIFY              -> 4 / Out_Alert_FATAL_HANDSHAKE_FAILURE
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    18    In_ECDH_CLIENT_HELLO               -> 19 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 19 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_TIMEOUT
+          In_FINISHED                        -> 19 / Out_TIMEOUT
+          In_APPLICATION                     -> 18 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 19 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 19 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 19 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 15 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 15 / Out_TIMEOUT
+    19    In_ECDH_CLIENT_HELLO               -> 20 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 20 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_TIMEOUT
+          In_FINISHED                        -> 20 / Out_TIMEOUT
+          In_APPLICATION                     -> 19 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 20 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 20 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 20 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 16 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 16 / Out_TIMEOUT
+    20    In_ECDH_CLIENT_HELLO               -> 6 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 6 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_TIMEOUT
+          In_FINISHED                        -> 6 / Out_TIMEOUT
+          In_APPLICATION                     -> 20 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 6 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 6 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 6 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 1 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 1 / Out_TIMEOUT
+    21    In_ECDH_CLIENT_HELLO               -> 22 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 16 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_FINISHED                        -> 16 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_APPLICATION                     -> 21 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 16 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_EMPTY_CERTIFICATE               -> 16 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_CERTIFICATE_VERIFY              -> 23 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 15 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 15 / Out_TIMEOUT
+    22    In_ECDH_CLIENT_HELLO               -> 36 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 36 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_FINISHED                        -> 36 / Out_TIMEOUT
+          In_APPLICATION                     -> 22 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 36 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 36 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 36 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 16 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 16 / Out_TIMEOUT
+    23    In_ECDH_CLIENT_HELLO               -> 24 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 1 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_CHANGE_CIPHER_SPEC              -> 25 / Out_TIMEOUT
+          In_FINISHED                        -> 1 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_APPLICATION                     -> 23 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 1 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_EMPTY_CERTIFICATE               -> 1 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_CERTIFICATE_VERIFY              -> 1 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 16 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 16 / Out_TIMEOUT
+    24    In_ECDH_CLIENT_HELLO               -> 32 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 33 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 34 / Out_TIMEOUT
+          In_FINISHED                        -> 33 / Out_TIMEOUT
+          In_APPLICATION                     -> 24 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 33 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 33 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 33 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 1 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 1 / Out_TIMEOUT
+    25    In_ECDH_CLIENT_HELLO               -> 2 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 2 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_FINISHED                        -> 26 / Out_CHANGE_CIPHER_SPEC_FINISHED
+          In_APPLICATION                     -> 27 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 2 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_EMPTY_CERTIFICATE               -> 2 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_CERTIFICATE_VERIFY              -> 2 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 2 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 2 / Out_TIMEOUT
+    26    In_ECDH_CLIENT_HELLO               -> 26 / Out_Alert_WARNING_NO_RENEGOTIATION
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 26 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_FINISHED                        -> 26 / Out_TIMEOUT
+          In_APPLICATION                     -> 28 / Out_APPLICATION
+          In_CERTIFICATE                     -> 26 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 26 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 26 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 2 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 2 / Out_TIMEOUT
+    27    In_ECDH_CLIENT_HELLO               -> 2 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 2 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_FINISHED                        -> 28 / Out_CHANGE_CIPHER_SPEC_FINISHED_APPLICATION
+          In_APPLICATION                     -> 27 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 2 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_EMPTY_CERTIFICATE               -> 2 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_CERTIFICATE_VERIFY              -> 2 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 2 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 2 / Out_TIMEOUT
+    28    In_ECDH_CLIENT_HELLO               -> 28 / Out_Alert_WARNING_NO_RENEGOTIATION
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 28 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_TIMEOUT
+          In_FINISHED                        -> 28 / Out_TIMEOUT
+          In_APPLICATION                     -> 28 / Out_APPLICATION
+          In_CERTIFICATE                     -> 28 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 28 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 28 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 2 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 2 / Out_TIMEOUT
+    29    In_ECDH_CLIENT_HELLO               -> 30 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 16 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_CHANGE_CIPHER_SPEC              -> 25 / Out_TIMEOUT
+          In_FINISHED                        -> 16 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_APPLICATION                     -> 29 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 16 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_EMPTY_CERTIFICATE               -> 16 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_CERTIFICATE_VERIFY              -> 16 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 15 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 15 / Out_TIMEOUT
+    30    In_ECDH_CLIENT_HELLO               -> 24 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 38 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 34 / Out_TIMEOUT
+          In_FINISHED                        -> 38 / Out_TIMEOUT
+          In_APPLICATION                     -> 30 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 38 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 38 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 38 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 16 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 16 / Out_TIMEOUT
+    31    In_ECDH_CLIENT_HELLO               -> 31 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 31 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_FINISHED                        -> 31 / Out_TIMEOUT
+          In_APPLICATION                     -> 31 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 31 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 31 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 31 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    32    In_ECDH_CLIENT_HELLO               -> 32 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 33 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 34 / Out_TIMEOUT
+          In_FINISHED                        -> 33 / Out_TIMEOUT
+          In_APPLICATION                     -> 32 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 33 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 33 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 33 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    33    In_ECDH_CLIENT_HELLO               -> 33 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 33 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_Alert_FATAL_HANDSHAKE_FAILURE
+          In_FINISHED                        -> 33 / Out_TIMEOUT
+          In_APPLICATION                     -> 33 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 33 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 33 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 33 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    34    In_ECDH_CLIENT_HELLO               -> 2 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 34 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_FINISHED                        -> 34 / Out_TIMEOUT
+          In_APPLICATION                     -> 34 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 34 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 34 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 34 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 2 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 2 / Out_TIMEOUT
+    35    In_ECDH_CLIENT_HELLO               -> 37 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 4 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_TIMEOUT
+          In_FINISHED                        -> 4 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_APPLICATION                     -> 35 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 4 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_EMPTY_CERTIFICATE               -> 4 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_CERTIFICATE_VERIFY              -> 4 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    36    In_ECDH_CLIENT_HELLO               -> 31 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 31 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_FINISHED                        -> 31 / Out_TIMEOUT
+          In_APPLICATION                     -> 36 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 31 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 31 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 31 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 1 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 1 / Out_TIMEOUT
+    37    In_ECDH_CLIENT_HELLO               -> 37 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 33 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_TIMEOUT
+          In_FINISHED                        -> 33 / Out_TIMEOUT
+          In_APPLICATION                     -> 37 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 33 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 33 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 33 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    38    In_ECDH_CLIENT_HELLO               -> 33 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 33 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_Alert_FATAL_HANDSHAKE_FAILURE
+          In_FINISHED                        -> 33 / Out_TIMEOUT
+          In_APPLICATION                     -> 38 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 33 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 33 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 33 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 1 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 1 / Out_TIMEOUT
+    39    In_ECDH_CLIENT_HELLO               -> 18 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 44 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_TIMEOUT
+          In_FINISHED                        -> 15 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_APPLICATION                     -> 39 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 15 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_EMPTY_CERTIFICATE               -> 15 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_CERTIFICATE_VERIFY              -> 15 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 10 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 10 / Out_TIMEOUT
+    40    In_ECDH_CLIENT_HELLO               -> 18 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 41 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_TIMEOUT
+          In_FINISHED                        -> 15 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_APPLICATION                     -> 40 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 15 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_EMPTY_CERTIFICATE               -> 15 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_CERTIFICATE_VERIFY              -> 15 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 10 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 10 / Out_TIMEOUT
+    41    In_ECDH_CLIENT_HELLO               -> 42 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 16 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_TIMEOUT
+          In_FINISHED                        -> 16 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_APPLICATION                     -> 41 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 16 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_EMPTY_CERTIFICATE               -> 16 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_CERTIFICATE_VERIFY              -> 16 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 15 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 15 / Out_TIMEOUT
+    42    In_ECDH_CLIENT_HELLO               -> 43 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 38 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_TIMEOUT
+          In_FINISHED                        -> 38 / Out_TIMEOUT
+          In_APPLICATION                     -> 42 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 38 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 38 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 38 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 16 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 16 / Out_TIMEOUT
+    43    In_ECDH_CLIENT_HELLO               -> 37 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 33 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_TIMEOUT
+          In_FINISHED                        -> 33 / Out_TIMEOUT
+          In_APPLICATION                     -> 43 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 33 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 33 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 33 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 1 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 1 / Out_TIMEOUT
+    44    In_ECDH_CLIENT_HELLO               -> 22 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 16 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_FINISHED                        -> 16 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_APPLICATION                     -> 44 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 16 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_EMPTY_CERTIFICATE               -> 16 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_CERTIFICATE_VERIFY              -> 16 / Out_Alert_FATAL_HANDSHAKE_FAILURE
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 15 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 15 / Out_TIMEOUT
+-}
+scandiumV2V0V0EcdheCertNreq :: MealyAutomaton Int ScandiumV2V0V0EcdheCertNreqInput ScandiumV2V0V0EcdheCertNreqOutput
+scandiumV2V0V0EcdheCertNreq =
+    case mkMealyAutomatonTable 45 0 deltaTable lambdaTable of
+        Right m -> m
+        Left err -> error ("haal-gen: invalid transition table: " ++ err)
+  where
+    deltaTable =
+        "\1\2\2\2\0\2\2\2\0\0\
+        \\3\4\2\4\1\4\4\4\1\1\
+        \\2\2\2\2\2\2\2\2\2\2\
+        \\9\10\2\10\3\11\12\10\13\13\
+        \\5\4\2\4\4\4\4\4\4\4\
+        \\6\4\2\4\5\7\8\4\4\4\
+        \\6\6\2\6\6\6\6\6\4\4\
+        \\6\17\2\4\7\4\4\4\4\4\
+        \\6\35\2\4\8\4\4\4\4\4\
+        \\18\18\2\18\9\18\18\18\10\10\
+        \\14\15\2\15\10\15\15\15\10\10\
+        \\18\21\2\15\11\15\15\15\10\10\
+        \\18\29\2\15\12\15\15\15\10\10\
+        \\14\10\2\10\13\10\10\10\13\13\
+        \\9\10\2\10\14\39\40\10\13\13\
+        \\14\16\2\16\15\16\16\16\15\15\
+        \\14\1\2\1\16\1\1\1\16\16\
+        \\31\4\2\4\17\4\4\4\4\4\
+        \\19\19\2\19\18\19\19\19\15\15\
+        \\20\20\2\20\19\20\20\20\16\16\
+        \\6\6\2\6\20\6\6\6\1\1\
+        \\22\16\2\16\21\16\16\23\15\15\
+        \\36\36\2\36\22\36\36\36\16\16\
+        \\24\1\25\1\23\1\1\1\16\16\
+        \\32\33\34\33\24\33\33\33\1\1\
+        \\2\2\2\26\27\2\2\2\2\2\
+        \\26\26\2\26\28\26\26\26\2\2\
+        \\2\2\2\28\27\2\2\2\2\2\
+        \\28\28\2\28\28\28\28\28\2\2\
+        \\30\16\25\16\29\16\16\16\15\15\
+        \\24\38\34\38\30\38\38\38\16\16\
+        \\31\31\2\31\31\31\31\31\4\4\
+        \\32\33\34\33\32\33\33\33\4\4\
+        \\33\33\2\33\33\33\33\33\4\4\
+        \\2\34\2\34\34\34\34\34\2\2\
+        \\37\4\2\4\35\4\4\4\4\4\
+        \\31\31\2\31\36\31\31\31\1\1\
+        \\37\33\2\33\37\33\33\33\4\4\
+        \\33\33\2\33\38\33\33\33\1\1\
+        \\18\44\2\15\39\15\15\15\10\10\
+        \\18\41\2\15\40\15\15\15\10\10\
+        \\42\16\2\16\41\16\16\16\15\15\
+        \\43\38\2\38\42\38\38\38\16\16\
+        \\37\33\2\33\43\33\33\33\1\1\
+        \\22\16\2\16\44\16\16\16\15\15"
+    lambdaTable =
+        "\0\1\1\1\1\1\1\1\1\1\
+        \\2\1\1\1\1\1\1\1\1\1\
+        \\1\1\1\1\1\1\1\1\1\1\
+        \\1\3\1\3\1\1\1\3\4\1\
+        \\1\1\1\1\1\1\1\1\1\1\
+        \\1\3\1\3\1\1\1\3\4\1\
+        \\1\1\1\1\1\1\1\1\4\1\
+        \\1\1\1\3\1\3\3\3\4\1\
+        \\1\1\1\3\1\3\3\3\4\1\
+        \\1\1\1\1\1\1\1\1\4\1\
+        \\6\1\1\1\1\1\1\1\1\1\
+        \\1\1\1\3\1\3\3\3\4\1\
+        \\1\1\1\3\1\3\3\3\4\1\
+        \\5\1\1\1\1\1\1\1\1\1\
+        \\1\3\1\3\1\1\1\3\4\1\
+        \\7\1\1\1\1\1\1\1\1\1\
+        \\8\1\1\1\1\1\1\1\1\1\
+        \\1\3\3\3\1\3\3\12\4\1\
+        \\1\1\1\1\1\1\1\1\4\1\
+        \\1\1\1\1\1\1\1\1\4\1\
+        \\1\1\1\1\1\1\1\1\4\1\
+        \\1\3\3\3\1\3\3\1\4\1\
+        \\1\1\3\1\1\1\1\1\4\1\
+        \\1\3\1\3\1\3\3\3\4\1\
+        \\1\1\1\1\1\1\1\1\4\1\
+        \\3\3\3\9\1\3\3\3\4\1\
+        \\10\1\3\1\11\1\1\1\4\1\
+        \\3\3\3\13\1\3\3\3\4\1\
+        \\10\1\1\1\11\1\1\1\4\1\
+        \\1\3\1\3\1\3\3\3\4\1\
+        \\1\1\1\1\1\1\1\1\4\1\
+        \\1\1\3\1\1\1\1\1\4\1\
+        \\1\1\1\1\1\1\1\1\4\1\
+        \\1\1\12\1\1\1\1\1\4\1\
+        \\3\1\3\1\1\1\1\1\4\1\
+        \\1\3\1\3\1\3\3\3\4\1\
+        \\1\1\3\1\1\1\1\1\4\1\
+        \\1\1\1\1\1\1\1\1\4\1\
+        \\1\1\12\1\1\1\1\1\4\1\
+        \\1\1\1\3\1\3\3\3\4\1\
+        \\1\1\1\3\1\3\3\3\4\1\
+        \\1\3\1\3\1\3\3\3\4\1\
+        \\1\1\1\1\1\1\1\1\4\1\
+        \\1\1\1\1\1\1\1\1\4\1\
+        \\1\3\3\3\1\3\3\12\4\1"
diff --git a/src/Haal/Models/DTLS/ScandiumV2V0V0EcdheCertReq.hs b/src/Haal/Models/DTLS/ScandiumV2V0V0EcdheCertReq.hs
--- a/src/Haal/Models/DTLS/ScandiumV2V0V0EcdheCertReq.hs
+++ b/src/Haal/Models/DTLS/ScandiumV2V0V0EcdheCertReq.hs
@@ -5,661 +5,417 @@
     , scandiumV2V0V0EcdheCertReq
     ) where
 
-import qualified Data.Set as Set
-import Haal.Automaton.MealyAutomaton (MealyAutomaton, mkMealyAutomaton)
-
-data ScandiumV2V0V0EcdheCertReqInput
-    = In_ECDH_CLIENT_HELLO
-    | In_ECDH_CLIENT_KEY_EXCHANGE
-    | In_CHANGE_CIPHER_SPEC
-    | In_FINISHED
-    | In_APPLICATION
-    | In_CERTIFICATE
-    | In_EMPTY_CERTIFICATE
-    | In_CERTIFICATE_VERIFY
-    | In_Alert_WARNING_CLOSE_NOTIFY
-    | In_Alert_FATAL_UNEXPECTED_MESSAGE
-    deriving (Show, Eq, Ord, Enum, Bounded)
-
-data ScandiumV2V0V0EcdheCertReqOutput
-    = Out_HELLO_VERIFY_REQUEST
-    | Out_TIMEOUT
-    | Out_SERVER_HELLO_CERTIFICATE_ECDHE_SERVER_KEY_EXCHANGE_CERTIFICATE_REQUEST_SERVER_HELLO_DONE
-    | Out_Alert_FATAL_INTERNAL_ERROR
-    | Out_Alert_FATAL_HANDSHAKE_FAILURE
-    | Out_Alert_WARNING_CLOSE_NOTIFY
-    | Out_SERVER_HELLO_DONE
-    | Out_CERTIFICATE_REQUEST_SERVER_HELLO_DONE
-    | Out_ECDHE_SERVER_KEY_EXCHANGE_CERTIFICATE_REQUEST_SERVER_HELLO_DONE
-    | Out_CERTIFICATE_ECDHE_SERVER_KEY_EXCHANGE_CERTIFICATE_REQUEST_SERVER_HELLO_DONE
-    | Out_CHANGE_CIPHER_SPEC_FINISHED
-    | Out_Alert_WARNING_NO_RENEGOTIATION
-    | Out_APPLICATION
-    | Out_CHANGE_CIPHER_SPEC_FINISHED_APPLICATION
-    deriving (Show, Eq, Ord, Enum, Bounded)
-
-scandiumV2V0V0EcdheCertReq :: MealyAutomaton Int ScandiumV2V0V0EcdheCertReqInput ScandiumV2V0V0EcdheCertReqOutput
-scandiumV2V0V0EcdheCertReq = mkMealyAutomaton delta lambda (Set.fromList [0..30]) 0
-  where
-    delta 0 In_ECDH_CLIENT_HELLO = 1
-    delta 0 In_ECDH_CLIENT_KEY_EXCHANGE = 2
-    delta 0 In_CHANGE_CIPHER_SPEC = 2
-    delta 0 In_FINISHED = 2
-    delta 0 In_APPLICATION = 0
-    delta 0 In_CERTIFICATE = 2
-    delta 0 In_EMPTY_CERTIFICATE = 2
-    delta 0 In_CERTIFICATE_VERIFY = 2
-    delta 0 In_Alert_WARNING_CLOSE_NOTIFY = 0
-    delta 0 In_Alert_FATAL_UNEXPECTED_MESSAGE = 0
-    delta 2 In_ECDH_CLIENT_HELLO = 2
-    delta 2 In_ECDH_CLIENT_KEY_EXCHANGE = 2
-    delta 2 In_CHANGE_CIPHER_SPEC = 2
-    delta 2 In_FINISHED = 2
-    delta 2 In_APPLICATION = 2
-    delta 2 In_CERTIFICATE = 2
-    delta 2 In_EMPTY_CERTIFICATE = 2
-    delta 2 In_CERTIFICATE_VERIFY = 2
-    delta 2 In_Alert_WARNING_CLOSE_NOTIFY = 2
-    delta 2 In_Alert_FATAL_UNEXPECTED_MESSAGE = 2
-    delta 1 In_ECDH_CLIENT_HELLO = 3
-    delta 1 In_ECDH_CLIENT_KEY_EXCHANGE = 4
-    delta 1 In_CHANGE_CIPHER_SPEC = 2
-    delta 1 In_FINISHED = 4
-    delta 1 In_APPLICATION = 1
-    delta 1 In_CERTIFICATE = 4
-    delta 1 In_EMPTY_CERTIFICATE = 4
-    delta 1 In_CERTIFICATE_VERIFY = 4
-    delta 1 In_Alert_WARNING_CLOSE_NOTIFY = 1
-    delta 1 In_Alert_FATAL_UNEXPECTED_MESSAGE = 1
-    delta 4 In_ECDH_CLIENT_HELLO = 5
-    delta 4 In_ECDH_CLIENT_KEY_EXCHANGE = 4
-    delta 4 In_CHANGE_CIPHER_SPEC = 2
-    delta 4 In_FINISHED = 4
-    delta 4 In_APPLICATION = 4
-    delta 4 In_CERTIFICATE = 4
-    delta 4 In_EMPTY_CERTIFICATE = 4
-    delta 4 In_CERTIFICATE_VERIFY = 4
-    delta 4 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 4 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 5 In_ECDH_CLIENT_HELLO = 6
-    delta 5 In_ECDH_CLIENT_KEY_EXCHANGE = 4
-    delta 5 In_CHANGE_CIPHER_SPEC = 2
-    delta 5 In_FINISHED = 4
-    delta 5 In_APPLICATION = 5
-    delta 5 In_CERTIFICATE = 7
-    delta 5 In_EMPTY_CERTIFICATE = 4
-    delta 5 In_CERTIFICATE_VERIFY = 4
-    delta 5 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 5 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 3 In_ECDH_CLIENT_HELLO = 8
-    delta 3 In_ECDH_CLIENT_KEY_EXCHANGE = 9
-    delta 3 In_CHANGE_CIPHER_SPEC = 2
-    delta 3 In_FINISHED = 9
-    delta 3 In_APPLICATION = 3
-    delta 3 In_CERTIFICATE = 10
-    delta 3 In_EMPTY_CERTIFICATE = 9
-    delta 3 In_CERTIFICATE_VERIFY = 9
-    delta 3 In_Alert_WARNING_CLOSE_NOTIFY = 11
-    delta 3 In_Alert_FATAL_UNEXPECTED_MESSAGE = 11
-    delta 11 In_ECDH_CLIENT_HELLO = 12
-    delta 11 In_ECDH_CLIENT_KEY_EXCHANGE = 9
-    delta 11 In_CHANGE_CIPHER_SPEC = 2
-    delta 11 In_FINISHED = 9
-    delta 11 In_APPLICATION = 11
-    delta 11 In_CERTIFICATE = 9
-    delta 11 In_EMPTY_CERTIFICATE = 9
-    delta 11 In_CERTIFICATE_VERIFY = 9
-    delta 11 In_Alert_WARNING_CLOSE_NOTIFY = 11
-    delta 11 In_Alert_FATAL_UNEXPECTED_MESSAGE = 11
-    delta 9 In_ECDH_CLIENT_HELLO = 12
-    delta 9 In_ECDH_CLIENT_KEY_EXCHANGE = 13
-    delta 9 In_CHANGE_CIPHER_SPEC = 2
-    delta 9 In_FINISHED = 13
-    delta 9 In_APPLICATION = 9
-    delta 9 In_CERTIFICATE = 13
-    delta 9 In_EMPTY_CERTIFICATE = 13
-    delta 9 In_CERTIFICATE_VERIFY = 13
-    delta 9 In_Alert_WARNING_CLOSE_NOTIFY = 9
-    delta 9 In_Alert_FATAL_UNEXPECTED_MESSAGE = 9
-    delta 13 In_ECDH_CLIENT_HELLO = 12
-    delta 13 In_ECDH_CLIENT_KEY_EXCHANGE = 14
-    delta 13 In_CHANGE_CIPHER_SPEC = 2
-    delta 13 In_FINISHED = 14
-    delta 13 In_APPLICATION = 13
-    delta 13 In_CERTIFICATE = 14
-    delta 13 In_EMPTY_CERTIFICATE = 14
-    delta 13 In_CERTIFICATE_VERIFY = 14
-    delta 13 In_Alert_WARNING_CLOSE_NOTIFY = 13
-    delta 13 In_Alert_FATAL_UNEXPECTED_MESSAGE = 13
-    delta 14 In_ECDH_CLIENT_HELLO = 12
-    delta 14 In_ECDH_CLIENT_KEY_EXCHANGE = 1
-    delta 14 In_CHANGE_CIPHER_SPEC = 2
-    delta 14 In_FINISHED = 1
-    delta 14 In_APPLICATION = 14
-    delta 14 In_CERTIFICATE = 1
-    delta 14 In_EMPTY_CERTIFICATE = 1
-    delta 14 In_CERTIFICATE_VERIFY = 1
-    delta 14 In_Alert_WARNING_CLOSE_NOTIFY = 14
-    delta 14 In_Alert_FATAL_UNEXPECTED_MESSAGE = 14
-    delta 7 In_ECDH_CLIENT_HELLO = 6
-    delta 7 In_ECDH_CLIENT_KEY_EXCHANGE = 15
-    delta 7 In_CHANGE_CIPHER_SPEC = 2
-    delta 7 In_FINISHED = 4
-    delta 7 In_APPLICATION = 7
-    delta 7 In_CERTIFICATE = 4
-    delta 7 In_EMPTY_CERTIFICATE = 4
-    delta 7 In_CERTIFICATE_VERIFY = 4
-    delta 7 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 7 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 6 In_ECDH_CLIENT_HELLO = 6
-    delta 6 In_ECDH_CLIENT_KEY_EXCHANGE = 6
-    delta 6 In_CHANGE_CIPHER_SPEC = 2
-    delta 6 In_FINISHED = 6
-    delta 6 In_APPLICATION = 6
-    delta 6 In_CERTIFICATE = 6
-    delta 6 In_EMPTY_CERTIFICATE = 6
-    delta 6 In_CERTIFICATE_VERIFY = 6
-    delta 6 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 6 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 8 In_ECDH_CLIENT_HELLO = 16
-    delta 8 In_ECDH_CLIENT_KEY_EXCHANGE = 16
-    delta 8 In_CHANGE_CIPHER_SPEC = 2
-    delta 8 In_FINISHED = 16
-    delta 8 In_APPLICATION = 8
-    delta 8 In_CERTIFICATE = 16
-    delta 8 In_EMPTY_CERTIFICATE = 16
-    delta 8 In_CERTIFICATE_VERIFY = 16
-    delta 8 In_Alert_WARNING_CLOSE_NOTIFY = 9
-    delta 8 In_Alert_FATAL_UNEXPECTED_MESSAGE = 9
-    delta 16 In_ECDH_CLIENT_HELLO = 17
-    delta 16 In_ECDH_CLIENT_KEY_EXCHANGE = 17
-    delta 16 In_CHANGE_CIPHER_SPEC = 2
-    delta 16 In_FINISHED = 17
-    delta 16 In_APPLICATION = 16
-    delta 16 In_CERTIFICATE = 17
-    delta 16 In_EMPTY_CERTIFICATE = 17
-    delta 16 In_CERTIFICATE_VERIFY = 17
-    delta 16 In_Alert_WARNING_CLOSE_NOTIFY = 13
-    delta 16 In_Alert_FATAL_UNEXPECTED_MESSAGE = 13
-    delta 17 In_ECDH_CLIENT_HELLO = 18
-    delta 17 In_ECDH_CLIENT_KEY_EXCHANGE = 18
-    delta 17 In_CHANGE_CIPHER_SPEC = 2
-    delta 17 In_FINISHED = 18
-    delta 17 In_APPLICATION = 17
-    delta 17 In_CERTIFICATE = 18
-    delta 17 In_EMPTY_CERTIFICATE = 18
-    delta 17 In_CERTIFICATE_VERIFY = 18
-    delta 17 In_Alert_WARNING_CLOSE_NOTIFY = 14
-    delta 17 In_Alert_FATAL_UNEXPECTED_MESSAGE = 14
-    delta 18 In_ECDH_CLIENT_HELLO = 6
-    delta 18 In_ECDH_CLIENT_KEY_EXCHANGE = 6
-    delta 18 In_CHANGE_CIPHER_SPEC = 2
-    delta 18 In_FINISHED = 6
-    delta 18 In_APPLICATION = 18
-    delta 18 In_CERTIFICATE = 6
-    delta 18 In_EMPTY_CERTIFICATE = 6
-    delta 18 In_CERTIFICATE_VERIFY = 6
-    delta 18 In_Alert_WARNING_CLOSE_NOTIFY = 1
-    delta 18 In_Alert_FATAL_UNEXPECTED_MESSAGE = 1
-    delta 10 In_ECDH_CLIENT_HELLO = 16
-    delta 10 In_ECDH_CLIENT_KEY_EXCHANGE = 19
-    delta 10 In_CHANGE_CIPHER_SPEC = 2
-    delta 10 In_FINISHED = 13
-    delta 10 In_APPLICATION = 10
-    delta 10 In_CERTIFICATE = 13
-    delta 10 In_EMPTY_CERTIFICATE = 13
-    delta 10 In_CERTIFICATE_VERIFY = 13
-    delta 10 In_Alert_WARNING_CLOSE_NOTIFY = 9
-    delta 10 In_Alert_FATAL_UNEXPECTED_MESSAGE = 9
-    delta 19 In_ECDH_CLIENT_HELLO = 17
-    delta 19 In_ECDH_CLIENT_KEY_EXCHANGE = 14
-    delta 19 In_CHANGE_CIPHER_SPEC = 2
-    delta 19 In_FINISHED = 14
-    delta 19 In_APPLICATION = 19
-    delta 19 In_CERTIFICATE = 14
-    delta 19 In_EMPTY_CERTIFICATE = 14
-    delta 19 In_CERTIFICATE_VERIFY = 20
-    delta 19 In_Alert_WARNING_CLOSE_NOTIFY = 13
-    delta 19 In_Alert_FATAL_UNEXPECTED_MESSAGE = 13
-    delta 20 In_ECDH_CLIENT_HELLO = 21
-    delta 20 In_ECDH_CLIENT_KEY_EXCHANGE = 1
-    delta 20 In_CHANGE_CIPHER_SPEC = 22
-    delta 20 In_FINISHED = 1
-    delta 20 In_APPLICATION = 20
-    delta 20 In_CERTIFICATE = 1
-    delta 20 In_EMPTY_CERTIFICATE = 1
-    delta 20 In_CERTIFICATE_VERIFY = 1
-    delta 20 In_Alert_WARNING_CLOSE_NOTIFY = 14
-    delta 20 In_Alert_FATAL_UNEXPECTED_MESSAGE = 14
-    delta 22 In_ECDH_CLIENT_HELLO = 2
-    delta 22 In_ECDH_CLIENT_KEY_EXCHANGE = 2
-    delta 22 In_CHANGE_CIPHER_SPEC = 2
-    delta 22 In_FINISHED = 23
-    delta 22 In_APPLICATION = 24
-    delta 22 In_CERTIFICATE = 2
-    delta 22 In_EMPTY_CERTIFICATE = 2
-    delta 22 In_CERTIFICATE_VERIFY = 2
-    delta 22 In_Alert_WARNING_CLOSE_NOTIFY = 2
-    delta 22 In_Alert_FATAL_UNEXPECTED_MESSAGE = 2
-    delta 23 In_ECDH_CLIENT_HELLO = 23
-    delta 23 In_ECDH_CLIENT_KEY_EXCHANGE = 23
-    delta 23 In_CHANGE_CIPHER_SPEC = 2
-    delta 23 In_FINISHED = 23
-    delta 23 In_APPLICATION = 25
-    delta 23 In_CERTIFICATE = 23
-    delta 23 In_EMPTY_CERTIFICATE = 23
-    delta 23 In_CERTIFICATE_VERIFY = 23
-    delta 23 In_Alert_WARNING_CLOSE_NOTIFY = 2
-    delta 23 In_Alert_FATAL_UNEXPECTED_MESSAGE = 2
-    delta 15 In_ECDH_CLIENT_HELLO = 6
-    delta 15 In_ECDH_CLIENT_KEY_EXCHANGE = 4
-    delta 15 In_CHANGE_CIPHER_SPEC = 2
-    delta 15 In_FINISHED = 4
-    delta 15 In_APPLICATION = 15
-    delta 15 In_CERTIFICATE = 4
-    delta 15 In_EMPTY_CERTIFICATE = 4
-    delta 15 In_CERTIFICATE_VERIFY = 4
-    delta 15 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 15 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 25 In_ECDH_CLIENT_HELLO = 25
-    delta 25 In_ECDH_CLIENT_KEY_EXCHANGE = 25
-    delta 25 In_CHANGE_CIPHER_SPEC = 2
-    delta 25 In_FINISHED = 25
-    delta 25 In_APPLICATION = 25
-    delta 25 In_CERTIFICATE = 25
-    delta 25 In_EMPTY_CERTIFICATE = 25
-    delta 25 In_CERTIFICATE_VERIFY = 25
-    delta 25 In_Alert_WARNING_CLOSE_NOTIFY = 2
-    delta 25 In_Alert_FATAL_UNEXPECTED_MESSAGE = 2
-    delta 21 In_ECDH_CLIENT_HELLO = 26
-    delta 21 In_ECDH_CLIENT_KEY_EXCHANGE = 27
-    delta 21 In_CHANGE_CIPHER_SPEC = 28
-    delta 21 In_FINISHED = 27
-    delta 21 In_APPLICATION = 21
-    delta 21 In_CERTIFICATE = 27
-    delta 21 In_EMPTY_CERTIFICATE = 27
-    delta 21 In_CERTIFICATE_VERIFY = 27
-    delta 21 In_Alert_WARNING_CLOSE_NOTIFY = 1
-    delta 21 In_Alert_FATAL_UNEXPECTED_MESSAGE = 1
-    delta 27 In_ECDH_CLIENT_HELLO = 27
-    delta 27 In_ECDH_CLIENT_KEY_EXCHANGE = 27
-    delta 27 In_CHANGE_CIPHER_SPEC = 2
-    delta 27 In_FINISHED = 27
-    delta 27 In_APPLICATION = 27
-    delta 27 In_CERTIFICATE = 27
-    delta 27 In_EMPTY_CERTIFICATE = 27
-    delta 27 In_CERTIFICATE_VERIFY = 27
-    delta 27 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 27 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta 28 In_ECDH_CLIENT_HELLO = 2
-    delta 28 In_ECDH_CLIENT_KEY_EXCHANGE = 28
-    delta 28 In_CHANGE_CIPHER_SPEC = 2
-    delta 28 In_FINISHED = 28
-    delta 28 In_APPLICATION = 28
-    delta 28 In_CERTIFICATE = 28
-    delta 28 In_EMPTY_CERTIFICATE = 28
-    delta 28 In_CERTIFICATE_VERIFY = 28
-    delta 28 In_Alert_WARNING_CLOSE_NOTIFY = 2
-    delta 28 In_Alert_FATAL_UNEXPECTED_MESSAGE = 2
-    delta 12 In_ECDH_CLIENT_HELLO = 8
-    delta 12 In_ECDH_CLIENT_KEY_EXCHANGE = 9
-    delta 12 In_CHANGE_CIPHER_SPEC = 2
-    delta 12 In_FINISHED = 9
-    delta 12 In_APPLICATION = 12
-    delta 12 In_CERTIFICATE = 29
-    delta 12 In_EMPTY_CERTIFICATE = 9
-    delta 12 In_CERTIFICATE_VERIFY = 9
-    delta 12 In_Alert_WARNING_CLOSE_NOTIFY = 11
-    delta 12 In_Alert_FATAL_UNEXPECTED_MESSAGE = 11
-    delta 29 In_ECDH_CLIENT_HELLO = 16
-    delta 29 In_ECDH_CLIENT_KEY_EXCHANGE = 30
-    delta 29 In_CHANGE_CIPHER_SPEC = 2
-    delta 29 In_FINISHED = 13
-    delta 29 In_APPLICATION = 29
-    delta 29 In_CERTIFICATE = 13
-    delta 29 In_EMPTY_CERTIFICATE = 13
-    delta 29 In_CERTIFICATE_VERIFY = 13
-    delta 29 In_Alert_WARNING_CLOSE_NOTIFY = 9
-    delta 29 In_Alert_FATAL_UNEXPECTED_MESSAGE = 9
-    delta 30 In_ECDH_CLIENT_HELLO = 17
-    delta 30 In_ECDH_CLIENT_KEY_EXCHANGE = 14
-    delta 30 In_CHANGE_CIPHER_SPEC = 2
-    delta 30 In_FINISHED = 14
-    delta 30 In_APPLICATION = 30
-    delta 30 In_CERTIFICATE = 14
-    delta 30 In_EMPTY_CERTIFICATE = 14
-    delta 30 In_CERTIFICATE_VERIFY = 14
-    delta 30 In_Alert_WARNING_CLOSE_NOTIFY = 13
-    delta 30 In_Alert_FATAL_UNEXPECTED_MESSAGE = 13
-    delta 24 In_ECDH_CLIENT_HELLO = 2
-    delta 24 In_ECDH_CLIENT_KEY_EXCHANGE = 2
-    delta 24 In_CHANGE_CIPHER_SPEC = 2
-    delta 24 In_FINISHED = 25
-    delta 24 In_APPLICATION = 24
-    delta 24 In_CERTIFICATE = 2
-    delta 24 In_EMPTY_CERTIFICATE = 2
-    delta 24 In_CERTIFICATE_VERIFY = 2
-    delta 24 In_Alert_WARNING_CLOSE_NOTIFY = 2
-    delta 24 In_Alert_FATAL_UNEXPECTED_MESSAGE = 2
-    delta 26 In_ECDH_CLIENT_HELLO = 26
-    delta 26 In_ECDH_CLIENT_KEY_EXCHANGE = 27
-    delta 26 In_CHANGE_CIPHER_SPEC = 28
-    delta 26 In_FINISHED = 27
-    delta 26 In_APPLICATION = 26
-    delta 26 In_CERTIFICATE = 27
-    delta 26 In_EMPTY_CERTIFICATE = 27
-    delta 26 In_CERTIFICATE_VERIFY = 27
-    delta 26 In_Alert_WARNING_CLOSE_NOTIFY = 4
-    delta 26 In_Alert_FATAL_UNEXPECTED_MESSAGE = 4
-    delta _ _ = error "haal-gen: undefined transition"
-    lambda 0 In_ECDH_CLIENT_HELLO = Out_HELLO_VERIFY_REQUEST
-    lambda 0 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 0 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 0 In_FINISHED = Out_TIMEOUT
-    lambda 0 In_APPLICATION = Out_TIMEOUT
-    lambda 0 In_CERTIFICATE = Out_TIMEOUT
-    lambda 0 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 0 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 0 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 0 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 2 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 2 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 2 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 2 In_FINISHED = Out_TIMEOUT
-    lambda 2 In_APPLICATION = Out_TIMEOUT
-    lambda 2 In_CERTIFICATE = Out_TIMEOUT
-    lambda 2 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 2 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 2 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 2 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 1 In_ECDH_CLIENT_HELLO = Out_SERVER_HELLO_CERTIFICATE_ECDHE_SERVER_KEY_EXCHANGE_CERTIFICATE_REQUEST_SERVER_HELLO_DONE
-    lambda 1 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 1 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 1 In_FINISHED = Out_TIMEOUT
-    lambda 1 In_APPLICATION = Out_TIMEOUT
-    lambda 1 In_CERTIFICATE = Out_TIMEOUT
-    lambda 1 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 1 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 1 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 1 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 4 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 4 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 4 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 4 In_FINISHED = Out_TIMEOUT
-    lambda 4 In_APPLICATION = Out_TIMEOUT
-    lambda 4 In_CERTIFICATE = Out_TIMEOUT
-    lambda 4 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 4 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 4 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 4 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 5 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 5 In_ECDH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 5 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 5 In_FINISHED = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 5 In_APPLICATION = Out_TIMEOUT
-    lambda 5 In_CERTIFICATE = Out_TIMEOUT
-    lambda 5 In_EMPTY_CERTIFICATE = Out_Alert_FATAL_HANDSHAKE_FAILURE
-    lambda 5 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 5 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 5 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 3 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 3 In_ECDH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 3 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 3 In_FINISHED = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 3 In_APPLICATION = Out_TIMEOUT
-    lambda 3 In_CERTIFICATE = Out_TIMEOUT
-    lambda 3 In_EMPTY_CERTIFICATE = Out_Alert_FATAL_HANDSHAKE_FAILURE
-    lambda 3 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 3 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 3 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 11 In_ECDH_CLIENT_HELLO = Out_SERVER_HELLO_DONE
-    lambda 11 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 11 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 11 In_FINISHED = Out_TIMEOUT
-    lambda 11 In_APPLICATION = Out_TIMEOUT
-    lambda 11 In_CERTIFICATE = Out_TIMEOUT
-    lambda 11 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 11 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 11 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 11 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 9 In_ECDH_CLIENT_HELLO = Out_CERTIFICATE_REQUEST_SERVER_HELLO_DONE
-    lambda 9 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 9 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 9 In_FINISHED = Out_TIMEOUT
-    lambda 9 In_APPLICATION = Out_TIMEOUT
-    lambda 9 In_CERTIFICATE = Out_TIMEOUT
-    lambda 9 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 9 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 9 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 9 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 13 In_ECDH_CLIENT_HELLO = Out_ECDHE_SERVER_KEY_EXCHANGE_CERTIFICATE_REQUEST_SERVER_HELLO_DONE
-    lambda 13 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 13 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 13 In_FINISHED = Out_TIMEOUT
-    lambda 13 In_APPLICATION = Out_TIMEOUT
-    lambda 13 In_CERTIFICATE = Out_TIMEOUT
-    lambda 13 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 13 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 13 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 13 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 14 In_ECDH_CLIENT_HELLO = Out_CERTIFICATE_ECDHE_SERVER_KEY_EXCHANGE_CERTIFICATE_REQUEST_SERVER_HELLO_DONE
-    lambda 14 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 14 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 14 In_FINISHED = Out_TIMEOUT
-    lambda 14 In_APPLICATION = Out_TIMEOUT
-    lambda 14 In_CERTIFICATE = Out_TIMEOUT
-    lambda 14 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 14 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 14 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 14 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 7 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 7 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 7 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 7 In_FINISHED = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 7 In_APPLICATION = Out_TIMEOUT
-    lambda 7 In_CERTIFICATE = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 7 In_EMPTY_CERTIFICATE = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 7 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 7 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 7 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 6 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 6 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 6 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 6 In_FINISHED = Out_TIMEOUT
-    lambda 6 In_APPLICATION = Out_TIMEOUT
-    lambda 6 In_CERTIFICATE = Out_TIMEOUT
-    lambda 6 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 6 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 6 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 6 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 8 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 8 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 8 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 8 In_FINISHED = Out_TIMEOUT
-    lambda 8 In_APPLICATION = Out_TIMEOUT
-    lambda 8 In_CERTIFICATE = Out_TIMEOUT
-    lambda 8 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 8 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 8 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 8 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 16 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 16 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 16 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 16 In_FINISHED = Out_TIMEOUT
-    lambda 16 In_APPLICATION = Out_TIMEOUT
-    lambda 16 In_CERTIFICATE = Out_TIMEOUT
-    lambda 16 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 16 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 16 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 16 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 17 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 17 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 17 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 17 In_FINISHED = Out_TIMEOUT
-    lambda 17 In_APPLICATION = Out_TIMEOUT
-    lambda 17 In_CERTIFICATE = Out_TIMEOUT
-    lambda 17 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 17 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 17 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 17 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 18 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 18 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 18 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 18 In_FINISHED = Out_TIMEOUT
-    lambda 18 In_APPLICATION = Out_TIMEOUT
-    lambda 18 In_CERTIFICATE = Out_TIMEOUT
-    lambda 18 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 18 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 18 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 18 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 10 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 10 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 10 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 10 In_FINISHED = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 10 In_APPLICATION = Out_TIMEOUT
-    lambda 10 In_CERTIFICATE = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 10 In_EMPTY_CERTIFICATE = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 10 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 10 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 10 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 19 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 19 In_ECDH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 19 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 19 In_FINISHED = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 19 In_APPLICATION = Out_TIMEOUT
-    lambda 19 In_CERTIFICATE = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 19 In_EMPTY_CERTIFICATE = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 19 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 19 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 19 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 20 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 20 In_ECDH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 20 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 20 In_FINISHED = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 20 In_APPLICATION = Out_TIMEOUT
-    lambda 20 In_CERTIFICATE = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 20 In_EMPTY_CERTIFICATE = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 20 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 20 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 20 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 22 In_ECDH_CLIENT_HELLO = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 22 In_ECDH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 22 In_CHANGE_CIPHER_SPEC = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 22 In_FINISHED = Out_CHANGE_CIPHER_SPEC_FINISHED
-    lambda 22 In_APPLICATION = Out_TIMEOUT
-    lambda 22 In_CERTIFICATE = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 22 In_EMPTY_CERTIFICATE = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 22 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 22 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 22 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 23 In_ECDH_CLIENT_HELLO = Out_Alert_WARNING_NO_RENEGOTIATION
-    lambda 23 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 23 In_CHANGE_CIPHER_SPEC = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 23 In_FINISHED = Out_TIMEOUT
-    lambda 23 In_APPLICATION = Out_APPLICATION
-    lambda 23 In_CERTIFICATE = Out_TIMEOUT
-    lambda 23 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 23 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 23 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 23 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 15 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 15 In_ECDH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 15 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 15 In_FINISHED = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 15 In_APPLICATION = Out_TIMEOUT
-    lambda 15 In_CERTIFICATE = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 15 In_EMPTY_CERTIFICATE = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 15 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_HANDSHAKE_FAILURE
-    lambda 15 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 15 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 25 In_ECDH_CLIENT_HELLO = Out_Alert_WARNING_NO_RENEGOTIATION
-    lambda 25 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 25 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 25 In_FINISHED = Out_TIMEOUT
-    lambda 25 In_APPLICATION = Out_APPLICATION
-    lambda 25 In_CERTIFICATE = Out_TIMEOUT
-    lambda 25 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 25 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 25 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 25 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 21 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 21 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 21 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 21 In_FINISHED = Out_TIMEOUT
-    lambda 21 In_APPLICATION = Out_TIMEOUT
-    lambda 21 In_CERTIFICATE = Out_TIMEOUT
-    lambda 21 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 21 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 21 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 21 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 27 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 27 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 27 In_CHANGE_CIPHER_SPEC = Out_Alert_FATAL_HANDSHAKE_FAILURE
-    lambda 27 In_FINISHED = Out_TIMEOUT
-    lambda 27 In_APPLICATION = Out_TIMEOUT
-    lambda 27 In_CERTIFICATE = Out_TIMEOUT
-    lambda 27 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 27 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 27 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 27 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 28 In_ECDH_CLIENT_HELLO = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 28 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 28 In_CHANGE_CIPHER_SPEC = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 28 In_FINISHED = Out_TIMEOUT
-    lambda 28 In_APPLICATION = Out_TIMEOUT
-    lambda 28 In_CERTIFICATE = Out_TIMEOUT
-    lambda 28 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 28 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 28 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 28 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 12 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 12 In_ECDH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 12 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 12 In_FINISHED = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 12 In_APPLICATION = Out_TIMEOUT
-    lambda 12 In_CERTIFICATE = Out_TIMEOUT
-    lambda 12 In_EMPTY_CERTIFICATE = Out_Alert_FATAL_HANDSHAKE_FAILURE
-    lambda 12 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 12 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 12 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 29 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 29 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 29 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 29 In_FINISHED = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 29 In_APPLICATION = Out_TIMEOUT
-    lambda 29 In_CERTIFICATE = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 29 In_EMPTY_CERTIFICATE = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 29 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 29 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 29 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 30 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 30 In_ECDH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 30 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 30 In_FINISHED = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 30 In_APPLICATION = Out_TIMEOUT
-    lambda 30 In_CERTIFICATE = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 30 In_EMPTY_CERTIFICATE = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 30 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_HANDSHAKE_FAILURE
-    lambda 30 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 30 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 24 In_ECDH_CLIENT_HELLO = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 24 In_ECDH_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 24 In_CHANGE_CIPHER_SPEC = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 24 In_FINISHED = Out_CHANGE_CIPHER_SPEC_FINISHED_APPLICATION
-    lambda 24 In_APPLICATION = Out_TIMEOUT
-    lambda 24 In_CERTIFICATE = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 24 In_EMPTY_CERTIFICATE = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 24 In_CERTIFICATE_VERIFY = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 24 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 24 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 26 In_ECDH_CLIENT_HELLO = Out_TIMEOUT
-    lambda 26 In_ECDH_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 26 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 26 In_FINISHED = Out_TIMEOUT
-    lambda 26 In_APPLICATION = Out_TIMEOUT
-    lambda 26 In_CERTIFICATE = Out_TIMEOUT
-    lambda 26 In_EMPTY_CERTIFICATE = Out_TIMEOUT
-    lambda 26 In_CERTIFICATE_VERIFY = Out_TIMEOUT
-    lambda 26 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 26 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda _ _ = error "haal-gen: undefined transition"
+import Haal.Automaton.MealyAutomaton (MealyAutomaton, mkMealyAutomatonTable)
+
+data ScandiumV2V0V0EcdheCertReqInput
+    = In_ECDH_CLIENT_HELLO
+    | In_ECDH_CLIENT_KEY_EXCHANGE
+    | In_CHANGE_CIPHER_SPEC
+    | In_FINISHED
+    | In_APPLICATION
+    | In_CERTIFICATE
+    | In_EMPTY_CERTIFICATE
+    | In_CERTIFICATE_VERIFY
+    | In_Alert_WARNING_CLOSE_NOTIFY
+    | In_Alert_FATAL_UNEXPECTED_MESSAGE
+    deriving (Show, Eq, Ord, Enum, Bounded)
+
+data ScandiumV2V0V0EcdheCertReqOutput
+    = Out_HELLO_VERIFY_REQUEST
+    | Out_TIMEOUT
+    | Out_SERVER_HELLO_CERTIFICATE_ECDHE_SERVER_KEY_EXCHANGE_CERTIFICATE_REQUEST_SERVER_HELLO_DONE
+    | Out_Alert_FATAL_INTERNAL_ERROR
+    | Out_Alert_FATAL_HANDSHAKE_FAILURE
+    | Out_Alert_WARNING_CLOSE_NOTIFY
+    | Out_SERVER_HELLO_DONE
+    | Out_CERTIFICATE_REQUEST_SERVER_HELLO_DONE
+    | Out_ECDHE_SERVER_KEY_EXCHANGE_CERTIFICATE_REQUEST_SERVER_HELLO_DONE
+    | Out_CERTIFICATE_ECDHE_SERVER_KEY_EXCHANGE_CERTIFICATE_REQUEST_SERVER_HELLO_DONE
+    | Out_CHANGE_CIPHER_SPEC_FINISHED
+    | Out_Alert_WARNING_NO_RENEGOTIATION
+    | Out_APPLICATION
+    | Out_CHANGE_CIPHER_SPEC_FINISHED_APPLICATION
+    deriving (Show, Eq, Ord, Enum, Bounded)
+
+{- Transitions (state  input -> next state / output):
+    0     In_ECDH_CLIENT_HELLO               -> 1 / Out_HELLO_VERIFY_REQUEST
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 2 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_TIMEOUT
+          In_FINISHED                        -> 2 / Out_TIMEOUT
+          In_APPLICATION                     -> 0 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 2 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 2 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 2 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 0 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 0 / Out_TIMEOUT
+    1     In_ECDH_CLIENT_HELLO               -> 3 / Out_SERVER_HELLO_CERTIFICATE_ECDHE_SERVER_KEY_EXCHANGE_CERTIFICATE_REQUEST_SERVER_HELLO_DONE
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 4 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_TIMEOUT
+          In_FINISHED                        -> 4 / Out_TIMEOUT
+          In_APPLICATION                     -> 1 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 4 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 4 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 4 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 1 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 1 / Out_TIMEOUT
+    2     In_ECDH_CLIENT_HELLO               -> 2 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 2 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_TIMEOUT
+          In_FINISHED                        -> 2 / Out_TIMEOUT
+          In_APPLICATION                     -> 2 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 2 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 2 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 2 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 2 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 2 / Out_TIMEOUT
+    3     In_ECDH_CLIENT_HELLO               -> 8 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 9 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_TIMEOUT
+          In_FINISHED                        -> 9 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 10 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 9 / Out_Alert_FATAL_HANDSHAKE_FAILURE
+          In_CERTIFICATE_VERIFY              -> 9 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 11 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 11 / Out_TIMEOUT
+    4     In_ECDH_CLIENT_HELLO               -> 5 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 4 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_TIMEOUT
+          In_FINISHED                        -> 4 / Out_TIMEOUT
+          In_APPLICATION                     -> 4 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 4 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 4 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 4 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    5     In_ECDH_CLIENT_HELLO               -> 6 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 4 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_TIMEOUT
+          In_FINISHED                        -> 4 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_APPLICATION                     -> 5 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 7 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 4 / Out_Alert_FATAL_HANDSHAKE_FAILURE
+          In_CERTIFICATE_VERIFY              -> 4 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    6     In_ECDH_CLIENT_HELLO               -> 6 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 6 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_TIMEOUT
+          In_FINISHED                        -> 6 / Out_TIMEOUT
+          In_APPLICATION                     -> 6 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 6 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 6 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 6 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    7     In_ECDH_CLIENT_HELLO               -> 6 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 15 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_TIMEOUT
+          In_FINISHED                        -> 4 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_APPLICATION                     -> 7 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 4 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_EMPTY_CERTIFICATE               -> 4 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_CERTIFICATE_VERIFY              -> 4 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    8     In_ECDH_CLIENT_HELLO               -> 16 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 16 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_TIMEOUT
+          In_FINISHED                        -> 16 / Out_TIMEOUT
+          In_APPLICATION                     -> 8 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 16 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 16 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 16 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 9 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 9 / Out_TIMEOUT
+    9     In_ECDH_CLIENT_HELLO               -> 12 / Out_CERTIFICATE_REQUEST_SERVER_HELLO_DONE
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 13 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_TIMEOUT
+          In_FINISHED                        -> 13 / Out_TIMEOUT
+          In_APPLICATION                     -> 9 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 13 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 13 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 13 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 9 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 9 / Out_TIMEOUT
+    10    In_ECDH_CLIENT_HELLO               -> 16 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 19 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_TIMEOUT
+          In_FINISHED                        -> 13 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_APPLICATION                     -> 10 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 13 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_EMPTY_CERTIFICATE               -> 13 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_CERTIFICATE_VERIFY              -> 13 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 9 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 9 / Out_TIMEOUT
+    11    In_ECDH_CLIENT_HELLO               -> 12 / Out_SERVER_HELLO_DONE
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 9 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_TIMEOUT
+          In_FINISHED                        -> 9 / Out_TIMEOUT
+          In_APPLICATION                     -> 11 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 9 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 9 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 9 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 11 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 11 / Out_TIMEOUT
+    12    In_ECDH_CLIENT_HELLO               -> 8 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 9 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_TIMEOUT
+          In_FINISHED                        -> 9 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_APPLICATION                     -> 12 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 29 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 9 / Out_Alert_FATAL_HANDSHAKE_FAILURE
+          In_CERTIFICATE_VERIFY              -> 9 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 11 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 11 / Out_TIMEOUT
+    13    In_ECDH_CLIENT_HELLO               -> 12 / Out_ECDHE_SERVER_KEY_EXCHANGE_CERTIFICATE_REQUEST_SERVER_HELLO_DONE
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 14 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_TIMEOUT
+          In_FINISHED                        -> 14 / Out_TIMEOUT
+          In_APPLICATION                     -> 13 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 14 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 14 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 14 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 13 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 13 / Out_TIMEOUT
+    14    In_ECDH_CLIENT_HELLO               -> 12 / Out_CERTIFICATE_ECDHE_SERVER_KEY_EXCHANGE_CERTIFICATE_REQUEST_SERVER_HELLO_DONE
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 1 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_TIMEOUT
+          In_FINISHED                        -> 1 / Out_TIMEOUT
+          In_APPLICATION                     -> 14 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 1 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 1 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 1 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 14 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 14 / Out_TIMEOUT
+    15    In_ECDH_CLIENT_HELLO               -> 6 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 4 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_TIMEOUT
+          In_FINISHED                        -> 4 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_APPLICATION                     -> 15 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 4 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_EMPTY_CERTIFICATE               -> 4 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_CERTIFICATE_VERIFY              -> 4 / Out_Alert_FATAL_HANDSHAKE_FAILURE
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    16    In_ECDH_CLIENT_HELLO               -> 17 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 17 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_TIMEOUT
+          In_FINISHED                        -> 17 / Out_TIMEOUT
+          In_APPLICATION                     -> 16 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 17 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 17 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 17 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 13 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 13 / Out_TIMEOUT
+    17    In_ECDH_CLIENT_HELLO               -> 18 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 18 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_TIMEOUT
+          In_FINISHED                        -> 18 / Out_TIMEOUT
+          In_APPLICATION                     -> 17 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 18 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 18 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 18 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 14 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 14 / Out_TIMEOUT
+    18    In_ECDH_CLIENT_HELLO               -> 6 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 6 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_TIMEOUT
+          In_FINISHED                        -> 6 / Out_TIMEOUT
+          In_APPLICATION                     -> 18 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 6 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 6 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 6 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 1 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 1 / Out_TIMEOUT
+    19    In_ECDH_CLIENT_HELLO               -> 17 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 14 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_TIMEOUT
+          In_FINISHED                        -> 14 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_APPLICATION                     -> 19 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 14 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_EMPTY_CERTIFICATE               -> 14 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_CERTIFICATE_VERIFY              -> 20 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 13 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 13 / Out_TIMEOUT
+    20    In_ECDH_CLIENT_HELLO               -> 21 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 1 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_CHANGE_CIPHER_SPEC              -> 22 / Out_TIMEOUT
+          In_FINISHED                        -> 1 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_APPLICATION                     -> 20 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 1 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_EMPTY_CERTIFICATE               -> 1 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_CERTIFICATE_VERIFY              -> 1 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 14 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 14 / Out_TIMEOUT
+    21    In_ECDH_CLIENT_HELLO               -> 26 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 27 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 28 / Out_TIMEOUT
+          In_FINISHED                        -> 27 / Out_TIMEOUT
+          In_APPLICATION                     -> 21 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 27 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 27 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 27 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 1 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 1 / Out_TIMEOUT
+    22    In_ECDH_CLIENT_HELLO               -> 2 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 2 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_FINISHED                        -> 23 / Out_CHANGE_CIPHER_SPEC_FINISHED
+          In_APPLICATION                     -> 24 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 2 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_EMPTY_CERTIFICATE               -> 2 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_CERTIFICATE_VERIFY              -> 2 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 2 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 2 / Out_TIMEOUT
+    23    In_ECDH_CLIENT_HELLO               -> 23 / Out_Alert_WARNING_NO_RENEGOTIATION
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 23 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_FINISHED                        -> 23 / Out_TIMEOUT
+          In_APPLICATION                     -> 25 / Out_APPLICATION
+          In_CERTIFICATE                     -> 23 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 23 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 23 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 2 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 2 / Out_TIMEOUT
+    24    In_ECDH_CLIENT_HELLO               -> 2 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 2 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_FINISHED                        -> 25 / Out_CHANGE_CIPHER_SPEC_FINISHED_APPLICATION
+          In_APPLICATION                     -> 24 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 2 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_EMPTY_CERTIFICATE               -> 2 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_CERTIFICATE_VERIFY              -> 2 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 2 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 2 / Out_TIMEOUT
+    25    In_ECDH_CLIENT_HELLO               -> 25 / Out_Alert_WARNING_NO_RENEGOTIATION
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 25 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_TIMEOUT
+          In_FINISHED                        -> 25 / Out_TIMEOUT
+          In_APPLICATION                     -> 25 / Out_APPLICATION
+          In_CERTIFICATE                     -> 25 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 25 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 25 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 2 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 2 / Out_TIMEOUT
+    26    In_ECDH_CLIENT_HELLO               -> 26 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 27 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 28 / Out_TIMEOUT
+          In_FINISHED                        -> 27 / Out_TIMEOUT
+          In_APPLICATION                     -> 26 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 27 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 27 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 27 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    27    In_ECDH_CLIENT_HELLO               -> 27 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 27 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_Alert_FATAL_HANDSHAKE_FAILURE
+          In_FINISHED                        -> 27 / Out_TIMEOUT
+          In_APPLICATION                     -> 27 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 27 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 27 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 27 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 4 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 4 / Out_TIMEOUT
+    28    In_ECDH_CLIENT_HELLO               -> 2 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 28 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_FINISHED                        -> 28 / Out_TIMEOUT
+          In_APPLICATION                     -> 28 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 28 / Out_TIMEOUT
+          In_EMPTY_CERTIFICATE               -> 28 / Out_TIMEOUT
+          In_CERTIFICATE_VERIFY              -> 28 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 2 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 2 / Out_TIMEOUT
+    29    In_ECDH_CLIENT_HELLO               -> 16 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 30 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_TIMEOUT
+          In_FINISHED                        -> 13 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_APPLICATION                     -> 29 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 13 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_EMPTY_CERTIFICATE               -> 13 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_CERTIFICATE_VERIFY              -> 13 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 9 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 9 / Out_TIMEOUT
+    30    In_ECDH_CLIENT_HELLO               -> 17 / Out_TIMEOUT
+          In_ECDH_CLIENT_KEY_EXCHANGE        -> 14 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_TIMEOUT
+          In_FINISHED                        -> 14 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_APPLICATION                     -> 30 / Out_TIMEOUT
+          In_CERTIFICATE                     -> 14 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_EMPTY_CERTIFICATE               -> 14 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_CERTIFICATE_VERIFY              -> 14 / Out_Alert_FATAL_HANDSHAKE_FAILURE
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 13 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 13 / Out_TIMEOUT
+-}
+scandiumV2V0V0EcdheCertReq :: MealyAutomaton Int ScandiumV2V0V0EcdheCertReqInput ScandiumV2V0V0EcdheCertReqOutput
+scandiumV2V0V0EcdheCertReq =
+    case mkMealyAutomatonTable 31 0 deltaTable lambdaTable of
+        Right m -> m
+        Left err -> error ("haal-gen: invalid transition table: " ++ err)
+  where
+    deltaTable =
+        "\1\2\2\2\0\2\2\2\0\0\
+        \\3\4\2\4\1\4\4\4\1\1\
+        \\2\2\2\2\2\2\2\2\2\2\
+        \\8\9\2\9\3\10\9\9\11\11\
+        \\5\4\2\4\4\4\4\4\4\4\
+        \\6\4\2\4\5\7\4\4\4\4\
+        \\6\6\2\6\6\6\6\6\4\4\
+        \\6\15\2\4\7\4\4\4\4\4\
+        \\16\16\2\16\8\16\16\16\9\9\
+        \\12\13\2\13\9\13\13\13\9\9\
+        \\16\19\2\13\10\13\13\13\9\9\
+        \\12\9\2\9\11\9\9\9\11\11\
+        \\8\9\2\9\12\29\9\9\11\11\
+        \\12\14\2\14\13\14\14\14\13\13\
+        \\12\1\2\1\14\1\1\1\14\14\
+        \\6\4\2\4\15\4\4\4\4\4\
+        \\17\17\2\17\16\17\17\17\13\13\
+        \\18\18\2\18\17\18\18\18\14\14\
+        \\6\6\2\6\18\6\6\6\1\1\
+        \\17\14\2\14\19\14\14\20\13\13\
+        \\21\1\22\1\20\1\1\1\14\14\
+        \\26\27\28\27\21\27\27\27\1\1\
+        \\2\2\2\23\24\2\2\2\2\2\
+        \\23\23\2\23\25\23\23\23\2\2\
+        \\2\2\2\25\24\2\2\2\2\2\
+        \\25\25\2\25\25\25\25\25\2\2\
+        \\26\27\28\27\26\27\27\27\4\4\
+        \\27\27\2\27\27\27\27\27\4\4\
+        \\2\28\2\28\28\28\28\28\2\2\
+        \\16\30\2\13\29\13\13\13\9\9\
+        \\17\14\2\14\30\14\14\14\13\13"
+    lambdaTable =
+        "\0\1\1\1\1\1\1\1\1\1\
+        \\2\1\1\1\1\1\1\1\1\1\
+        \\1\1\1\1\1\1\1\1\1\1\
+        \\1\3\1\3\1\1\4\3\5\1\
+        \\1\1\1\1\1\1\1\1\1\1\
+        \\1\3\1\3\1\1\4\3\5\1\
+        \\1\1\1\1\1\1\1\1\5\1\
+        \\1\1\1\3\1\3\3\3\5\1\
+        \\1\1\1\1\1\1\1\1\5\1\
+        \\7\1\1\1\1\1\1\1\1\1\
+        \\1\1\1\3\1\3\3\3\5\1\
+        \\6\1\1\1\1\1\1\1\1\1\
+        \\1\3\1\3\1\1\4\3\5\1\
+        \\8\1\1\1\1\1\1\1\1\1\
+        \\9\1\1\1\1\1\1\1\1\1\
+        \\1\3\1\3\1\3\3\4\5\1\
+        \\1\1\1\1\1\1\1\1\5\1\
+        \\1\1\1\1\1\1\1\1\5\1\
+        \\1\1\1\1\1\1\1\1\5\1\
+        \\1\3\1\3\1\3\3\1\5\1\
+        \\1\3\1\3\1\3\3\3\5\1\
+        \\1\1\1\1\1\1\1\1\5\1\
+        \\3\3\3\10\1\3\3\3\5\1\
+        \\11\1\3\1\12\1\1\1\5\1\
+        \\3\3\3\13\1\3\3\3\5\1\
+        \\11\1\1\1\12\1\1\1\5\1\
+        \\1\1\1\1\1\1\1\1\5\1\
+        \\1\1\4\1\1\1\1\1\5\1\
+        \\3\1\3\1\1\1\1\1\5\1\
+        \\1\1\1\3\1\3\3\3\5\1\
+        \\1\3\1\3\1\3\3\4\5\1"
diff --git a/src/Haal/Models/DTLS/ScandiumV2V0V0Psk.hs b/src/Haal/Models/DTLS/ScandiumV2V0V0Psk.hs
--- a/src/Haal/Models/DTLS/ScandiumV2V0V0Psk.hs
+++ b/src/Haal/Models/DTLS/ScandiumV2V0V0Psk.hs
@@ -5,8 +5,7 @@
     , scandiumV2V0V0Psk
     ) where
 
-import qualified Data.Set as Set
-import Haal.Automaton.MealyAutomaton (MealyAutomaton, mkMealyAutomaton)
+import Haal.Automaton.MealyAutomaton (MealyAutomaton, mkMealyAutomatonTable)
 
 data ScandiumV2V0V0PskInput
     = In_PSK_CLIENT_HELLO
@@ -30,232 +29,157 @@
     | Out_APPLICATION
     deriving (Show, Eq, Ord, Enum, Bounded)
 
+{- Transitions (state  input -> next state / output):
+    0     In_PSK_CLIENT_HELLO                -> 1 / Out_HELLO_VERIFY_REQUEST
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 0 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_TIMEOUT
+          In_FINISHED                        -> 0 / Out_TIMEOUT
+          In_APPLICATION                     -> 0 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 0 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 0 / Out_TIMEOUT
+    1     In_PSK_CLIENT_HELLO                -> 3 / Out_SERVER_HELLO_SERVER_HELLO_DONE
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 1 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_TIMEOUT
+          In_FINISHED                        -> 1 / Out_TIMEOUT
+          In_APPLICATION                     -> 1 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 1 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 1 / Out_TIMEOUT
+    2     In_PSK_CLIENT_HELLO                -> 2 / Out_TIMEOUT
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 2 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_TIMEOUT
+          In_FINISHED                        -> 2 / Out_TIMEOUT
+          In_APPLICATION                     -> 2 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 2 / Out_TIMEOUT
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 2 / Out_TIMEOUT
+    3     In_PSK_CLIENT_HELLO                -> 3 / Out_SERVER_HELLO_SERVER_HELLO_DONE
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 4 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_TIMEOUT
+          In_FINISHED                        -> 1 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_APPLICATION                     -> 3 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 1 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 1 / Out_TIMEOUT
+    4     In_PSK_CLIENT_HELLO                -> 5 / Out_SERVER_HELLO_SERVER_HELLO_DONE
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 1 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_CHANGE_CIPHER_SPEC              -> 6 / Out_TIMEOUT
+          In_FINISHED                        -> 7 / Out_CHANGE_CIPHER_SPEC_FINISHED
+          In_APPLICATION                     -> 8 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 1 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 1 / Out_TIMEOUT
+    5     In_PSK_CLIENT_HELLO                -> 5 / Out_SERVER_HELLO_SERVER_HELLO_DONE
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 4 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 14 / Out_TIMEOUT
+          In_FINISHED                        -> 1 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_APPLICATION                     -> 9 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 1 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 1 / Out_TIMEOUT
+    6     In_PSK_CLIENT_HELLO                -> 2 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 2 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_CHANGE_CIPHER_SPEC              -> 6 / Out_TIMEOUT
+          In_FINISHED                        -> 11 / Out_CHANGE_CIPHER_SPEC_FINISHED
+          In_APPLICATION                     -> 12 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 2 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 2 / Out_TIMEOUT
+    7     In_PSK_CLIENT_HELLO                -> 7 / Out_TIMEOUT
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 7 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_CHANGE_CIPHER_SPEC_FINISHED
+          In_FINISHED                        -> 7 / Out_TIMEOUT
+          In_APPLICATION                     -> 10 / Out_APPLICATION
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 1 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 1 / Out_TIMEOUT
+    8     In_PSK_CLIENT_HELLO                -> 9 / Out_SERVER_HELLO_SERVER_HELLO_DONE
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 1 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_CHANGE_CIPHER_SPEC              -> 6 / Out_TIMEOUT
+          In_FINISHED                        -> 10 / Out_CHANGE_CIPHER_SPEC_FINISHED_APPLICATION
+          In_APPLICATION                     -> 8 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 1 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 1 / Out_TIMEOUT
+    9     In_PSK_CLIENT_HELLO                -> 9 / Out_SERVER_HELLO_SERVER_HELLO_DONE
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 8 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 14 / Out_TIMEOUT
+          In_FINISHED                        -> 1 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_APPLICATION                     -> 9 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 1 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 1 / Out_TIMEOUT
+    10    In_PSK_CLIENT_HELLO                -> 10 / Out_TIMEOUT
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 10 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_TIMEOUT
+          In_FINISHED                        -> 10 / Out_TIMEOUT
+          In_APPLICATION                     -> 10 / Out_APPLICATION
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 1 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 1 / Out_TIMEOUT
+    11    In_PSK_CLIENT_HELLO                -> 11 / Out_Alert_WARNING_NO_RENEGOTIATION
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 11 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_CHANGE_CIPHER_SPEC_FINISHED
+          In_FINISHED                        -> 11 / Out_TIMEOUT
+          In_APPLICATION                     -> 13 / Out_APPLICATION
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 2 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 2 / Out_TIMEOUT
+    12    In_PSK_CLIENT_HELLO                -> 2 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 2 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_CHANGE_CIPHER_SPEC              -> 6 / Out_TIMEOUT
+          In_FINISHED                        -> 13 / Out_CHANGE_CIPHER_SPEC_FINISHED_APPLICATION
+          In_APPLICATION                     -> 12 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 2 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 2 / Out_TIMEOUT
+    13    In_PSK_CLIENT_HELLO                -> 13 / Out_Alert_WARNING_NO_RENEGOTIATION
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 13 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 2 / Out_TIMEOUT
+          In_FINISHED                        -> 13 / Out_TIMEOUT
+          In_APPLICATION                     -> 13 / Out_APPLICATION
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 2 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 2 / Out_TIMEOUT
+    14    In_PSK_CLIENT_HELLO                -> 2 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 6 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 14 / Out_TIMEOUT
+          In_FINISHED                        -> 2 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_APPLICATION                     -> 15 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 2 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 2 / Out_TIMEOUT
+    15    In_PSK_CLIENT_HELLO                -> 2 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_PSK_CLIENT_KEY_EXCHANGE         -> 12 / Out_TIMEOUT
+          In_CHANGE_CIPHER_SPEC              -> 14 / Out_TIMEOUT
+          In_FINISHED                        -> 2 / Out_Alert_FATAL_INTERNAL_ERROR
+          In_APPLICATION                     -> 15 / Out_TIMEOUT
+          In_Alert_WARNING_CLOSE_NOTIFY      -> 2 / Out_Alert_WARNING_CLOSE_NOTIFY
+          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 2 / Out_TIMEOUT
+-}
 scandiumV2V0V0Psk :: MealyAutomaton Int ScandiumV2V0V0PskInput ScandiumV2V0V0PskOutput
-scandiumV2V0V0Psk = mkMealyAutomaton delta lambda (Set.fromList [0..15]) 0
+scandiumV2V0V0Psk =
+    case mkMealyAutomatonTable 16 0 deltaTable lambdaTable of
+        Right m -> m
+        Left err -> error ("haal-gen: invalid transition table: " ++ err)
   where
-    delta 0 In_PSK_CLIENT_HELLO = 1
-    delta 0 In_PSK_CLIENT_KEY_EXCHANGE = 0
-    delta 0 In_CHANGE_CIPHER_SPEC = 2
-    delta 0 In_FINISHED = 0
-    delta 0 In_APPLICATION = 0
-    delta 0 In_Alert_WARNING_CLOSE_NOTIFY = 0
-    delta 0 In_Alert_FATAL_UNEXPECTED_MESSAGE = 0
-    delta 2 In_PSK_CLIENT_HELLO = 2
-    delta 2 In_PSK_CLIENT_KEY_EXCHANGE = 2
-    delta 2 In_CHANGE_CIPHER_SPEC = 2
-    delta 2 In_FINISHED = 2
-    delta 2 In_APPLICATION = 2
-    delta 2 In_Alert_WARNING_CLOSE_NOTIFY = 2
-    delta 2 In_Alert_FATAL_UNEXPECTED_MESSAGE = 2
-    delta 1 In_PSK_CLIENT_HELLO = 3
-    delta 1 In_PSK_CLIENT_KEY_EXCHANGE = 1
-    delta 1 In_CHANGE_CIPHER_SPEC = 2
-    delta 1 In_FINISHED = 1
-    delta 1 In_APPLICATION = 1
-    delta 1 In_Alert_WARNING_CLOSE_NOTIFY = 1
-    delta 1 In_Alert_FATAL_UNEXPECTED_MESSAGE = 1
-    delta 3 In_PSK_CLIENT_HELLO = 3
-    delta 3 In_PSK_CLIENT_KEY_EXCHANGE = 4
-    delta 3 In_CHANGE_CIPHER_SPEC = 2
-    delta 3 In_FINISHED = 1
-    delta 3 In_APPLICATION = 3
-    delta 3 In_Alert_WARNING_CLOSE_NOTIFY = 1
-    delta 3 In_Alert_FATAL_UNEXPECTED_MESSAGE = 1
-    delta 4 In_PSK_CLIENT_HELLO = 5
-    delta 4 In_PSK_CLIENT_KEY_EXCHANGE = 1
-    delta 4 In_CHANGE_CIPHER_SPEC = 6
-    delta 4 In_FINISHED = 7
-    delta 4 In_APPLICATION = 8
-    delta 4 In_Alert_WARNING_CLOSE_NOTIFY = 1
-    delta 4 In_Alert_FATAL_UNEXPECTED_MESSAGE = 1
-    delta 8 In_PSK_CLIENT_HELLO = 9
-    delta 8 In_PSK_CLIENT_KEY_EXCHANGE = 1
-    delta 8 In_CHANGE_CIPHER_SPEC = 6
-    delta 8 In_FINISHED = 10
-    delta 8 In_APPLICATION = 8
-    delta 8 In_Alert_WARNING_CLOSE_NOTIFY = 1
-    delta 8 In_Alert_FATAL_UNEXPECTED_MESSAGE = 1
-    delta 6 In_PSK_CLIENT_HELLO = 2
-    delta 6 In_PSK_CLIENT_KEY_EXCHANGE = 2
-    delta 6 In_CHANGE_CIPHER_SPEC = 6
-    delta 6 In_FINISHED = 11
-    delta 6 In_APPLICATION = 12
-    delta 6 In_Alert_WARNING_CLOSE_NOTIFY = 2
-    delta 6 In_Alert_FATAL_UNEXPECTED_MESSAGE = 2
-    delta 11 In_PSK_CLIENT_HELLO = 11
-    delta 11 In_PSK_CLIENT_KEY_EXCHANGE = 11
-    delta 11 In_CHANGE_CIPHER_SPEC = 2
-    delta 11 In_FINISHED = 11
-    delta 11 In_APPLICATION = 13
-    delta 11 In_Alert_WARNING_CLOSE_NOTIFY = 2
-    delta 11 In_Alert_FATAL_UNEXPECTED_MESSAGE = 2
-    delta 5 In_PSK_CLIENT_HELLO = 5
-    delta 5 In_PSK_CLIENT_KEY_EXCHANGE = 4
-    delta 5 In_CHANGE_CIPHER_SPEC = 14
-    delta 5 In_FINISHED = 1
-    delta 5 In_APPLICATION = 9
-    delta 5 In_Alert_WARNING_CLOSE_NOTIFY = 1
-    delta 5 In_Alert_FATAL_UNEXPECTED_MESSAGE = 1
-    delta 10 In_PSK_CLIENT_HELLO = 10
-    delta 10 In_PSK_CLIENT_KEY_EXCHANGE = 10
-    delta 10 In_CHANGE_CIPHER_SPEC = 2
-    delta 10 In_FINISHED = 10
-    delta 10 In_APPLICATION = 10
-    delta 10 In_Alert_WARNING_CLOSE_NOTIFY = 1
-    delta 10 In_Alert_FATAL_UNEXPECTED_MESSAGE = 1
-    delta 13 In_PSK_CLIENT_HELLO = 13
-    delta 13 In_PSK_CLIENT_KEY_EXCHANGE = 13
-    delta 13 In_CHANGE_CIPHER_SPEC = 2
-    delta 13 In_FINISHED = 13
-    delta 13 In_APPLICATION = 13
-    delta 13 In_Alert_WARNING_CLOSE_NOTIFY = 2
-    delta 13 In_Alert_FATAL_UNEXPECTED_MESSAGE = 2
-    delta 14 In_PSK_CLIENT_HELLO = 2
-    delta 14 In_PSK_CLIENT_KEY_EXCHANGE = 6
-    delta 14 In_CHANGE_CIPHER_SPEC = 14
-    delta 14 In_FINISHED = 2
-    delta 14 In_APPLICATION = 15
-    delta 14 In_Alert_WARNING_CLOSE_NOTIFY = 2
-    delta 14 In_Alert_FATAL_UNEXPECTED_MESSAGE = 2
-    delta 7 In_PSK_CLIENT_HELLO = 7
-    delta 7 In_PSK_CLIENT_KEY_EXCHANGE = 7
-    delta 7 In_CHANGE_CIPHER_SPEC = 2
-    delta 7 In_FINISHED = 7
-    delta 7 In_APPLICATION = 10
-    delta 7 In_Alert_WARNING_CLOSE_NOTIFY = 1
-    delta 7 In_Alert_FATAL_UNEXPECTED_MESSAGE = 1
-    delta 12 In_PSK_CLIENT_HELLO = 2
-    delta 12 In_PSK_CLIENT_KEY_EXCHANGE = 2
-    delta 12 In_CHANGE_CIPHER_SPEC = 6
-    delta 12 In_FINISHED = 13
-    delta 12 In_APPLICATION = 12
-    delta 12 In_Alert_WARNING_CLOSE_NOTIFY = 2
-    delta 12 In_Alert_FATAL_UNEXPECTED_MESSAGE = 2
-    delta 9 In_PSK_CLIENT_HELLO = 9
-    delta 9 In_PSK_CLIENT_KEY_EXCHANGE = 8
-    delta 9 In_CHANGE_CIPHER_SPEC = 14
-    delta 9 In_FINISHED = 1
-    delta 9 In_APPLICATION = 9
-    delta 9 In_Alert_WARNING_CLOSE_NOTIFY = 1
-    delta 9 In_Alert_FATAL_UNEXPECTED_MESSAGE = 1
-    delta 15 In_PSK_CLIENT_HELLO = 2
-    delta 15 In_PSK_CLIENT_KEY_EXCHANGE = 12
-    delta 15 In_CHANGE_CIPHER_SPEC = 14
-    delta 15 In_FINISHED = 2
-    delta 15 In_APPLICATION = 15
-    delta 15 In_Alert_WARNING_CLOSE_NOTIFY = 2
-    delta 15 In_Alert_FATAL_UNEXPECTED_MESSAGE = 2
-    delta _ _ = error "haal-gen: undefined transition"
-    lambda 0 In_PSK_CLIENT_HELLO = Out_HELLO_VERIFY_REQUEST
-    lambda 0 In_PSK_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 0 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 0 In_FINISHED = Out_TIMEOUT
-    lambda 0 In_APPLICATION = Out_TIMEOUT
-    lambda 0 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 0 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 2 In_PSK_CLIENT_HELLO = Out_TIMEOUT
-    lambda 2 In_PSK_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 2 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 2 In_FINISHED = Out_TIMEOUT
-    lambda 2 In_APPLICATION = Out_TIMEOUT
-    lambda 2 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 2 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 1 In_PSK_CLIENT_HELLO = Out_SERVER_HELLO_SERVER_HELLO_DONE
-    lambda 1 In_PSK_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 1 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 1 In_FINISHED = Out_TIMEOUT
-    lambda 1 In_APPLICATION = Out_TIMEOUT
-    lambda 1 In_Alert_WARNING_CLOSE_NOTIFY = Out_TIMEOUT
-    lambda 1 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 3 In_PSK_CLIENT_HELLO = Out_SERVER_HELLO_SERVER_HELLO_DONE
-    lambda 3 In_PSK_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 3 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 3 In_FINISHED = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 3 In_APPLICATION = Out_TIMEOUT
-    lambda 3 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 3 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 4 In_PSK_CLIENT_HELLO = Out_SERVER_HELLO_SERVER_HELLO_DONE
-    lambda 4 In_PSK_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 4 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 4 In_FINISHED = Out_CHANGE_CIPHER_SPEC_FINISHED
-    lambda 4 In_APPLICATION = Out_TIMEOUT
-    lambda 4 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 4 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 8 In_PSK_CLIENT_HELLO = Out_SERVER_HELLO_SERVER_HELLO_DONE
-    lambda 8 In_PSK_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 8 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 8 In_FINISHED = Out_CHANGE_CIPHER_SPEC_FINISHED_APPLICATION
-    lambda 8 In_APPLICATION = Out_TIMEOUT
-    lambda 8 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 8 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 6 In_PSK_CLIENT_HELLO = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 6 In_PSK_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 6 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 6 In_FINISHED = Out_CHANGE_CIPHER_SPEC_FINISHED
-    lambda 6 In_APPLICATION = Out_TIMEOUT
-    lambda 6 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 6 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 11 In_PSK_CLIENT_HELLO = Out_Alert_WARNING_NO_RENEGOTIATION
-    lambda 11 In_PSK_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 11 In_CHANGE_CIPHER_SPEC = Out_CHANGE_CIPHER_SPEC_FINISHED
-    lambda 11 In_FINISHED = Out_TIMEOUT
-    lambda 11 In_APPLICATION = Out_APPLICATION
-    lambda 11 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 11 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 5 In_PSK_CLIENT_HELLO = Out_SERVER_HELLO_SERVER_HELLO_DONE
-    lambda 5 In_PSK_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 5 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 5 In_FINISHED = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 5 In_APPLICATION = Out_TIMEOUT
-    lambda 5 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 5 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 10 In_PSK_CLIENT_HELLO = Out_TIMEOUT
-    lambda 10 In_PSK_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 10 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 10 In_FINISHED = Out_TIMEOUT
-    lambda 10 In_APPLICATION = Out_APPLICATION
-    lambda 10 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 10 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 13 In_PSK_CLIENT_HELLO = Out_Alert_WARNING_NO_RENEGOTIATION
-    lambda 13 In_PSK_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 13 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 13 In_FINISHED = Out_TIMEOUT
-    lambda 13 In_APPLICATION = Out_APPLICATION
-    lambda 13 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 13 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 14 In_PSK_CLIENT_HELLO = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 14 In_PSK_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 14 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 14 In_FINISHED = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 14 In_APPLICATION = Out_TIMEOUT
-    lambda 14 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 14 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 7 In_PSK_CLIENT_HELLO = Out_TIMEOUT
-    lambda 7 In_PSK_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 7 In_CHANGE_CIPHER_SPEC = Out_CHANGE_CIPHER_SPEC_FINISHED
-    lambda 7 In_FINISHED = Out_TIMEOUT
-    lambda 7 In_APPLICATION = Out_APPLICATION
-    lambda 7 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 7 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 12 In_PSK_CLIENT_HELLO = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 12 In_PSK_CLIENT_KEY_EXCHANGE = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 12 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 12 In_FINISHED = Out_CHANGE_CIPHER_SPEC_FINISHED_APPLICATION
-    lambda 12 In_APPLICATION = Out_TIMEOUT
-    lambda 12 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 12 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 9 In_PSK_CLIENT_HELLO = Out_SERVER_HELLO_SERVER_HELLO_DONE
-    lambda 9 In_PSK_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 9 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 9 In_FINISHED = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 9 In_APPLICATION = Out_TIMEOUT
-    lambda 9 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 9 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda 15 In_PSK_CLIENT_HELLO = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 15 In_PSK_CLIENT_KEY_EXCHANGE = Out_TIMEOUT
-    lambda 15 In_CHANGE_CIPHER_SPEC = Out_TIMEOUT
-    lambda 15 In_FINISHED = Out_Alert_FATAL_INTERNAL_ERROR
-    lambda 15 In_APPLICATION = Out_TIMEOUT
-    lambda 15 In_Alert_WARNING_CLOSE_NOTIFY = Out_Alert_WARNING_CLOSE_NOTIFY
-    lambda 15 In_Alert_FATAL_UNEXPECTED_MESSAGE = Out_TIMEOUT
-    lambda _ _ = error "haal-gen: undefined transition"
+    deltaTable =
+        "\1\0\2\0\0\0\0\
+        \\3\1\2\1\1\1\1\
+        \\2\2\2\2\2\2\2\
+        \\3\4\2\1\3\1\1\
+        \\5\1\6\7\8\1\1\
+        \\5\4\14\1\9\1\1\
+        \\2\2\6\11\12\2\2\
+        \\7\7\2\7\10\1\1\
+        \\9\1\6\10\8\1\1\
+        \\9\8\14\1\9\1\1\
+        \\10\10\2\10\10\1\1\
+        \\11\11\2\11\13\2\2\
+        \\2\2\6\13\12\2\2\
+        \\13\13\2\13\13\2\2\
+        \\2\6\14\2\15\2\2\
+        \\2\12\14\2\15\2\2"
+    lambdaTable =
+        "\0\1\1\1\1\1\1\
+        \\2\1\1\1\1\1\1\
+        \\1\1\1\1\1\1\1\
+        \\2\1\1\3\1\4\1\
+        \\2\3\1\5\1\4\1\
+        \\2\1\1\3\1\4\1\
+        \\3\3\1\5\1\4\1\
+        \\1\1\5\1\8\4\1\
+        \\2\3\1\6\1\4\1\
+        \\2\1\1\3\1\4\1\
+        \\1\1\1\1\8\4\1\
+        \\7\1\5\1\8\4\1\
+        \\3\3\1\6\1\4\1\
+        \\7\1\1\1\8\4\1\
+        \\3\1\1\3\1\4\1\
+        \\3\1\1\3\1\4\1"
diff --git a/src/Haal/Models/MQTT/ActiveMQInvalid.hs b/src/Haal/Models/MQTT/ActiveMQInvalid.hs
--- a/src/Haal/Models/MQTT/ActiveMQInvalid.hs
+++ b/src/Haal/Models/MQTT/ActiveMQInvalid.hs
@@ -5,8 +5,7 @@
     , activeMQInvalid
     ) where
 
-import qualified Data.Set as Set
-import Haal.Automaton.MealyAutomaton (MealyAutomaton, mkMealyAutomaton)
+import Haal.Automaton.MealyAutomaton (MealyAutomaton, mkMealyAutomatonTable)
 
 data ActiveMQInvalidInput
     = In_Connect
@@ -33,118 +32,78 @@
     | Out_Pub_my_topic_messageQos0
     deriving (Show, Eq, Ord, Enum, Bounded)
 
+{- Transitions (state  input -> next state / output):
+    0     In_Connect               -> 1 / Out_ConnAckPacket_false_0
+          In_ConnectNonClean       -> 0 / Out_ConnectionClosed__ConnAckPacket_false_2
+          In_PublishQoS0Dup        -> 0 / Out_ConnectionClosed
+          In_PublishQoSMinus1      -> 0 / Out_ConnectionClosed
+          In_PublishWildCard       -> 0 / Out_ConnectionClosed
+          In_SubscribeWildMatch    -> 0 / Out_ConnectionClosed
+          In_UnSubscribeWildMatch  -> 0 / Out_ConnectionClosed
+          In_Subscribe             -> 0 / Out_ConnectionClosed
+          In_SubscribeMinus1       -> 0 / Out_ConnectionClosed
+          In_UnSubScribe           -> 0 / Out_ConnectionClosed
+          In_Disconnect            -> 0 / Out_ConnectionClosed
+    1     In_Connect               -> 0 / Out_ConnectionClosed
+          In_ConnectNonClean       -> 0 / Out_ConnectionClosed
+          In_PublishQoS0Dup        -> 1 / Out_Empty
+          In_PublishQoSMinus1      -> 0 / Out_ConnectionClosed
+          In_PublishWildCard       -> 1 / Out_Empty
+          In_SubscribeWildMatch    -> 2 / Out_SubAck
+          In_UnSubscribeWildMatch  -> 1 / Out_UnSubAck
+          In_Subscribe             -> 3 / Out_SubAck
+          In_SubscribeMinus1       -> 0 / Out_ConnectionClosed
+          In_UnSubScribe           -> 1 / Out_UnSubAck
+          In_Disconnect            -> 0 / Out_ConnectionClosed
+    2     In_Connect               -> 0 / Out_ConnectionClosed
+          In_ConnectNonClean       -> 0 / Out_ConnectionClosed
+          In_PublishQoS0Dup        -> 2 / Out_Empty
+          In_PublishQoSMinus1      -> 0 / Out_ConnectionClosed
+          In_PublishWildCard       -> 2 / Out_Pub_wild___match
+          In_SubscribeWildMatch    -> 2 / Out_SubAck
+          In_UnSubscribeWildMatch  -> 1 / Out_UnSubAck
+          In_Subscribe             -> 4 / Out_SubAck
+          In_SubscribeMinus1       -> 0 / Out_ConnectionClosed
+          In_UnSubScribe           -> 2 / Out_UnSubAck
+          In_Disconnect            -> 0 / Out_ConnectionClosed
+    3     In_Connect               -> 0 / Out_ConnectionClosed
+          In_ConnectNonClean       -> 0 / Out_ConnectionClosed
+          In_PublishQoS0Dup        -> 3 / Out_Pub_my_topic_messageQos0
+          In_PublishQoSMinus1      -> 0 / Out_ConnectionClosed
+          In_PublishWildCard       -> 3 / Out_Empty
+          In_SubscribeWildMatch    -> 4 / Out_SubAck
+          In_UnSubscribeWildMatch  -> 3 / Out_UnSubAck
+          In_Subscribe             -> 3 / Out_SubAck
+          In_SubscribeMinus1       -> 0 / Out_ConnectionClosed
+          In_UnSubScribe           -> 1 / Out_UnSubAck
+          In_Disconnect            -> 0 / Out_ConnectionClosed
+    4     In_Connect               -> 0 / Out_ConnectionClosed
+          In_ConnectNonClean       -> 0 / Out_ConnectionClosed
+          In_PublishQoS0Dup        -> 4 / Out_Pub_my_topic_messageQos0
+          In_PublishQoSMinus1      -> 0 / Out_ConnectionClosed
+          In_PublishWildCard       -> 4 / Out_Pub_wild___match
+          In_SubscribeWildMatch    -> 4 / Out_SubAck
+          In_UnSubscribeWildMatch  -> 3 / Out_UnSubAck
+          In_Subscribe             -> 4 / Out_SubAck
+          In_SubscribeMinus1       -> 0 / Out_ConnectionClosed
+          In_UnSubScribe           -> 2 / Out_UnSubAck
+          In_Disconnect            -> 0 / Out_ConnectionClosed
+-}
 activeMQInvalid :: MealyAutomaton Int ActiveMQInvalidInput ActiveMQInvalidOutput
-activeMQInvalid = mkMealyAutomaton delta lambda (Set.fromList [0..4]) 0
+activeMQInvalid =
+    case mkMealyAutomatonTable 5 0 deltaTable lambdaTable of
+        Right m -> m
+        Left err -> error ("haal-gen: invalid transition table: " ++ err)
   where
-    delta 0 In_Connect = 1
-    delta 0 In_ConnectNonClean = 0
-    delta 0 In_PublishQoS0Dup = 0
-    delta 0 In_PublishQoSMinus1 = 0
-    delta 0 In_PublishWildCard = 0
-    delta 0 In_SubscribeWildMatch = 0
-    delta 0 In_UnSubscribeWildMatch = 0
-    delta 0 In_Subscribe = 0
-    delta 0 In_SubscribeMinus1 = 0
-    delta 0 In_UnSubScribe = 0
-    delta 0 In_Disconnect = 0
-    delta 1 In_Connect = 0
-    delta 1 In_ConnectNonClean = 0
-    delta 1 In_PublishQoS0Dup = 1
-    delta 1 In_PublishQoSMinus1 = 0
-    delta 1 In_PublishWildCard = 1
-    delta 1 In_SubscribeWildMatch = 2
-    delta 1 In_UnSubscribeWildMatch = 1
-    delta 1 In_Subscribe = 3
-    delta 1 In_SubscribeMinus1 = 0
-    delta 1 In_UnSubScribe = 1
-    delta 1 In_Disconnect = 0
-    delta 2 In_Connect = 0
-    delta 2 In_ConnectNonClean = 0
-    delta 2 In_PublishQoS0Dup = 2
-    delta 2 In_PublishQoSMinus1 = 0
-    delta 2 In_PublishWildCard = 2
-    delta 2 In_SubscribeWildMatch = 2
-    delta 2 In_UnSubscribeWildMatch = 1
-    delta 2 In_Subscribe = 4
-    delta 2 In_SubscribeMinus1 = 0
-    delta 2 In_UnSubScribe = 2
-    delta 2 In_Disconnect = 0
-    delta 3 In_Connect = 0
-    delta 3 In_ConnectNonClean = 0
-    delta 3 In_PublishQoS0Dup = 3
-    delta 3 In_PublishQoSMinus1 = 0
-    delta 3 In_PublishWildCard = 3
-    delta 3 In_SubscribeWildMatch = 4
-    delta 3 In_UnSubscribeWildMatch = 3
-    delta 3 In_Subscribe = 3
-    delta 3 In_SubscribeMinus1 = 0
-    delta 3 In_UnSubScribe = 1
-    delta 3 In_Disconnect = 0
-    delta 4 In_Connect = 0
-    delta 4 In_ConnectNonClean = 0
-    delta 4 In_PublishQoS0Dup = 4
-    delta 4 In_PublishQoSMinus1 = 0
-    delta 4 In_PublishWildCard = 4
-    delta 4 In_SubscribeWildMatch = 4
-    delta 4 In_UnSubscribeWildMatch = 3
-    delta 4 In_Subscribe = 4
-    delta 4 In_SubscribeMinus1 = 0
-    delta 4 In_UnSubScribe = 2
-    delta 4 In_Disconnect = 0
-    delta _ _ = error "haal-gen: undefined transition"
-    lambda 0 In_Connect = Out_ConnAckPacket_false_0
-    lambda 0 In_ConnectNonClean = Out_ConnectionClosed__ConnAckPacket_false_2
-    lambda 0 In_PublishQoS0Dup = Out_ConnectionClosed
-    lambda 0 In_PublishQoSMinus1 = Out_ConnectionClosed
-    lambda 0 In_PublishWildCard = Out_ConnectionClosed
-    lambda 0 In_SubscribeWildMatch = Out_ConnectionClosed
-    lambda 0 In_UnSubscribeWildMatch = Out_ConnectionClosed
-    lambda 0 In_Subscribe = Out_ConnectionClosed
-    lambda 0 In_SubscribeMinus1 = Out_ConnectionClosed
-    lambda 0 In_UnSubScribe = Out_ConnectionClosed
-    lambda 0 In_Disconnect = Out_ConnectionClosed
-    lambda 1 In_Connect = Out_ConnectionClosed
-    lambda 1 In_ConnectNonClean = Out_ConnectionClosed
-    lambda 1 In_PublishQoS0Dup = Out_Empty
-    lambda 1 In_PublishQoSMinus1 = Out_ConnectionClosed
-    lambda 1 In_PublishWildCard = Out_Empty
-    lambda 1 In_SubscribeWildMatch = Out_SubAck
-    lambda 1 In_UnSubscribeWildMatch = Out_UnSubAck
-    lambda 1 In_Subscribe = Out_SubAck
-    lambda 1 In_SubscribeMinus1 = Out_ConnectionClosed
-    lambda 1 In_UnSubScribe = Out_UnSubAck
-    lambda 1 In_Disconnect = Out_ConnectionClosed
-    lambda 2 In_Connect = Out_ConnectionClosed
-    lambda 2 In_ConnectNonClean = Out_ConnectionClosed
-    lambda 2 In_PublishQoS0Dup = Out_Empty
-    lambda 2 In_PublishQoSMinus1 = Out_ConnectionClosed
-    lambda 2 In_PublishWildCard = Out_Pub_wild___match
-    lambda 2 In_SubscribeWildMatch = Out_SubAck
-    lambda 2 In_UnSubscribeWildMatch = Out_UnSubAck
-    lambda 2 In_Subscribe = Out_SubAck
-    lambda 2 In_SubscribeMinus1 = Out_ConnectionClosed
-    lambda 2 In_UnSubScribe = Out_UnSubAck
-    lambda 2 In_Disconnect = Out_ConnectionClosed
-    lambda 3 In_Connect = Out_ConnectionClosed
-    lambda 3 In_ConnectNonClean = Out_ConnectionClosed
-    lambda 3 In_PublishQoS0Dup = Out_Pub_my_topic_messageQos0
-    lambda 3 In_PublishQoSMinus1 = Out_ConnectionClosed
-    lambda 3 In_PublishWildCard = Out_Empty
-    lambda 3 In_SubscribeWildMatch = Out_SubAck
-    lambda 3 In_UnSubscribeWildMatch = Out_UnSubAck
-    lambda 3 In_Subscribe = Out_SubAck
-    lambda 3 In_SubscribeMinus1 = Out_ConnectionClosed
-    lambda 3 In_UnSubScribe = Out_UnSubAck
-    lambda 3 In_Disconnect = Out_ConnectionClosed
-    lambda 4 In_Connect = Out_ConnectionClosed
-    lambda 4 In_ConnectNonClean = Out_ConnectionClosed
-    lambda 4 In_PublishQoS0Dup = Out_Pub_my_topic_messageQos0
-    lambda 4 In_PublishQoSMinus1 = Out_ConnectionClosed
-    lambda 4 In_PublishWildCard = Out_Pub_wild___match
-    lambda 4 In_SubscribeWildMatch = Out_SubAck
-    lambda 4 In_UnSubscribeWildMatch = Out_UnSubAck
-    lambda 4 In_Subscribe = Out_SubAck
-    lambda 4 In_SubscribeMinus1 = Out_ConnectionClosed
-    lambda 4 In_UnSubScribe = Out_UnSubAck
-    lambda 4 In_Disconnect = Out_ConnectionClosed
-    lambda _ _ = error "haal-gen: undefined transition"
+    deltaTable =
+        "\1\0\0\0\0\0\0\0\0\0\0\
+        \\0\0\1\0\1\2\1\3\0\1\0\
+        \\0\0\2\0\2\2\1\4\0\2\0\
+        \\0\0\3\0\3\4\3\3\0\1\0\
+        \\0\0\4\0\4\4\3\4\0\2\0"
+    lambdaTable =
+        "\0\1\2\2\2\2\2\2\2\2\2\
+        \\2\2\3\2\3\4\5\4\2\5\2\
+        \\2\2\3\2\6\4\5\4\2\5\2\
+        \\2\2\7\2\3\4\5\4\2\5\2\
+        \\2\2\7\2\6\4\5\4\2\5\2"
diff --git a/src/Haal/Models/MQTT/ActiveMQNonClean.hs b/src/Haal/Models/MQTT/ActiveMQNonClean.hs
--- a/src/Haal/Models/MQTT/ActiveMQNonClean.hs
+++ b/src/Haal/Models/MQTT/ActiveMQNonClean.hs
@@ -5,8 +5,7 @@
     , activeMQNonClean
     ) where
 
-import qualified Data.Set as Set
-import Haal.Automaton.MealyAutomaton (MealyAutomaton, mkMealyAutomaton)
+import Haal.Automaton.MealyAutomaton (MealyAutomaton, mkMealyAutomatonTable)
 
 data ActiveMQNonCleanInput
     = In_ConnectC2
@@ -38,152 +37,109 @@
     | Out_C1_ConnectionClosed__c2_Pub_my_topic_messageQos1_1___c2_Pub_my_topic_messageQos1_1___c2_ConnAck
     deriving (Show, Eq, Ord, Enum, Bounded)
 
+{- Transitions (state  input -> next state / output):
+    0     In_ConnectC2        -> 1 / Out_C1_ConnectionClosed__c2_ConnAck
+          In_ConnectC1        -> 2 / Out_C1_ConnAck__c2_ConnectionClosed
+          In_PublishQoS1C1    -> 0 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_SubscribeC2QoS1  -> 0 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_UnSubscribeC2    -> 0 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_DisconnectC2     -> 0 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+    1     In_ConnectC2        -> 0 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_ConnectC1        -> 3 / Out_C1_ConnAck__Empty
+          In_PublishQoS1C1    -> 1 / Out_C1_ConnectionClosed__Empty
+          In_SubscribeC2QoS1  -> 4 / Out_C1_ConnectionClosed__c2_SubAck
+          In_UnSubscribeC2    -> 1 / Out_C1_ConnectionClosed__c2_UnSubAck
+          In_DisconnectC2     -> 0 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+    2     In_ConnectC2        -> 3 / Out_Empty__c2_ConnAck
+          In_ConnectC1        -> 0 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_PublishQoS1C1    -> 2 / Out_C1_PubAck__c2_ConnectionClosed
+          In_SubscribeC2QoS1  -> 2 / Out_Empty__c2_ConnectionClosed
+          In_UnSubscribeC2    -> 2 / Out_Empty__c2_ConnectionClosed
+          In_DisconnectC2     -> 2 / Out_Empty__c2_ConnectionClosed
+    3     In_ConnectC2        -> 2 / Out_Empty__c2_ConnectionClosed
+          In_ConnectC1        -> 1 / Out_C1_ConnectionClosed__Empty
+          In_PublishQoS1C1    -> 3 / Out_C1_PubAck__Empty
+          In_SubscribeC2QoS1  -> 5 / Out_Empty__c2_SubAck
+          In_UnSubscribeC2    -> 3 / Out_Empty__c2_UnSubAck
+          In_DisconnectC2     -> 2 / Out_Empty__c2_ConnectionClosed
+    4     In_ConnectC2        -> 7 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_ConnectC1        -> 5 / Out_C1_ConnAck__Empty
+          In_PublishQoS1C1    -> 4 / Out_C1_ConnectionClosed__Empty
+          In_SubscribeC2QoS1  -> 4 / Out_C1_ConnectionClosed__c2_SubAck
+          In_UnSubscribeC2    -> 1 / Out_C1_ConnectionClosed__c2_UnSubAck
+          In_DisconnectC2     -> 7 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+    5     In_ConnectC2        -> 6 / Out_Empty__c2_ConnectionClosed
+          In_ConnectC1        -> 4 / Out_C1_ConnectionClosed__Empty
+          In_PublishQoS1C1    -> 5 / Out_C1_PubAck__c2_Pub_my_topic_messageQos1_1
+          In_SubscribeC2QoS1  -> 5 / Out_Empty__c2_SubAck
+          In_UnSubscribeC2    -> 3 / Out_Empty__c2_UnSubAck
+          In_DisconnectC2     -> 6 / Out_Empty__c2_ConnectionClosed
+    6     In_ConnectC2        -> 5 / Out_Empty__c2_ConnAck
+          In_ConnectC1        -> 7 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_PublishQoS1C1    -> 8 / Out_C1_PubAck__c2_ConnectionClosed
+          In_SubscribeC2QoS1  -> 6 / Out_Empty__c2_ConnectionClosed
+          In_UnSubscribeC2    -> 6 / Out_Empty__c2_ConnectionClosed
+          In_DisconnectC2     -> 6 / Out_Empty__c2_ConnectionClosed
+    7     In_ConnectC2        -> 4 / Out_C1_ConnectionClosed__c2_ConnAck
+          In_ConnectC1        -> 6 / Out_C1_ConnAck__c2_ConnectionClosed
+          In_PublishQoS1C1    -> 7 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_SubscribeC2QoS1  -> 7 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_UnSubscribeC2    -> 7 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_DisconnectC2     -> 7 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+    8     In_ConnectC2        -> 5 / Out_Empty__c2_Pub_my_topic_messageQos1_1___c2_ConnAck
+          In_ConnectC1        -> 9 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_PublishQoS1C1    -> 10 / Out_C1_PubAck__c2_ConnectionClosed
+          In_SubscribeC2QoS1  -> 8 / Out_Empty__c2_ConnectionClosed
+          In_UnSubscribeC2    -> 8 / Out_Empty__c2_ConnectionClosed
+          In_DisconnectC2     -> 8 / Out_Empty__c2_ConnectionClosed
+    9     In_ConnectC2        -> 4 / Out_C1_ConnectionClosed__c2_Pub_my_topic_messageQos1_1___c2_ConnAck
+          In_ConnectC1        -> 8 / Out_C1_ConnAck__c2_ConnectionClosed
+          In_PublishQoS1C1    -> 9 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_SubscribeC2QoS1  -> 9 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_UnSubscribeC2    -> 9 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_DisconnectC2     -> 9 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+    10    In_ConnectC2        -> 5 / Out_Empty__c2_Pub_my_topic_messageQos1_1___c2_Pub_my_topic_messageQos1_1___c2_ConnAck
+          In_ConnectC1        -> 11 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_PublishQoS1C1    -> 10 / Out_C1_PubAck__c2_ConnectionClosed
+          In_SubscribeC2QoS1  -> 10 / Out_Empty__c2_ConnectionClosed
+          In_UnSubscribeC2    -> 10 / Out_Empty__c2_ConnectionClosed
+          In_DisconnectC2     -> 10 / Out_Empty__c2_ConnectionClosed
+    11    In_ConnectC2        -> 4 / Out_C1_ConnectionClosed__c2_Pub_my_topic_messageQos1_1___c2_Pub_my_topic_messageQos1_1___c2_ConnAck
+          In_ConnectC1        -> 10 / Out_C1_ConnAck__c2_ConnectionClosed
+          In_PublishQoS1C1    -> 11 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_SubscribeC2QoS1  -> 11 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_UnSubscribeC2    -> 11 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_DisconnectC2     -> 11 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+-}
 activeMQNonClean :: MealyAutomaton Int ActiveMQNonCleanInput ActiveMQNonCleanOutput
-activeMQNonClean = mkMealyAutomaton delta lambda (Set.fromList [0..11]) 0
+activeMQNonClean =
+    case mkMealyAutomatonTable 12 0 deltaTable lambdaTable of
+        Right m -> m
+        Left err -> error ("haal-gen: invalid transition table: " ++ err)
   where
-    delta 0 In_ConnectC2 = 1
-    delta 0 In_ConnectC1 = 2
-    delta 0 In_PublishQoS1C1 = 0
-    delta 0 In_SubscribeC2QoS1 = 0
-    delta 0 In_UnSubscribeC2 = 0
-    delta 0 In_DisconnectC2 = 0
-    delta 2 In_ConnectC2 = 3
-    delta 2 In_ConnectC1 = 0
-    delta 2 In_PublishQoS1C1 = 2
-    delta 2 In_SubscribeC2QoS1 = 2
-    delta 2 In_UnSubscribeC2 = 2
-    delta 2 In_DisconnectC2 = 2
-    delta 1 In_ConnectC2 = 0
-    delta 1 In_ConnectC1 = 3
-    delta 1 In_PublishQoS1C1 = 1
-    delta 1 In_SubscribeC2QoS1 = 4
-    delta 1 In_UnSubscribeC2 = 1
-    delta 1 In_DisconnectC2 = 0
-    delta 3 In_ConnectC2 = 2
-    delta 3 In_ConnectC1 = 1
-    delta 3 In_PublishQoS1C1 = 3
-    delta 3 In_SubscribeC2QoS1 = 5
-    delta 3 In_UnSubscribeC2 = 3
-    delta 3 In_DisconnectC2 = 2
-    delta 5 In_ConnectC2 = 6
-    delta 5 In_ConnectC1 = 4
-    delta 5 In_PublishQoS1C1 = 5
-    delta 5 In_SubscribeC2QoS1 = 5
-    delta 5 In_UnSubscribeC2 = 3
-    delta 5 In_DisconnectC2 = 6
-    delta 6 In_ConnectC2 = 5
-    delta 6 In_ConnectC1 = 7
-    delta 6 In_PublishQoS1C1 = 8
-    delta 6 In_SubscribeC2QoS1 = 6
-    delta 6 In_UnSubscribeC2 = 6
-    delta 6 In_DisconnectC2 = 6
-    delta 8 In_ConnectC2 = 5
-    delta 8 In_ConnectC1 = 9
-    delta 8 In_PublishQoS1C1 = 10
-    delta 8 In_SubscribeC2QoS1 = 8
-    delta 8 In_UnSubscribeC2 = 8
-    delta 8 In_DisconnectC2 = 8
-    delta 9 In_ConnectC2 = 4
-    delta 9 In_ConnectC1 = 8
-    delta 9 In_PublishQoS1C1 = 9
-    delta 9 In_SubscribeC2QoS1 = 9
-    delta 9 In_UnSubscribeC2 = 9
-    delta 9 In_DisconnectC2 = 9
-    delta 10 In_ConnectC2 = 5
-    delta 10 In_ConnectC1 = 11
-    delta 10 In_PublishQoS1C1 = 10
-    delta 10 In_SubscribeC2QoS1 = 10
-    delta 10 In_UnSubscribeC2 = 10
-    delta 10 In_DisconnectC2 = 10
-    delta 11 In_ConnectC2 = 4
-    delta 11 In_ConnectC1 = 10
-    delta 11 In_PublishQoS1C1 = 11
-    delta 11 In_SubscribeC2QoS1 = 11
-    delta 11 In_UnSubscribeC2 = 11
-    delta 11 In_DisconnectC2 = 11
-    delta 4 In_ConnectC2 = 7
-    delta 4 In_ConnectC1 = 5
-    delta 4 In_PublishQoS1C1 = 4
-    delta 4 In_SubscribeC2QoS1 = 4
-    delta 4 In_UnSubscribeC2 = 1
-    delta 4 In_DisconnectC2 = 7
-    delta 7 In_ConnectC2 = 4
-    delta 7 In_ConnectC1 = 6
-    delta 7 In_PublishQoS1C1 = 7
-    delta 7 In_SubscribeC2QoS1 = 7
-    delta 7 In_UnSubscribeC2 = 7
-    delta 7 In_DisconnectC2 = 7
-    delta _ _ = error "haal-gen: undefined transition"
-    lambda 0 In_ConnectC2 = Out_C1_ConnectionClosed__c2_ConnAck
-    lambda 0 In_ConnectC1 = Out_C1_ConnAck__c2_ConnectionClosed
-    lambda 0 In_PublishQoS1C1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 0 In_SubscribeC2QoS1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 0 In_UnSubscribeC2 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 0 In_DisconnectC2 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 2 In_ConnectC2 = Out_Empty__c2_ConnAck
-    lambda 2 In_ConnectC1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 2 In_PublishQoS1C1 = Out_C1_PubAck__c2_ConnectionClosed
-    lambda 2 In_SubscribeC2QoS1 = Out_Empty__c2_ConnectionClosed
-    lambda 2 In_UnSubscribeC2 = Out_Empty__c2_ConnectionClosed
-    lambda 2 In_DisconnectC2 = Out_Empty__c2_ConnectionClosed
-    lambda 1 In_ConnectC2 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 1 In_ConnectC1 = Out_C1_ConnAck__Empty
-    lambda 1 In_PublishQoS1C1 = Out_C1_ConnectionClosed__Empty
-    lambda 1 In_SubscribeC2QoS1 = Out_C1_ConnectionClosed__c2_SubAck
-    lambda 1 In_UnSubscribeC2 = Out_C1_ConnectionClosed__c2_UnSubAck
-    lambda 1 In_DisconnectC2 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 3 In_ConnectC2 = Out_Empty__c2_ConnectionClosed
-    lambda 3 In_ConnectC1 = Out_C1_ConnectionClosed__Empty
-    lambda 3 In_PublishQoS1C1 = Out_C1_PubAck__Empty
-    lambda 3 In_SubscribeC2QoS1 = Out_Empty__c2_SubAck
-    lambda 3 In_UnSubscribeC2 = Out_Empty__c2_UnSubAck
-    lambda 3 In_DisconnectC2 = Out_Empty__c2_ConnectionClosed
-    lambda 5 In_ConnectC2 = Out_Empty__c2_ConnectionClosed
-    lambda 5 In_ConnectC1 = Out_C1_ConnectionClosed__Empty
-    lambda 5 In_PublishQoS1C1 = Out_C1_PubAck__c2_Pub_my_topic_messageQos1_1
-    lambda 5 In_SubscribeC2QoS1 = Out_Empty__c2_SubAck
-    lambda 5 In_UnSubscribeC2 = Out_Empty__c2_UnSubAck
-    lambda 5 In_DisconnectC2 = Out_Empty__c2_ConnectionClosed
-    lambda 6 In_ConnectC2 = Out_Empty__c2_ConnAck
-    lambda 6 In_ConnectC1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 6 In_PublishQoS1C1 = Out_C1_PubAck__c2_ConnectionClosed
-    lambda 6 In_SubscribeC2QoS1 = Out_Empty__c2_ConnectionClosed
-    lambda 6 In_UnSubscribeC2 = Out_Empty__c2_ConnectionClosed
-    lambda 6 In_DisconnectC2 = Out_Empty__c2_ConnectionClosed
-    lambda 8 In_ConnectC2 = Out_Empty__c2_Pub_my_topic_messageQos1_1___c2_ConnAck
-    lambda 8 In_ConnectC1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 8 In_PublishQoS1C1 = Out_C1_PubAck__c2_ConnectionClosed
-    lambda 8 In_SubscribeC2QoS1 = Out_Empty__c2_ConnectionClosed
-    lambda 8 In_UnSubscribeC2 = Out_Empty__c2_ConnectionClosed
-    lambda 8 In_DisconnectC2 = Out_Empty__c2_ConnectionClosed
-    lambda 9 In_ConnectC2 = Out_C1_ConnectionClosed__c2_Pub_my_topic_messageQos1_1___c2_ConnAck
-    lambda 9 In_ConnectC1 = Out_C1_ConnAck__c2_ConnectionClosed
-    lambda 9 In_PublishQoS1C1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 9 In_SubscribeC2QoS1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 9 In_UnSubscribeC2 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 9 In_DisconnectC2 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 10 In_ConnectC2 = Out_Empty__c2_Pub_my_topic_messageQos1_1___c2_Pub_my_topic_messageQos1_1___c2_ConnAck
-    lambda 10 In_ConnectC1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 10 In_PublishQoS1C1 = Out_C1_PubAck__c2_ConnectionClosed
-    lambda 10 In_SubscribeC2QoS1 = Out_Empty__c2_ConnectionClosed
-    lambda 10 In_UnSubscribeC2 = Out_Empty__c2_ConnectionClosed
-    lambda 10 In_DisconnectC2 = Out_Empty__c2_ConnectionClosed
-    lambda 11 In_ConnectC2 = Out_C1_ConnectionClosed__c2_Pub_my_topic_messageQos1_1___c2_Pub_my_topic_messageQos1_1___c2_ConnAck
-    lambda 11 In_ConnectC1 = Out_C1_ConnAck__c2_ConnectionClosed
-    lambda 11 In_PublishQoS1C1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 11 In_SubscribeC2QoS1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 11 In_UnSubscribeC2 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 11 In_DisconnectC2 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 4 In_ConnectC2 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 4 In_ConnectC1 = Out_C1_ConnAck__Empty
-    lambda 4 In_PublishQoS1C1 = Out_C1_ConnectionClosed__Empty
-    lambda 4 In_SubscribeC2QoS1 = Out_C1_ConnectionClosed__c2_SubAck
-    lambda 4 In_UnSubscribeC2 = Out_C1_ConnectionClosed__c2_UnSubAck
-    lambda 4 In_DisconnectC2 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 7 In_ConnectC2 = Out_C1_ConnectionClosed__c2_ConnAck
-    lambda 7 In_ConnectC1 = Out_C1_ConnAck__c2_ConnectionClosed
-    lambda 7 In_PublishQoS1C1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 7 In_SubscribeC2QoS1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 7 In_UnSubscribeC2 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 7 In_DisconnectC2 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda _ _ = error "haal-gen: undefined transition"
+    deltaTable =
+        "\1\2\0\0\0\0\
+        \\0\3\1\4\1\0\
+        \\3\0\2\2\2\2\
+        \\2\1\3\5\3\2\
+        \\7\5\4\4\1\7\
+        \\6\4\5\5\3\6\
+        \\5\7\8\6\6\6\
+        \\4\6\7\7\7\7\
+        \\5\9\10\8\8\8\
+        \\4\8\9\9\9\9\
+        \\5\11\10\10\10\10\
+        \\4\10\11\11\11\11"
+    lambdaTable =
+        "\0\1\2\2\2\2\
+        \\2\6\7\8\9\2\
+        \\3\2\4\5\5\5\
+        \\5\7\10\11\12\5\
+        \\2\6\7\8\9\2\
+        \\5\7\13\11\12\5\
+        \\3\2\4\5\5\5\
+        \\0\1\2\2\2\2\
+        \\14\2\4\5\5\5\
+        \\15\1\2\2\2\2\
+        \\16\2\4\5\5\5\
+        \\17\1\2\2\2\2"
diff --git a/src/Haal/Models/MQTT/ActiveMQSimple.hs b/src/Haal/Models/MQTT/ActiveMQSimple.hs
--- a/src/Haal/Models/MQTT/ActiveMQSimple.hs
+++ b/src/Haal/Models/MQTT/ActiveMQSimple.hs
@@ -5,8 +5,7 @@
     , activeMQSimple
     ) where
 
-import qualified Data.Set as Set
-import Haal.Automaton.MealyAutomaton (MealyAutomaton, mkMealyAutomaton)
+import Haal.Automaton.MealyAutomaton (MealyAutomaton, mkMealyAutomatonTable)
 
 data ActiveMQSimpleInput
     = In_Connect
@@ -28,64 +27,49 @@
     | Out_PublishPacket__PubAckPacket
     deriving (Show, Eq, Ord, Enum, Bounded)
 
+{- Transitions (state  input -> next state / output):
+    0     In_Connect        -> 1 / Out_ConnAckPacket
+          In_Publish        -> 2 / Out_ConnectionClosed
+          In_Subscribe      -> 2 / Out_ConnectionClosed
+          In_UnSubScribe    -> 2 / Out_ConnectionClosed
+          In_Ping           -> 0 / Out_PingRespPacket
+          In_Disconnect     -> 2 / Out_ConnectionClosed
+          In_DisconnectTCP  -> 2 / Out_ConnectionClosed
+    1     In_Connect        -> 2 / Out_ConnectionClosed
+          In_Publish        -> 1 / Out_PubAckPacket
+          In_Subscribe      -> 3 / Out_SubAckPacket
+          In_UnSubScribe    -> 1 / Out_UnSubAckPacket
+          In_Ping           -> 1 / Out_PingRespPacket
+          In_Disconnect     -> 2 / Out_ConnectionClosed
+          In_DisconnectTCP  -> 2 / Out_ConnectionClosed
+    2     In_Connect        -> 1 / Out_ConnAckPacket
+          In_Publish        -> 2 / Out_ConnectionClosed
+          In_Subscribe      -> 2 / Out_ConnectionClosed
+          In_UnSubScribe    -> 2 / Out_ConnectionClosed
+          In_Ping           -> 2 / Out_ConnectionClosed
+          In_Disconnect     -> 2 / Out_ConnectionClosed
+          In_DisconnectTCP  -> 2 / Out_ConnectionClosed
+    3     In_Connect        -> 2 / Out_ConnectionClosed
+          In_Publish        -> 3 / Out_PublishPacket__PubAckPacket
+          In_Subscribe      -> 3 / Out_SubAckPacket
+          In_UnSubScribe    -> 1 / Out_UnSubAckPacket
+          In_Ping           -> 3 / Out_PingRespPacket
+          In_Disconnect     -> 2 / Out_ConnectionClosed
+          In_DisconnectTCP  -> 2 / Out_ConnectionClosed
+-}
 activeMQSimple :: MealyAutomaton Int ActiveMQSimpleInput ActiveMQSimpleOutput
-activeMQSimple = mkMealyAutomaton delta lambda (Set.fromList [0..3]) 0
+activeMQSimple =
+    case mkMealyAutomatonTable 4 0 deltaTable lambdaTable of
+        Right m -> m
+        Left err -> error ("haal-gen: invalid transition table: " ++ err)
   where
-    delta 0 In_Connect = 1
-    delta 0 In_Publish = 2
-    delta 0 In_Subscribe = 2
-    delta 0 In_UnSubScribe = 2
-    delta 0 In_Ping = 0
-    delta 0 In_Disconnect = 2
-    delta 0 In_DisconnectTCP = 2
-    delta 2 In_Connect = 1
-    delta 2 In_Publish = 2
-    delta 2 In_Subscribe = 2
-    delta 2 In_UnSubScribe = 2
-    delta 2 In_Ping = 2
-    delta 2 In_Disconnect = 2
-    delta 2 In_DisconnectTCP = 2
-    delta 1 In_Connect = 2
-    delta 1 In_Publish = 1
-    delta 1 In_Subscribe = 3
-    delta 1 In_UnSubScribe = 1
-    delta 1 In_Ping = 1
-    delta 1 In_Disconnect = 2
-    delta 1 In_DisconnectTCP = 2
-    delta 3 In_Connect = 2
-    delta 3 In_Publish = 3
-    delta 3 In_Subscribe = 3
-    delta 3 In_UnSubScribe = 1
-    delta 3 In_Ping = 3
-    delta 3 In_Disconnect = 2
-    delta 3 In_DisconnectTCP = 2
-    delta _ _ = error "haal-gen: undefined transition"
-    lambda 0 In_Connect = Out_ConnAckPacket
-    lambda 0 In_Publish = Out_ConnectionClosed
-    lambda 0 In_Subscribe = Out_ConnectionClosed
-    lambda 0 In_UnSubScribe = Out_ConnectionClosed
-    lambda 0 In_Ping = Out_PingRespPacket
-    lambda 0 In_Disconnect = Out_ConnectionClosed
-    lambda 0 In_DisconnectTCP = Out_ConnectionClosed
-    lambda 2 In_Connect = Out_ConnAckPacket
-    lambda 2 In_Publish = Out_ConnectionClosed
-    lambda 2 In_Subscribe = Out_ConnectionClosed
-    lambda 2 In_UnSubScribe = Out_ConnectionClosed
-    lambda 2 In_Ping = Out_ConnectionClosed
-    lambda 2 In_Disconnect = Out_ConnectionClosed
-    lambda 2 In_DisconnectTCP = Out_ConnectionClosed
-    lambda 1 In_Connect = Out_ConnectionClosed
-    lambda 1 In_Publish = Out_PubAckPacket
-    lambda 1 In_Subscribe = Out_SubAckPacket
-    lambda 1 In_UnSubScribe = Out_UnSubAckPacket
-    lambda 1 In_Ping = Out_PingRespPacket
-    lambda 1 In_Disconnect = Out_ConnectionClosed
-    lambda 1 In_DisconnectTCP = Out_ConnectionClosed
-    lambda 3 In_Connect = Out_ConnectionClosed
-    lambda 3 In_Publish = Out_PublishPacket__PubAckPacket
-    lambda 3 In_Subscribe = Out_SubAckPacket
-    lambda 3 In_UnSubScribe = Out_UnSubAckPacket
-    lambda 3 In_Ping = Out_PingRespPacket
-    lambda 3 In_Disconnect = Out_ConnectionClosed
-    lambda 3 In_DisconnectTCP = Out_ConnectionClosed
-    lambda _ _ = error "haal-gen: undefined transition"
+    deltaTable =
+        "\1\2\2\2\0\2\2\
+        \\2\1\3\1\1\2\2\
+        \\1\2\2\2\2\2\2\
+        \\2\3\3\1\3\2\2"
+    lambdaTable =
+        "\0\1\1\1\2\1\1\
+        \\1\3\4\5\2\1\1\
+        \\0\1\1\1\1\1\1\
+        \\1\6\4\5\2\1\1"
diff --git a/src/Haal/Models/MQTT/ActiveMQSingleClient.hs b/src/Haal/Models/MQTT/ActiveMQSingleClient.hs
--- a/src/Haal/Models/MQTT/ActiveMQSingleClient.hs
+++ b/src/Haal/Models/MQTT/ActiveMQSingleClient.hs
@@ -5,8 +5,7 @@
     , activeMQSingleClient
     ) where
 
-import qualified Data.Set as Set
-import Haal.Automaton.MealyAutomaton (MealyAutomaton, mkMealyAutomaton)
+import Haal.Automaton.MealyAutomaton (MealyAutomaton, mkMealyAutomatonTable)
 
 data ActiveMQSingleClientInput
     = In_Connect
@@ -36,184 +35,117 @@
     | Out_Pub_my_topic_retained____PubAck
     deriving (Show, Eq, Ord, Enum, Bounded)
 
+{- Transitions (state  input -> next state / output):
+    0     In_Connect              -> 1 / Out_ConnAck
+          In_PublishQoS0          -> 0 / Out_ConnectionClosed
+          In_PublishQoS1          -> 0 / Out_ConnectionClosed
+          In_PublishRetain        -> 0 / Out_ConnectionClosed
+          In_DeleteRetained       -> 0 / Out_ConnectionClosed
+          In_Subscribe            -> 0 / Out_ConnectionClosed
+          In_UnSubScribe          -> 0 / Out_ConnectionClosed
+          In_SubscribeRetained    -> 0 / Out_ConnectionClosed
+          In_UnSubScribeRetained  -> 0 / Out_ConnectionClosed
+          In_Disconnect           -> 0 / Out_ConnectionClosed
+          In_DisconnectTCP        -> 0 / Out_ConnectionClosed
+    1     In_Connect              -> 2 / Out_ConnectionClosed
+          In_PublishQoS0          -> 1 / Out_Empty
+          In_PublishQoS1          -> 1 / Out_PubAck
+          In_PublishRetain        -> 3 / Out_PubAck
+          In_DeleteRetained       -> 1 / Out_PubAck
+          In_Subscribe            -> 4 / Out_SubAck
+          In_UnSubScribe          -> 1 / Out_UnSubAck
+          In_SubscribeRetained    -> 5 / Out_SubAck
+          In_UnSubScribeRetained  -> 1 / Out_UnSubAck
+          In_Disconnect           -> 2 / Out_ConnectionClosed
+          In_DisconnectTCP        -> 2 / Out_ConnectionClosed
+    2     In_Connect              -> 2 / Out_ConnectionClosed
+          In_PublishQoS0          -> 2 / Out_ConnectionClosed
+          In_PublishQoS1          -> 2 / Out_ConnectionClosed
+          In_PublishRetain        -> 2 / Out_ConnectionClosed
+          In_DeleteRetained       -> 2 / Out_ConnectionClosed
+          In_Subscribe            -> 2 / Out_ConnectionClosed
+          In_UnSubScribe          -> 2 / Out_ConnectionClosed
+          In_SubscribeRetained    -> 2 / Out_ConnectionClosed
+          In_UnSubScribeRetained  -> 2 / Out_ConnectionClosed
+          In_Disconnect           -> 2 / Out_ConnectionClosed
+          In_DisconnectTCP        -> 2 / Out_ConnectionClosed
+    3     In_Connect              -> 2 / Out_ConnectionClosed
+          In_PublishQoS0          -> 3 / Out_Empty
+          In_PublishQoS1          -> 3 / Out_PubAck
+          In_PublishRetain        -> 3 / Out_PubAck
+          In_DeleteRetained       -> 1 / Out_PubAck
+          In_Subscribe            -> 6 / Out_SubAck
+          In_UnSubScribe          -> 3 / Out_UnSubAck
+          In_SubscribeRetained    -> 5 / Out_SubAck__Pub_my_topic_retained_retained_message
+          In_UnSubScribeRetained  -> 3 / Out_UnSubAck
+          In_Disconnect           -> 2 / Out_ConnectionClosed
+          In_DisconnectTCP        -> 2 / Out_ConnectionClosed
+    4     In_Connect              -> 2 / Out_ConnectionClosed
+          In_PublishQoS0          -> 4 / Out_Pub_my_topic_messageQos0
+          In_PublishQoS1          -> 4 / Out_Pub_my_topic_messageQos1___PubAck
+          In_PublishRetain        -> 6 / Out_PubAck
+          In_DeleteRetained       -> 4 / Out_PubAck
+          In_Subscribe            -> 4 / Out_SubAck
+          In_UnSubScribe          -> 1 / Out_UnSubAck
+          In_SubscribeRetained    -> 7 / Out_SubAck
+          In_UnSubScribeRetained  -> 4 / Out_UnSubAck
+          In_Disconnect           -> 2 / Out_ConnectionClosed
+          In_DisconnectTCP        -> 2 / Out_ConnectionClosed
+    5     In_Connect              -> 2 / Out_ConnectionClosed
+          In_PublishQoS0          -> 5 / Out_Empty
+          In_PublishQoS1          -> 5 / Out_PubAck
+          In_PublishRetain        -> 5 / Out_Pub_my_topic_retained_retained_message___PubAck
+          In_DeleteRetained       -> 5 / Out_Pub_my_topic_retained____PubAck
+          In_Subscribe            -> 7 / Out_SubAck
+          In_UnSubScribe          -> 5 / Out_UnSubAck
+          In_SubscribeRetained    -> 5 / Out_SubAck
+          In_UnSubScribeRetained  -> 1 / Out_UnSubAck
+          In_Disconnect           -> 2 / Out_ConnectionClosed
+          In_DisconnectTCP        -> 2 / Out_ConnectionClosed
+    6     In_Connect              -> 2 / Out_ConnectionClosed
+          In_PublishQoS0          -> 6 / Out_Pub_my_topic_messageQos0
+          In_PublishQoS1          -> 6 / Out_Pub_my_topic_messageQos1___PubAck
+          In_PublishRetain        -> 6 / Out_PubAck
+          In_DeleteRetained       -> 4 / Out_PubAck
+          In_Subscribe            -> 6 / Out_SubAck
+          In_UnSubScribe          -> 3 / Out_UnSubAck
+          In_SubscribeRetained    -> 7 / Out_SubAck__Pub_my_topic_retained_retained_message
+          In_UnSubScribeRetained  -> 6 / Out_UnSubAck
+          In_Disconnect           -> 2 / Out_ConnectionClosed
+          In_DisconnectTCP        -> 2 / Out_ConnectionClosed
+    7     In_Connect              -> 2 / Out_ConnectionClosed
+          In_PublishQoS0          -> 7 / Out_Pub_my_topic_messageQos0
+          In_PublishQoS1          -> 7 / Out_Pub_my_topic_messageQos1___PubAck
+          In_PublishRetain        -> 7 / Out_Pub_my_topic_retained_retained_message___PubAck
+          In_DeleteRetained       -> 7 / Out_Pub_my_topic_retained____PubAck
+          In_Subscribe            -> 7 / Out_SubAck
+          In_UnSubScribe          -> 5 / Out_UnSubAck
+          In_SubscribeRetained    -> 7 / Out_SubAck
+          In_UnSubScribeRetained  -> 4 / Out_UnSubAck
+          In_Disconnect           -> 2 / Out_ConnectionClosed
+          In_DisconnectTCP        -> 2 / Out_ConnectionClosed
+-}
 activeMQSingleClient :: MealyAutomaton Int ActiveMQSingleClientInput ActiveMQSingleClientOutput
-activeMQSingleClient = mkMealyAutomaton delta lambda (Set.fromList [0..7]) 0
+activeMQSingleClient =
+    case mkMealyAutomatonTable 8 0 deltaTable lambdaTable of
+        Right m -> m
+        Left err -> error ("haal-gen: invalid transition table: " ++ err)
   where
-    delta 0 In_Connect = 1
-    delta 0 In_PublishQoS0 = 0
-    delta 0 In_PublishQoS1 = 0
-    delta 0 In_PublishRetain = 0
-    delta 0 In_DeleteRetained = 0
-    delta 0 In_Subscribe = 0
-    delta 0 In_UnSubScribe = 0
-    delta 0 In_SubscribeRetained = 0
-    delta 0 In_UnSubScribeRetained = 0
-    delta 0 In_Disconnect = 0
-    delta 0 In_DisconnectTCP = 0
-    delta 1 In_Connect = 2
-    delta 1 In_PublishQoS0 = 1
-    delta 1 In_PublishQoS1 = 1
-    delta 1 In_PublishRetain = 3
-    delta 1 In_DeleteRetained = 1
-    delta 1 In_Subscribe = 4
-    delta 1 In_UnSubScribe = 1
-    delta 1 In_SubscribeRetained = 5
-    delta 1 In_UnSubScribeRetained = 1
-    delta 1 In_Disconnect = 2
-    delta 1 In_DisconnectTCP = 2
-    delta 2 In_Connect = 2
-    delta 2 In_PublishQoS0 = 2
-    delta 2 In_PublishQoS1 = 2
-    delta 2 In_PublishRetain = 2
-    delta 2 In_DeleteRetained = 2
-    delta 2 In_Subscribe = 2
-    delta 2 In_UnSubScribe = 2
-    delta 2 In_SubscribeRetained = 2
-    delta 2 In_UnSubScribeRetained = 2
-    delta 2 In_Disconnect = 2
-    delta 2 In_DisconnectTCP = 2
-    delta 4 In_Connect = 2
-    delta 4 In_PublishQoS0 = 4
-    delta 4 In_PublishQoS1 = 4
-    delta 4 In_PublishRetain = 6
-    delta 4 In_DeleteRetained = 4
-    delta 4 In_Subscribe = 4
-    delta 4 In_UnSubScribe = 1
-    delta 4 In_SubscribeRetained = 7
-    delta 4 In_UnSubScribeRetained = 4
-    delta 4 In_Disconnect = 2
-    delta 4 In_DisconnectTCP = 2
-    delta 3 In_Connect = 2
-    delta 3 In_PublishQoS0 = 3
-    delta 3 In_PublishQoS1 = 3
-    delta 3 In_PublishRetain = 3
-    delta 3 In_DeleteRetained = 1
-    delta 3 In_Subscribe = 6
-    delta 3 In_UnSubScribe = 3
-    delta 3 In_SubscribeRetained = 5
-    delta 3 In_UnSubScribeRetained = 3
-    delta 3 In_Disconnect = 2
-    delta 3 In_DisconnectTCP = 2
-    delta 5 In_Connect = 2
-    delta 5 In_PublishQoS0 = 5
-    delta 5 In_PublishQoS1 = 5
-    delta 5 In_PublishRetain = 5
-    delta 5 In_DeleteRetained = 5
-    delta 5 In_Subscribe = 7
-    delta 5 In_UnSubScribe = 5
-    delta 5 In_SubscribeRetained = 5
-    delta 5 In_UnSubScribeRetained = 1
-    delta 5 In_Disconnect = 2
-    delta 5 In_DisconnectTCP = 2
-    delta 6 In_Connect = 2
-    delta 6 In_PublishQoS0 = 6
-    delta 6 In_PublishQoS1 = 6
-    delta 6 In_PublishRetain = 6
-    delta 6 In_DeleteRetained = 4
-    delta 6 In_Subscribe = 6
-    delta 6 In_UnSubScribe = 3
-    delta 6 In_SubscribeRetained = 7
-    delta 6 In_UnSubScribeRetained = 6
-    delta 6 In_Disconnect = 2
-    delta 6 In_DisconnectTCP = 2
-    delta 7 In_Connect = 2
-    delta 7 In_PublishQoS0 = 7
-    delta 7 In_PublishQoS1 = 7
-    delta 7 In_PublishRetain = 7
-    delta 7 In_DeleteRetained = 7
-    delta 7 In_Subscribe = 7
-    delta 7 In_UnSubScribe = 5
-    delta 7 In_SubscribeRetained = 7
-    delta 7 In_UnSubScribeRetained = 4
-    delta 7 In_Disconnect = 2
-    delta 7 In_DisconnectTCP = 2
-    delta _ _ = error "haal-gen: undefined transition"
-    lambda 0 In_Connect = Out_ConnAck
-    lambda 0 In_PublishQoS0 = Out_ConnectionClosed
-    lambda 0 In_PublishQoS1 = Out_ConnectionClosed
-    lambda 0 In_PublishRetain = Out_ConnectionClosed
-    lambda 0 In_DeleteRetained = Out_ConnectionClosed
-    lambda 0 In_Subscribe = Out_ConnectionClosed
-    lambda 0 In_UnSubScribe = Out_ConnectionClosed
-    lambda 0 In_SubscribeRetained = Out_ConnectionClosed
-    lambda 0 In_UnSubScribeRetained = Out_ConnectionClosed
-    lambda 0 In_Disconnect = Out_ConnectionClosed
-    lambda 0 In_DisconnectTCP = Out_ConnectionClosed
-    lambda 1 In_Connect = Out_ConnectionClosed
-    lambda 1 In_PublishQoS0 = Out_Empty
-    lambda 1 In_PublishQoS1 = Out_PubAck
-    lambda 1 In_PublishRetain = Out_PubAck
-    lambda 1 In_DeleteRetained = Out_PubAck
-    lambda 1 In_Subscribe = Out_SubAck
-    lambda 1 In_UnSubScribe = Out_UnSubAck
-    lambda 1 In_SubscribeRetained = Out_SubAck
-    lambda 1 In_UnSubScribeRetained = Out_UnSubAck
-    lambda 1 In_Disconnect = Out_ConnectionClosed
-    lambda 1 In_DisconnectTCP = Out_ConnectionClosed
-    lambda 2 In_Connect = Out_ConnectionClosed
-    lambda 2 In_PublishQoS0 = Out_ConnectionClosed
-    lambda 2 In_PublishQoS1 = Out_ConnectionClosed
-    lambda 2 In_PublishRetain = Out_ConnectionClosed
-    lambda 2 In_DeleteRetained = Out_ConnectionClosed
-    lambda 2 In_Subscribe = Out_ConnectionClosed
-    lambda 2 In_UnSubScribe = Out_ConnectionClosed
-    lambda 2 In_SubscribeRetained = Out_ConnectionClosed
-    lambda 2 In_UnSubScribeRetained = Out_ConnectionClosed
-    lambda 2 In_Disconnect = Out_ConnectionClosed
-    lambda 2 In_DisconnectTCP = Out_ConnectionClosed
-    lambda 4 In_Connect = Out_ConnectionClosed
-    lambda 4 In_PublishQoS0 = Out_Pub_my_topic_messageQos0
-    lambda 4 In_PublishQoS1 = Out_Pub_my_topic_messageQos1___PubAck
-    lambda 4 In_PublishRetain = Out_PubAck
-    lambda 4 In_DeleteRetained = Out_PubAck
-    lambda 4 In_Subscribe = Out_SubAck
-    lambda 4 In_UnSubScribe = Out_UnSubAck
-    lambda 4 In_SubscribeRetained = Out_SubAck
-    lambda 4 In_UnSubScribeRetained = Out_UnSubAck
-    lambda 4 In_Disconnect = Out_ConnectionClosed
-    lambda 4 In_DisconnectTCP = Out_ConnectionClosed
-    lambda 3 In_Connect = Out_ConnectionClosed
-    lambda 3 In_PublishQoS0 = Out_Empty
-    lambda 3 In_PublishQoS1 = Out_PubAck
-    lambda 3 In_PublishRetain = Out_PubAck
-    lambda 3 In_DeleteRetained = Out_PubAck
-    lambda 3 In_Subscribe = Out_SubAck
-    lambda 3 In_UnSubScribe = Out_UnSubAck
-    lambda 3 In_SubscribeRetained = Out_SubAck__Pub_my_topic_retained_retained_message
-    lambda 3 In_UnSubScribeRetained = Out_UnSubAck
-    lambda 3 In_Disconnect = Out_ConnectionClosed
-    lambda 3 In_DisconnectTCP = Out_ConnectionClosed
-    lambda 5 In_Connect = Out_ConnectionClosed
-    lambda 5 In_PublishQoS0 = Out_Empty
-    lambda 5 In_PublishQoS1 = Out_PubAck
-    lambda 5 In_PublishRetain = Out_Pub_my_topic_retained_retained_message___PubAck
-    lambda 5 In_DeleteRetained = Out_Pub_my_topic_retained____PubAck
-    lambda 5 In_Subscribe = Out_SubAck
-    lambda 5 In_UnSubScribe = Out_UnSubAck
-    lambda 5 In_SubscribeRetained = Out_SubAck
-    lambda 5 In_UnSubScribeRetained = Out_UnSubAck
-    lambda 5 In_Disconnect = Out_ConnectionClosed
-    lambda 5 In_DisconnectTCP = Out_ConnectionClosed
-    lambda 6 In_Connect = Out_ConnectionClosed
-    lambda 6 In_PublishQoS0 = Out_Pub_my_topic_messageQos0
-    lambda 6 In_PublishQoS1 = Out_Pub_my_topic_messageQos1___PubAck
-    lambda 6 In_PublishRetain = Out_PubAck
-    lambda 6 In_DeleteRetained = Out_PubAck
-    lambda 6 In_Subscribe = Out_SubAck
-    lambda 6 In_UnSubScribe = Out_UnSubAck
-    lambda 6 In_SubscribeRetained = Out_SubAck__Pub_my_topic_retained_retained_message
-    lambda 6 In_UnSubScribeRetained = Out_UnSubAck
-    lambda 6 In_Disconnect = Out_ConnectionClosed
-    lambda 6 In_DisconnectTCP = Out_ConnectionClosed
-    lambda 7 In_Connect = Out_ConnectionClosed
-    lambda 7 In_PublishQoS0 = Out_Pub_my_topic_messageQos0
-    lambda 7 In_PublishQoS1 = Out_Pub_my_topic_messageQos1___PubAck
-    lambda 7 In_PublishRetain = Out_Pub_my_topic_retained_retained_message___PubAck
-    lambda 7 In_DeleteRetained = Out_Pub_my_topic_retained____PubAck
-    lambda 7 In_Subscribe = Out_SubAck
-    lambda 7 In_UnSubScribe = Out_UnSubAck
-    lambda 7 In_SubscribeRetained = Out_SubAck
-    lambda 7 In_UnSubScribeRetained = Out_UnSubAck
-    lambda 7 In_Disconnect = Out_ConnectionClosed
-    lambda 7 In_DisconnectTCP = Out_ConnectionClosed
-    lambda _ _ = error "haal-gen: undefined transition"
+    deltaTable =
+        "\1\0\0\0\0\0\0\0\0\0\0\
+        \\2\1\1\3\1\4\1\5\1\2\2\
+        \\2\2\2\2\2\2\2\2\2\2\2\
+        \\2\3\3\3\1\6\3\5\3\2\2\
+        \\2\4\4\6\4\4\1\7\4\2\2\
+        \\2\5\5\5\5\7\5\5\1\2\2\
+        \\2\6\6\6\4\6\3\7\6\2\2\
+        \\2\7\7\7\7\7\5\7\4\2\2"
+    lambdaTable =
+        "\0\1\1\1\1\1\1\1\1\1\1\
+        \\1\2\3\3\3\4\5\4\5\1\1\
+        \\1\1\1\1\1\1\1\1\1\1\1\
+        \\1\2\3\3\3\4\5\8\5\1\1\
+        \\1\6\7\3\3\4\5\4\5\1\1\
+        \\1\2\3\9\10\4\5\4\5\1\1\
+        \\1\6\7\3\3\4\5\8\5\1\1\
+        \\1\6\7\9\10\4\5\4\5\1\1"
diff --git a/src/Haal/Models/MQTT/ActiveMQTwoClientWillRetain.hs b/src/Haal/Models/MQTT/ActiveMQTwoClientWillRetain.hs
--- a/src/Haal/Models/MQTT/ActiveMQTwoClientWillRetain.hs
+++ b/src/Haal/Models/MQTT/ActiveMQTwoClientWillRetain.hs
@@ -5,8 +5,7 @@
     , activeMQTwoClientWillRetain
     ) where
 
-import qualified Data.Set as Set
-import Haal.Automaton.MealyAutomaton (MealyAutomaton, mkMealyAutomaton)
+import Haal.Automaton.MealyAutomaton (MealyAutomaton, mkMealyAutomatonTable)
 
 data ActiveMQTwoClientWillRetainInput
     = In_ConnectC2
@@ -44,332 +43,211 @@
     | Out_Empty__c2_SubAck__Pub_c2_my_topic_bye
     deriving (Show, Eq, Ord, Enum, Bounded)
 
+{- Transitions (state  input -> next state / output):
+    0     In_ConnectC2                -> 1 / Out_C1_ConnectionClosed__c2_ConnAck
+          In_ConnectC1WithWill        -> 2 / Out_C1_ConnAck__c2_ConnectionClosed
+          In_ConnectC1WithWillRetain  -> 3 / Out_C1_ConnAck__c2_ConnectionClosed
+          In_DeleteRetainedC1         -> 0 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_DeleteRetainedC2         -> 0 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_SubscribeC2              -> 0 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_UnSubScribeC2            -> 0 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_DisconnectTCPC1          -> 0 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_DisconnectC1             -> 0 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+    1     In_ConnectC2                -> 0 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_ConnectC1WithWill        -> 4 / Out_C1_ConnAck__Empty
+          In_ConnectC1WithWillRetain  -> 5 / Out_C1_ConnAck__Empty
+          In_DeleteRetainedC1         -> 1 / Out_C1_ConnectionClosed__Empty
+          In_DeleteRetainedC2         -> 1 / Out_C1_ConnectionClosed__c2_PubAck
+          In_SubscribeC2              -> 6 / Out_C1_ConnectionClosed__c2_SubAck
+          In_UnSubScribeC2            -> 1 / Out_C1_ConnectionClosed__c2_UnSubAck
+          In_DisconnectTCPC1          -> 1 / Out_C1_ConnectionClosed__Empty
+          In_DisconnectC1             -> 1 / Out_C1_ConnectionClosed__Empty
+    2     In_ConnectC2                -> 4 / Out_Empty__c2_ConnAck
+          In_ConnectC1WithWill        -> 0 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_ConnectC1WithWillRetain  -> 0 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_DeleteRetainedC1         -> 2 / Out_C1_PubAck__c2_ConnectionClosed
+          In_DeleteRetainedC2         -> 2 / Out_Empty__c2_ConnectionClosed
+          In_SubscribeC2              -> 2 / Out_Empty__c2_ConnectionClosed
+          In_UnSubScribeC2            -> 2 / Out_Empty__c2_ConnectionClosed
+          In_DisconnectTCPC1          -> 0 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_DisconnectC1             -> 0 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+    3     In_ConnectC2                -> 5 / Out_Empty__c2_ConnAck
+          In_ConnectC1WithWill        -> 10 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_ConnectC1WithWillRetain  -> 10 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_DeleteRetainedC1         -> 3 / Out_C1_PubAck__c2_ConnectionClosed
+          In_DeleteRetainedC2         -> 3 / Out_Empty__c2_ConnectionClosed
+          In_SubscribeC2              -> 3 / Out_Empty__c2_ConnectionClosed
+          In_UnSubScribeC2            -> 3 / Out_Empty__c2_ConnectionClosed
+          In_DisconnectTCPC1          -> 10 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_DisconnectC1             -> 0 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+    4     In_ConnectC2                -> 2 / Out_Empty__c2_ConnectionClosed
+          In_ConnectC1WithWill        -> 1 / Out_C1_ConnectionClosed__Empty
+          In_ConnectC1WithWillRetain  -> 1 / Out_C1_ConnectionClosed__Empty
+          In_DeleteRetainedC1         -> 4 / Out_C1_PubAck__Empty
+          In_DeleteRetainedC2         -> 4 / Out_Empty__c2_PubAck
+          In_SubscribeC2              -> 7 / Out_Empty__c2_SubAck
+          In_UnSubScribeC2            -> 4 / Out_Empty__c2_UnSubAck
+          In_DisconnectTCPC1          -> 1 / Out_C1_ConnectionClosed__Empty
+          In_DisconnectC1             -> 1 / Out_C1_ConnectionClosed__Empty
+    5     In_ConnectC2                -> 3 / Out_Empty__c2_ConnectionClosed
+          In_ConnectC1WithWill        -> 9 / Out_C1_ConnectionClosed__Empty
+          In_ConnectC1WithWillRetain  -> 9 / Out_C1_ConnectionClosed__Empty
+          In_DeleteRetainedC1         -> 5 / Out_C1_PubAck__Empty
+          In_DeleteRetainedC2         -> 5 / Out_Empty__c2_PubAck
+          In_SubscribeC2              -> 8 / Out_Empty__c2_SubAck
+          In_UnSubScribeC2            -> 5 / Out_Empty__c2_UnSubAck
+          In_DisconnectTCPC1          -> 9 / Out_C1_ConnectionClosed__Empty
+          In_DisconnectC1             -> 1 / Out_C1_ConnectionClosed__Empty
+    6     In_ConnectC2                -> 0 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_ConnectC1WithWill        -> 7 / Out_C1_ConnAck__Empty
+          In_ConnectC1WithWillRetain  -> 8 / Out_C1_ConnAck__Empty
+          In_DeleteRetainedC1         -> 6 / Out_C1_ConnectionClosed__Empty
+          In_DeleteRetainedC2         -> 6 / Out_C1_ConnectionClosed__Pub_c2_my_topic____c2_PubAck
+          In_SubscribeC2              -> 6 / Out_C1_ConnectionClosed__c2_SubAck
+          In_UnSubScribeC2            -> 1 / Out_C1_ConnectionClosed__c2_UnSubAck
+          In_DisconnectTCPC1          -> 6 / Out_C1_ConnectionClosed__Empty
+          In_DisconnectC1             -> 6 / Out_C1_ConnectionClosed__Empty
+    7     In_ConnectC2                -> 2 / Out_Empty__c2_ConnectionClosed
+          In_ConnectC1WithWill        -> 6 / Out_C1_ConnectionClosed__Pub_c2_my_topic_bye
+          In_ConnectC1WithWillRetain  -> 6 / Out_C1_ConnectionClosed__Pub_c2_my_topic_bye
+          In_DeleteRetainedC1         -> 7 / Out_C1_PubAck__Pub_c2_my_topic
+          In_DeleteRetainedC2         -> 7 / Out_Empty__Pub_c2_my_topic____c2_PubAck
+          In_SubscribeC2              -> 7 / Out_Empty__c2_SubAck
+          In_UnSubScribeC2            -> 4 / Out_Empty__c2_UnSubAck
+          In_DisconnectTCPC1          -> 6 / Out_C1_ConnectionClosed__Pub_c2_my_topic_bye
+          In_DisconnectC1             -> 6 / Out_C1_ConnectionClosed__Empty
+    8     In_ConnectC2                -> 3 / Out_Empty__c2_ConnectionClosed
+          In_ConnectC1WithWill        -> 13 / Out_C1_ConnectionClosed__Pub_c2_my_topic_bye
+          In_ConnectC1WithWillRetain  -> 13 / Out_C1_ConnectionClosed__Pub_c2_my_topic_bye
+          In_DeleteRetainedC1         -> 8 / Out_C1_PubAck__Pub_c2_my_topic
+          In_DeleteRetainedC2         -> 8 / Out_Empty__Pub_c2_my_topic____c2_PubAck
+          In_SubscribeC2              -> 8 / Out_Empty__c2_SubAck
+          In_UnSubScribeC2            -> 5 / Out_Empty__c2_UnSubAck
+          In_DisconnectTCPC1          -> 13 / Out_C1_ConnectionClosed__Pub_c2_my_topic_bye
+          In_DisconnectC1             -> 6 / Out_C1_ConnectionClosed__Empty
+    9     In_ConnectC2                -> 10 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_ConnectC1WithWill        -> 11 / Out_C1_ConnAck__Empty
+          In_ConnectC1WithWillRetain  -> 12 / Out_C1_ConnAck__Empty
+          In_DeleteRetainedC1         -> 9 / Out_C1_ConnectionClosed__Empty
+          In_DeleteRetainedC2         -> 1 / Out_C1_ConnectionClosed__c2_PubAck
+          In_SubscribeC2              -> 13 / Out_C1_ConnectionClosed__c2_SubAck__Pub_c2_my_topic_bye
+          In_UnSubScribeC2            -> 9 / Out_C1_ConnectionClosed__c2_UnSubAck
+          In_DisconnectTCPC1          -> 9 / Out_C1_ConnectionClosed__Empty
+          In_DisconnectC1             -> 9 / Out_C1_ConnectionClosed__Empty
+    10    In_ConnectC2                -> 9 / Out_C1_ConnectionClosed__c2_ConnAck
+          In_ConnectC1WithWill        -> 16 / Out_C1_ConnAck__c2_ConnectionClosed
+          In_ConnectC1WithWillRetain  -> 17 / Out_C1_ConnAck__c2_ConnectionClosed
+          In_DeleteRetainedC1         -> 10 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_DeleteRetainedC2         -> 10 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_SubscribeC2              -> 10 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_UnSubScribeC2            -> 10 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_DisconnectTCPC1          -> 10 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_DisconnectC1             -> 10 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+    11    In_ConnectC2                -> 16 / Out_Empty__c2_ConnectionClosed
+          In_ConnectC1WithWill        -> 9 / Out_C1_ConnectionClosed__Empty
+          In_ConnectC1WithWillRetain  -> 9 / Out_C1_ConnectionClosed__Empty
+          In_DeleteRetainedC1         -> 4 / Out_C1_PubAck__Empty
+          In_DeleteRetainedC2         -> 4 / Out_Empty__c2_PubAck
+          In_SubscribeC2              -> 14 / Out_Empty__c2_SubAck__Pub_c2_my_topic_bye
+          In_UnSubScribeC2            -> 11 / Out_Empty__c2_UnSubAck
+          In_DisconnectTCPC1          -> 9 / Out_C1_ConnectionClosed__Empty
+          In_DisconnectC1             -> 9 / Out_C1_ConnectionClosed__Empty
+    12    In_ConnectC2                -> 17 / Out_Empty__c2_ConnectionClosed
+          In_ConnectC1WithWill        -> 9 / Out_C1_ConnectionClosed__Empty
+          In_ConnectC1WithWillRetain  -> 9 / Out_C1_ConnectionClosed__Empty
+          In_DeleteRetainedC1         -> 5 / Out_C1_PubAck__Empty
+          In_DeleteRetainedC2         -> 5 / Out_Empty__c2_PubAck
+          In_SubscribeC2              -> 15 / Out_Empty__c2_SubAck__Pub_c2_my_topic_bye
+          In_UnSubScribeC2            -> 12 / Out_Empty__c2_UnSubAck
+          In_DisconnectTCPC1          -> 9 / Out_C1_ConnectionClosed__Empty
+          In_DisconnectC1             -> 9 / Out_C1_ConnectionClosed__Empty
+    13    In_ConnectC2                -> 10 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_ConnectC1WithWill        -> 14 / Out_C1_ConnAck__Empty
+          In_ConnectC1WithWillRetain  -> 15 / Out_C1_ConnAck__Empty
+          In_DeleteRetainedC1         -> 13 / Out_C1_ConnectionClosed__Empty
+          In_DeleteRetainedC2         -> 6 / Out_C1_ConnectionClosed__Pub_c2_my_topic____c2_PubAck
+          In_SubscribeC2              -> 13 / Out_C1_ConnectionClosed__c2_SubAck
+          In_UnSubScribeC2            -> 9 / Out_C1_ConnectionClosed__c2_UnSubAck
+          In_DisconnectTCPC1          -> 13 / Out_C1_ConnectionClosed__Empty
+          In_DisconnectC1             -> 13 / Out_C1_ConnectionClosed__Empty
+    14    In_ConnectC2                -> 16 / Out_Empty__c2_ConnectionClosed
+          In_ConnectC1WithWill        -> 13 / Out_C1_ConnectionClosed__Pub_c2_my_topic_bye
+          In_ConnectC1WithWillRetain  -> 13 / Out_C1_ConnectionClosed__Pub_c2_my_topic_bye
+          In_DeleteRetainedC1         -> 7 / Out_C1_PubAck__Pub_c2_my_topic
+          In_DeleteRetainedC2         -> 7 / Out_Empty__Pub_c2_my_topic____c2_PubAck
+          In_SubscribeC2              -> 14 / Out_Empty__c2_SubAck
+          In_UnSubScribeC2            -> 11 / Out_Empty__c2_UnSubAck
+          In_DisconnectTCPC1          -> 13 / Out_C1_ConnectionClosed__Pub_c2_my_topic_bye
+          In_DisconnectC1             -> 13 / Out_C1_ConnectionClosed__Empty
+    15    In_ConnectC2                -> 17 / Out_Empty__c2_ConnectionClosed
+          In_ConnectC1WithWill        -> 13 / Out_C1_ConnectionClosed__Pub_c2_my_topic_bye
+          In_ConnectC1WithWillRetain  -> 13 / Out_C1_ConnectionClosed__Pub_c2_my_topic_bye
+          In_DeleteRetainedC1         -> 8 / Out_C1_PubAck__Pub_c2_my_topic
+          In_DeleteRetainedC2         -> 8 / Out_Empty__Pub_c2_my_topic____c2_PubAck
+          In_SubscribeC2              -> 15 / Out_Empty__c2_SubAck
+          In_UnSubScribeC2            -> 12 / Out_Empty__c2_UnSubAck
+          In_DisconnectTCPC1          -> 13 / Out_C1_ConnectionClosed__Pub_c2_my_topic_bye
+          In_DisconnectC1             -> 13 / Out_C1_ConnectionClosed__Empty
+    16    In_ConnectC2                -> 11 / Out_Empty__c2_ConnAck
+          In_ConnectC1WithWill        -> 10 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_ConnectC1WithWillRetain  -> 10 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_DeleteRetainedC1         -> 2 / Out_C1_PubAck__c2_ConnectionClosed
+          In_DeleteRetainedC2         -> 16 / Out_Empty__c2_ConnectionClosed
+          In_SubscribeC2              -> 16 / Out_Empty__c2_ConnectionClosed
+          In_UnSubScribeC2            -> 16 / Out_Empty__c2_ConnectionClosed
+          In_DisconnectTCPC1          -> 10 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_DisconnectC1             -> 10 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+    17    In_ConnectC2                -> 12 / Out_Empty__c2_ConnAck
+          In_ConnectC1WithWill        -> 10 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_ConnectC1WithWillRetain  -> 10 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_DeleteRetainedC1         -> 3 / Out_C1_PubAck__c2_ConnectionClosed
+          In_DeleteRetainedC2         -> 17 / Out_Empty__c2_ConnectionClosed
+          In_SubscribeC2              -> 17 / Out_Empty__c2_ConnectionClosed
+          In_UnSubScribeC2            -> 17 / Out_Empty__c2_ConnectionClosed
+          In_DisconnectTCPC1          -> 10 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_DisconnectC1             -> 10 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+-}
 activeMQTwoClientWillRetain :: MealyAutomaton Int ActiveMQTwoClientWillRetainInput ActiveMQTwoClientWillRetainOutput
-activeMQTwoClientWillRetain = mkMealyAutomaton delta lambda (Set.fromList [0..17]) 0
+activeMQTwoClientWillRetain =
+    case mkMealyAutomatonTable 18 0 deltaTable lambdaTable of
+        Right m -> m
+        Left err -> error ("haal-gen: invalid transition table: " ++ err)
   where
-    delta 0 In_ConnectC2 = 1
-    delta 0 In_ConnectC1WithWill = 2
-    delta 0 In_ConnectC1WithWillRetain = 3
-    delta 0 In_DeleteRetainedC1 = 0
-    delta 0 In_DeleteRetainedC2 = 0
-    delta 0 In_SubscribeC2 = 0
-    delta 0 In_UnSubScribeC2 = 0
-    delta 0 In_DisconnectTCPC1 = 0
-    delta 0 In_DisconnectC1 = 0
-    delta 1 In_ConnectC2 = 0
-    delta 1 In_ConnectC1WithWill = 4
-    delta 1 In_ConnectC1WithWillRetain = 5
-    delta 1 In_DeleteRetainedC1 = 1
-    delta 1 In_DeleteRetainedC2 = 1
-    delta 1 In_SubscribeC2 = 6
-    delta 1 In_UnSubScribeC2 = 1
-    delta 1 In_DisconnectTCPC1 = 1
-    delta 1 In_DisconnectC1 = 1
-    delta 4 In_ConnectC2 = 2
-    delta 4 In_ConnectC1WithWill = 1
-    delta 4 In_ConnectC1WithWillRetain = 1
-    delta 4 In_DeleteRetainedC1 = 4
-    delta 4 In_DeleteRetainedC2 = 4
-    delta 4 In_SubscribeC2 = 7
-    delta 4 In_UnSubScribeC2 = 4
-    delta 4 In_DisconnectTCPC1 = 1
-    delta 4 In_DisconnectC1 = 1
-    delta 2 In_ConnectC2 = 4
-    delta 2 In_ConnectC1WithWill = 0
-    delta 2 In_ConnectC1WithWillRetain = 0
-    delta 2 In_DeleteRetainedC1 = 2
-    delta 2 In_DeleteRetainedC2 = 2
-    delta 2 In_SubscribeC2 = 2
-    delta 2 In_UnSubScribeC2 = 2
-    delta 2 In_DisconnectTCPC1 = 0
-    delta 2 In_DisconnectC1 = 0
-    delta 6 In_ConnectC2 = 0
-    delta 6 In_ConnectC1WithWill = 7
-    delta 6 In_ConnectC1WithWillRetain = 8
-    delta 6 In_DeleteRetainedC1 = 6
-    delta 6 In_DeleteRetainedC2 = 6
-    delta 6 In_SubscribeC2 = 6
-    delta 6 In_UnSubScribeC2 = 1
-    delta 6 In_DisconnectTCPC1 = 6
-    delta 6 In_DisconnectC1 = 6
-    delta 7 In_ConnectC2 = 2
-    delta 7 In_ConnectC1WithWill = 6
-    delta 7 In_ConnectC1WithWillRetain = 6
-    delta 7 In_DeleteRetainedC1 = 7
-    delta 7 In_DeleteRetainedC2 = 7
-    delta 7 In_SubscribeC2 = 7
-    delta 7 In_UnSubScribeC2 = 4
-    delta 7 In_DisconnectTCPC1 = 6
-    delta 7 In_DisconnectC1 = 6
-    delta 5 In_ConnectC2 = 3
-    delta 5 In_ConnectC1WithWill = 9
-    delta 5 In_ConnectC1WithWillRetain = 9
-    delta 5 In_DeleteRetainedC1 = 5
-    delta 5 In_DeleteRetainedC2 = 5
-    delta 5 In_SubscribeC2 = 8
-    delta 5 In_UnSubScribeC2 = 5
-    delta 5 In_DisconnectTCPC1 = 9
-    delta 5 In_DisconnectC1 = 1
-    delta 9 In_ConnectC2 = 10
-    delta 9 In_ConnectC1WithWill = 11
-    delta 9 In_ConnectC1WithWillRetain = 12
-    delta 9 In_DeleteRetainedC1 = 9
-    delta 9 In_DeleteRetainedC2 = 1
-    delta 9 In_SubscribeC2 = 13
-    delta 9 In_UnSubScribeC2 = 9
-    delta 9 In_DisconnectTCPC1 = 9
-    delta 9 In_DisconnectC1 = 9
-    delta 3 In_ConnectC2 = 5
-    delta 3 In_ConnectC1WithWill = 10
-    delta 3 In_ConnectC1WithWillRetain = 10
-    delta 3 In_DeleteRetainedC1 = 3
-    delta 3 In_DeleteRetainedC2 = 3
-    delta 3 In_SubscribeC2 = 3
-    delta 3 In_UnSubScribeC2 = 3
-    delta 3 In_DisconnectTCPC1 = 10
-    delta 3 In_DisconnectC1 = 0
-    delta 8 In_ConnectC2 = 3
-    delta 8 In_ConnectC1WithWill = 13
-    delta 8 In_ConnectC1WithWillRetain = 13
-    delta 8 In_DeleteRetainedC1 = 8
-    delta 8 In_DeleteRetainedC2 = 8
-    delta 8 In_SubscribeC2 = 8
-    delta 8 In_UnSubScribeC2 = 5
-    delta 8 In_DisconnectTCPC1 = 13
-    delta 8 In_DisconnectC1 = 6
-    delta 13 In_ConnectC2 = 10
-    delta 13 In_ConnectC1WithWill = 14
-    delta 13 In_ConnectC1WithWillRetain = 15
-    delta 13 In_DeleteRetainedC1 = 13
-    delta 13 In_DeleteRetainedC2 = 6
-    delta 13 In_SubscribeC2 = 13
-    delta 13 In_UnSubScribeC2 = 9
-    delta 13 In_DisconnectTCPC1 = 13
-    delta 13 In_DisconnectC1 = 13
-    delta 11 In_ConnectC2 = 16
-    delta 11 In_ConnectC1WithWill = 9
-    delta 11 In_ConnectC1WithWillRetain = 9
-    delta 11 In_DeleteRetainedC1 = 4
-    delta 11 In_DeleteRetainedC2 = 4
-    delta 11 In_SubscribeC2 = 14
-    delta 11 In_UnSubScribeC2 = 11
-    delta 11 In_DisconnectTCPC1 = 9
-    delta 11 In_DisconnectC1 = 9
-    delta 10 In_ConnectC2 = 9
-    delta 10 In_ConnectC1WithWill = 16
-    delta 10 In_ConnectC1WithWillRetain = 17
-    delta 10 In_DeleteRetainedC1 = 10
-    delta 10 In_DeleteRetainedC2 = 10
-    delta 10 In_SubscribeC2 = 10
-    delta 10 In_UnSubScribeC2 = 10
-    delta 10 In_DisconnectTCPC1 = 10
-    delta 10 In_DisconnectC1 = 10
-    delta 14 In_ConnectC2 = 16
-    delta 14 In_ConnectC1WithWill = 13
-    delta 14 In_ConnectC1WithWillRetain = 13
-    delta 14 In_DeleteRetainedC1 = 7
-    delta 14 In_DeleteRetainedC2 = 7
-    delta 14 In_SubscribeC2 = 14
-    delta 14 In_UnSubScribeC2 = 11
-    delta 14 In_DisconnectTCPC1 = 13
-    delta 14 In_DisconnectC1 = 13
-    delta 16 In_ConnectC2 = 11
-    delta 16 In_ConnectC1WithWill = 10
-    delta 16 In_ConnectC1WithWillRetain = 10
-    delta 16 In_DeleteRetainedC1 = 2
-    delta 16 In_DeleteRetainedC2 = 16
-    delta 16 In_SubscribeC2 = 16
-    delta 16 In_UnSubScribeC2 = 16
-    delta 16 In_DisconnectTCPC1 = 10
-    delta 16 In_DisconnectC1 = 10
-    delta 15 In_ConnectC2 = 17
-    delta 15 In_ConnectC1WithWill = 13
-    delta 15 In_ConnectC1WithWillRetain = 13
-    delta 15 In_DeleteRetainedC1 = 8
-    delta 15 In_DeleteRetainedC2 = 8
-    delta 15 In_SubscribeC2 = 15
-    delta 15 In_UnSubScribeC2 = 12
-    delta 15 In_DisconnectTCPC1 = 13
-    delta 15 In_DisconnectC1 = 13
-    delta 17 In_ConnectC2 = 12
-    delta 17 In_ConnectC1WithWill = 10
-    delta 17 In_ConnectC1WithWillRetain = 10
-    delta 17 In_DeleteRetainedC1 = 3
-    delta 17 In_DeleteRetainedC2 = 17
-    delta 17 In_SubscribeC2 = 17
-    delta 17 In_UnSubScribeC2 = 17
-    delta 17 In_DisconnectTCPC1 = 10
-    delta 17 In_DisconnectC1 = 10
-    delta 12 In_ConnectC2 = 17
-    delta 12 In_ConnectC1WithWill = 9
-    delta 12 In_ConnectC1WithWillRetain = 9
-    delta 12 In_DeleteRetainedC1 = 5
-    delta 12 In_DeleteRetainedC2 = 5
-    delta 12 In_SubscribeC2 = 15
-    delta 12 In_UnSubScribeC2 = 12
-    delta 12 In_DisconnectTCPC1 = 9
-    delta 12 In_DisconnectC1 = 9
-    delta _ _ = error "haal-gen: undefined transition"
-    lambda 0 In_ConnectC2 = Out_C1_ConnectionClosed__c2_ConnAck
-    lambda 0 In_ConnectC1WithWill = Out_C1_ConnAck__c2_ConnectionClosed
-    lambda 0 In_ConnectC1WithWillRetain = Out_C1_ConnAck__c2_ConnectionClosed
-    lambda 0 In_DeleteRetainedC1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 0 In_DeleteRetainedC2 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 0 In_SubscribeC2 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 0 In_UnSubScribeC2 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 0 In_DisconnectTCPC1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 0 In_DisconnectC1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 1 In_ConnectC2 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 1 In_ConnectC1WithWill = Out_C1_ConnAck__Empty
-    lambda 1 In_ConnectC1WithWillRetain = Out_C1_ConnAck__Empty
-    lambda 1 In_DeleteRetainedC1 = Out_C1_ConnectionClosed__Empty
-    lambda 1 In_DeleteRetainedC2 = Out_C1_ConnectionClosed__c2_PubAck
-    lambda 1 In_SubscribeC2 = Out_C1_ConnectionClosed__c2_SubAck
-    lambda 1 In_UnSubScribeC2 = Out_C1_ConnectionClosed__c2_UnSubAck
-    lambda 1 In_DisconnectTCPC1 = Out_C1_ConnectionClosed__Empty
-    lambda 1 In_DisconnectC1 = Out_C1_ConnectionClosed__Empty
-    lambda 4 In_ConnectC2 = Out_Empty__c2_ConnectionClosed
-    lambda 4 In_ConnectC1WithWill = Out_C1_ConnectionClosed__Empty
-    lambda 4 In_ConnectC1WithWillRetain = Out_C1_ConnectionClosed__Empty
-    lambda 4 In_DeleteRetainedC1 = Out_C1_PubAck__Empty
-    lambda 4 In_DeleteRetainedC2 = Out_Empty__c2_PubAck
-    lambda 4 In_SubscribeC2 = Out_Empty__c2_SubAck
-    lambda 4 In_UnSubScribeC2 = Out_Empty__c2_UnSubAck
-    lambda 4 In_DisconnectTCPC1 = Out_C1_ConnectionClosed__Empty
-    lambda 4 In_DisconnectC1 = Out_C1_ConnectionClosed__Empty
-    lambda 2 In_ConnectC2 = Out_Empty__c2_ConnAck
-    lambda 2 In_ConnectC1WithWill = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 2 In_ConnectC1WithWillRetain = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 2 In_DeleteRetainedC1 = Out_C1_PubAck__c2_ConnectionClosed
-    lambda 2 In_DeleteRetainedC2 = Out_Empty__c2_ConnectionClosed
-    lambda 2 In_SubscribeC2 = Out_Empty__c2_ConnectionClosed
-    lambda 2 In_UnSubScribeC2 = Out_Empty__c2_ConnectionClosed
-    lambda 2 In_DisconnectTCPC1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 2 In_DisconnectC1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 6 In_ConnectC2 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 6 In_ConnectC1WithWill = Out_C1_ConnAck__Empty
-    lambda 6 In_ConnectC1WithWillRetain = Out_C1_ConnAck__Empty
-    lambda 6 In_DeleteRetainedC1 = Out_C1_ConnectionClosed__Empty
-    lambda 6 In_DeleteRetainedC2 = Out_C1_ConnectionClosed__Pub_c2_my_topic____c2_PubAck
-    lambda 6 In_SubscribeC2 = Out_C1_ConnectionClosed__c2_SubAck
-    lambda 6 In_UnSubScribeC2 = Out_C1_ConnectionClosed__c2_UnSubAck
-    lambda 6 In_DisconnectTCPC1 = Out_C1_ConnectionClosed__Empty
-    lambda 6 In_DisconnectC1 = Out_C1_ConnectionClosed__Empty
-    lambda 7 In_ConnectC2 = Out_Empty__c2_ConnectionClosed
-    lambda 7 In_ConnectC1WithWill = Out_C1_ConnectionClosed__Pub_c2_my_topic_bye
-    lambda 7 In_ConnectC1WithWillRetain = Out_C1_ConnectionClosed__Pub_c2_my_topic_bye
-    lambda 7 In_DeleteRetainedC1 = Out_C1_PubAck__Pub_c2_my_topic
-    lambda 7 In_DeleteRetainedC2 = Out_Empty__Pub_c2_my_topic____c2_PubAck
-    lambda 7 In_SubscribeC2 = Out_Empty__c2_SubAck
-    lambda 7 In_UnSubScribeC2 = Out_Empty__c2_UnSubAck
-    lambda 7 In_DisconnectTCPC1 = Out_C1_ConnectionClosed__Pub_c2_my_topic_bye
-    lambda 7 In_DisconnectC1 = Out_C1_ConnectionClosed__Empty
-    lambda 5 In_ConnectC2 = Out_Empty__c2_ConnectionClosed
-    lambda 5 In_ConnectC1WithWill = Out_C1_ConnectionClosed__Empty
-    lambda 5 In_ConnectC1WithWillRetain = Out_C1_ConnectionClosed__Empty
-    lambda 5 In_DeleteRetainedC1 = Out_C1_PubAck__Empty
-    lambda 5 In_DeleteRetainedC2 = Out_Empty__c2_PubAck
-    lambda 5 In_SubscribeC2 = Out_Empty__c2_SubAck
-    lambda 5 In_UnSubScribeC2 = Out_Empty__c2_UnSubAck
-    lambda 5 In_DisconnectTCPC1 = Out_C1_ConnectionClosed__Empty
-    lambda 5 In_DisconnectC1 = Out_C1_ConnectionClosed__Empty
-    lambda 9 In_ConnectC2 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 9 In_ConnectC1WithWill = Out_C1_ConnAck__Empty
-    lambda 9 In_ConnectC1WithWillRetain = Out_C1_ConnAck__Empty
-    lambda 9 In_DeleteRetainedC1 = Out_C1_ConnectionClosed__Empty
-    lambda 9 In_DeleteRetainedC2 = Out_C1_ConnectionClosed__c2_PubAck
-    lambda 9 In_SubscribeC2 = Out_C1_ConnectionClosed__c2_SubAck__Pub_c2_my_topic_bye
-    lambda 9 In_UnSubScribeC2 = Out_C1_ConnectionClosed__c2_UnSubAck
-    lambda 9 In_DisconnectTCPC1 = Out_C1_ConnectionClosed__Empty
-    lambda 9 In_DisconnectC1 = Out_C1_ConnectionClosed__Empty
-    lambda 3 In_ConnectC2 = Out_Empty__c2_ConnAck
-    lambda 3 In_ConnectC1WithWill = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 3 In_ConnectC1WithWillRetain = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 3 In_DeleteRetainedC1 = Out_C1_PubAck__c2_ConnectionClosed
-    lambda 3 In_DeleteRetainedC2 = Out_Empty__c2_ConnectionClosed
-    lambda 3 In_SubscribeC2 = Out_Empty__c2_ConnectionClosed
-    lambda 3 In_UnSubScribeC2 = Out_Empty__c2_ConnectionClosed
-    lambda 3 In_DisconnectTCPC1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 3 In_DisconnectC1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 8 In_ConnectC2 = Out_Empty__c2_ConnectionClosed
-    lambda 8 In_ConnectC1WithWill = Out_C1_ConnectionClosed__Pub_c2_my_topic_bye
-    lambda 8 In_ConnectC1WithWillRetain = Out_C1_ConnectionClosed__Pub_c2_my_topic_bye
-    lambda 8 In_DeleteRetainedC1 = Out_C1_PubAck__Pub_c2_my_topic
-    lambda 8 In_DeleteRetainedC2 = Out_Empty__Pub_c2_my_topic____c2_PubAck
-    lambda 8 In_SubscribeC2 = Out_Empty__c2_SubAck
-    lambda 8 In_UnSubScribeC2 = Out_Empty__c2_UnSubAck
-    lambda 8 In_DisconnectTCPC1 = Out_C1_ConnectionClosed__Pub_c2_my_topic_bye
-    lambda 8 In_DisconnectC1 = Out_C1_ConnectionClosed__Empty
-    lambda 13 In_ConnectC2 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 13 In_ConnectC1WithWill = Out_C1_ConnAck__Empty
-    lambda 13 In_ConnectC1WithWillRetain = Out_C1_ConnAck__Empty
-    lambda 13 In_DeleteRetainedC1 = Out_C1_ConnectionClosed__Empty
-    lambda 13 In_DeleteRetainedC2 = Out_C1_ConnectionClosed__Pub_c2_my_topic____c2_PubAck
-    lambda 13 In_SubscribeC2 = Out_C1_ConnectionClosed__c2_SubAck
-    lambda 13 In_UnSubScribeC2 = Out_C1_ConnectionClosed__c2_UnSubAck
-    lambda 13 In_DisconnectTCPC1 = Out_C1_ConnectionClosed__Empty
-    lambda 13 In_DisconnectC1 = Out_C1_ConnectionClosed__Empty
-    lambda 11 In_ConnectC2 = Out_Empty__c2_ConnectionClosed
-    lambda 11 In_ConnectC1WithWill = Out_C1_ConnectionClosed__Empty
-    lambda 11 In_ConnectC1WithWillRetain = Out_C1_ConnectionClosed__Empty
-    lambda 11 In_DeleteRetainedC1 = Out_C1_PubAck__Empty
-    lambda 11 In_DeleteRetainedC2 = Out_Empty__c2_PubAck
-    lambda 11 In_SubscribeC2 = Out_Empty__c2_SubAck__Pub_c2_my_topic_bye
-    lambda 11 In_UnSubScribeC2 = Out_Empty__c2_UnSubAck
-    lambda 11 In_DisconnectTCPC1 = Out_C1_ConnectionClosed__Empty
-    lambda 11 In_DisconnectC1 = Out_C1_ConnectionClosed__Empty
-    lambda 10 In_ConnectC2 = Out_C1_ConnectionClosed__c2_ConnAck
-    lambda 10 In_ConnectC1WithWill = Out_C1_ConnAck__c2_ConnectionClosed
-    lambda 10 In_ConnectC1WithWillRetain = Out_C1_ConnAck__c2_ConnectionClosed
-    lambda 10 In_DeleteRetainedC1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 10 In_DeleteRetainedC2 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 10 In_SubscribeC2 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 10 In_UnSubScribeC2 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 10 In_DisconnectTCPC1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 10 In_DisconnectC1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 14 In_ConnectC2 = Out_Empty__c2_ConnectionClosed
-    lambda 14 In_ConnectC1WithWill = Out_C1_ConnectionClosed__Pub_c2_my_topic_bye
-    lambda 14 In_ConnectC1WithWillRetain = Out_C1_ConnectionClosed__Pub_c2_my_topic_bye
-    lambda 14 In_DeleteRetainedC1 = Out_C1_PubAck__Pub_c2_my_topic
-    lambda 14 In_DeleteRetainedC2 = Out_Empty__Pub_c2_my_topic____c2_PubAck
-    lambda 14 In_SubscribeC2 = Out_Empty__c2_SubAck
-    lambda 14 In_UnSubScribeC2 = Out_Empty__c2_UnSubAck
-    lambda 14 In_DisconnectTCPC1 = Out_C1_ConnectionClosed__Pub_c2_my_topic_bye
-    lambda 14 In_DisconnectC1 = Out_C1_ConnectionClosed__Empty
-    lambda 16 In_ConnectC2 = Out_Empty__c2_ConnAck
-    lambda 16 In_ConnectC1WithWill = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 16 In_ConnectC1WithWillRetain = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 16 In_DeleteRetainedC1 = Out_C1_PubAck__c2_ConnectionClosed
-    lambda 16 In_DeleteRetainedC2 = Out_Empty__c2_ConnectionClosed
-    lambda 16 In_SubscribeC2 = Out_Empty__c2_ConnectionClosed
-    lambda 16 In_UnSubScribeC2 = Out_Empty__c2_ConnectionClosed
-    lambda 16 In_DisconnectTCPC1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 16 In_DisconnectC1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 15 In_ConnectC2 = Out_Empty__c2_ConnectionClosed
-    lambda 15 In_ConnectC1WithWill = Out_C1_ConnectionClosed__Pub_c2_my_topic_bye
-    lambda 15 In_ConnectC1WithWillRetain = Out_C1_ConnectionClosed__Pub_c2_my_topic_bye
-    lambda 15 In_DeleteRetainedC1 = Out_C1_PubAck__Pub_c2_my_topic
-    lambda 15 In_DeleteRetainedC2 = Out_Empty__Pub_c2_my_topic____c2_PubAck
-    lambda 15 In_SubscribeC2 = Out_Empty__c2_SubAck
-    lambda 15 In_UnSubScribeC2 = Out_Empty__c2_UnSubAck
-    lambda 15 In_DisconnectTCPC1 = Out_C1_ConnectionClosed__Pub_c2_my_topic_bye
-    lambda 15 In_DisconnectC1 = Out_C1_ConnectionClosed__Empty
-    lambda 17 In_ConnectC2 = Out_Empty__c2_ConnAck
-    lambda 17 In_ConnectC1WithWill = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 17 In_ConnectC1WithWillRetain = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 17 In_DeleteRetainedC1 = Out_C1_PubAck__c2_ConnectionClosed
-    lambda 17 In_DeleteRetainedC2 = Out_Empty__c2_ConnectionClosed
-    lambda 17 In_SubscribeC2 = Out_Empty__c2_ConnectionClosed
-    lambda 17 In_UnSubScribeC2 = Out_Empty__c2_ConnectionClosed
-    lambda 17 In_DisconnectTCPC1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 17 In_DisconnectC1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 12 In_ConnectC2 = Out_Empty__c2_ConnectionClosed
-    lambda 12 In_ConnectC1WithWill = Out_C1_ConnectionClosed__Empty
-    lambda 12 In_ConnectC1WithWillRetain = Out_C1_ConnectionClosed__Empty
-    lambda 12 In_DeleteRetainedC1 = Out_C1_PubAck__Empty
-    lambda 12 In_DeleteRetainedC2 = Out_Empty__c2_PubAck
-    lambda 12 In_SubscribeC2 = Out_Empty__c2_SubAck__Pub_c2_my_topic_bye
-    lambda 12 In_UnSubScribeC2 = Out_Empty__c2_UnSubAck
-    lambda 12 In_DisconnectTCPC1 = Out_C1_ConnectionClosed__Empty
-    lambda 12 In_DisconnectC1 = Out_C1_ConnectionClosed__Empty
-    lambda _ _ = error "haal-gen: undefined transition"
+    deltaTable =
+        "\1\2\3\0\0\0\0\0\0\
+        \\0\4\5\1\1\6\1\1\1\
+        \\4\0\0\2\2\2\2\0\0\
+        \\5\10\10\3\3\3\3\10\0\
+        \\2\1\1\4\4\7\4\1\1\
+        \\3\9\9\5\5\8\5\9\1\
+        \\0\7\8\6\6\6\1\6\6\
+        \\2\6\6\7\7\7\4\6\6\
+        \\3\13\13\8\8\8\5\13\6\
+        \\10\11\12\9\1\13\9\9\9\
+        \\9\16\17\10\10\10\10\10\10\
+        \\16\9\9\4\4\14\11\9\9\
+        \\17\9\9\5\5\15\12\9\9\
+        \\10\14\15\13\6\13\9\13\13\
+        \\16\13\13\7\7\14\11\13\13\
+        \\17\13\13\8\8\15\12\13\13\
+        \\11\10\10\2\16\16\16\10\10\
+        \\12\10\10\3\17\17\17\10\10"
+    lambdaTable =
+        "\0\1\1\2\2\2\2\2\2\
+        \\2\3\3\4\5\6\7\4\4\
+        \\13\2\2\14\8\8\8\2\2\
+        \\13\2\2\14\8\8\8\2\2\
+        \\8\4\4\9\10\11\12\4\4\
+        \\8\4\4\9\10\11\12\4\4\
+        \\2\3\3\4\15\6\7\4\4\
+        \\8\16\16\17\18\11\12\16\4\
+        \\8\16\16\17\18\11\12\16\4\
+        \\2\3\3\4\5\19\7\4\4\
+        \\0\1\1\2\2\2\2\2\2\
+        \\8\4\4\9\10\20\12\4\4\
+        \\8\4\4\9\10\20\12\4\4\
+        \\2\3\3\4\15\6\7\4\4\
+        \\8\16\16\17\18\11\12\16\4\
+        \\8\16\16\17\18\11\12\16\4\
+        \\13\2\2\14\8\8\8\2\2\
+        \\13\2\2\14\8\8\8\2\2"
diff --git a/src/Haal/Models/MQTT/EmqttInvalid.hs b/src/Haal/Models/MQTT/EmqttInvalid.hs
--- a/src/Haal/Models/MQTT/EmqttInvalid.hs
+++ b/src/Haal/Models/MQTT/EmqttInvalid.hs
@@ -5,8 +5,7 @@
     , emqttInvalid
     ) where
 
-import qualified Data.Set as Set
-import Haal.Automaton.MealyAutomaton (MealyAutomaton, mkMealyAutomaton)
+import Haal.Automaton.MealyAutomaton (MealyAutomaton, mkMealyAutomatonTable)
 
 data EmqttInvalidInput
     = In_Connect
@@ -31,74 +30,52 @@
     | Out_Pub_my_topic_messageQos0
     deriving (Show, Eq, Ord, Enum, Bounded)
 
+{- Transitions (state  input -> next state / output):
+    0     In_Connect               -> 1 / Out_ConnAckPacket_false_0
+          In_ConnectNonClean       -> 1 / Out_ConnAckPacket_false_0
+          In_PublishQoS0Dup        -> 0 / Out_ConnectionClosed
+          In_PublishQoSMinus1      -> 0 / Out_ConnectionClosed
+          In_PublishWildCard       -> 0 / Out_ConnectionClosed
+          In_SubscribeWildMatch    -> 0 / Out_ConnectionClosed
+          In_UnSubscribeWildMatch  -> 0 / Out_ConnectionClosed
+          In_Subscribe             -> 0 / Out_ConnectionClosed
+          In_SubscribeMinus1       -> 0 / Out_ConnectionClosed
+          In_UnSubScribe           -> 0 / Out_ConnectionClosed
+          In_Disconnect            -> 0 / Out_ConnectionClosed
+    1     In_Connect               -> 0 / Out_ConnectionClosed
+          In_ConnectNonClean       -> 0 / Out_ConnectionClosed
+          In_PublishQoS0Dup        -> 1 / Out_Empty
+          In_PublishQoSMinus1      -> 0 / Out_ConnectionClosed
+          In_PublishWildCard       -> 0 / Out_ConnectionClosed
+          In_SubscribeWildMatch    -> 1 / Out_SubAck
+          In_UnSubscribeWildMatch  -> 1 / Out_UnSubAck
+          In_Subscribe             -> 2 / Out_SubAck
+          In_SubscribeMinus1       -> 0 / Out_ConnectionClosed
+          In_UnSubScribe           -> 1 / Out_UnSubAck
+          In_Disconnect            -> 0 / Out_ConnectionClosed
+    2     In_Connect               -> 0 / Out_ConnectionClosed
+          In_ConnectNonClean       -> 0 / Out_ConnectionClosed
+          In_PublishQoS0Dup        -> 2 / Out_Pub_my_topic_messageQos0
+          In_PublishQoSMinus1      -> 0 / Out_ConnectionClosed
+          In_PublishWildCard       -> 0 / Out_ConnectionClosed
+          In_SubscribeWildMatch    -> 2 / Out_SubAck
+          In_UnSubscribeWildMatch  -> 2 / Out_UnSubAck
+          In_Subscribe             -> 2 / Out_SubAck
+          In_SubscribeMinus1       -> 0 / Out_ConnectionClosed
+          In_UnSubScribe           -> 1 / Out_UnSubAck
+          In_Disconnect            -> 0 / Out_ConnectionClosed
+-}
 emqttInvalid :: MealyAutomaton Int EmqttInvalidInput EmqttInvalidOutput
-emqttInvalid = mkMealyAutomaton delta lambda (Set.fromList [0..2]) 0
+emqttInvalid =
+    case mkMealyAutomatonTable 3 0 deltaTable lambdaTable of
+        Right m -> m
+        Left err -> error ("haal-gen: invalid transition table: " ++ err)
   where
-    delta 0 In_Connect = 1
-    delta 0 In_ConnectNonClean = 1
-    delta 0 In_PublishQoS0Dup = 0
-    delta 0 In_PublishQoSMinus1 = 0
-    delta 0 In_PublishWildCard = 0
-    delta 0 In_SubscribeWildMatch = 0
-    delta 0 In_UnSubscribeWildMatch = 0
-    delta 0 In_Subscribe = 0
-    delta 0 In_SubscribeMinus1 = 0
-    delta 0 In_UnSubScribe = 0
-    delta 0 In_Disconnect = 0
-    delta 1 In_Connect = 0
-    delta 1 In_ConnectNonClean = 0
-    delta 1 In_PublishQoS0Dup = 1
-    delta 1 In_PublishQoSMinus1 = 0
-    delta 1 In_PublishWildCard = 0
-    delta 1 In_SubscribeWildMatch = 1
-    delta 1 In_UnSubscribeWildMatch = 1
-    delta 1 In_Subscribe = 2
-    delta 1 In_SubscribeMinus1 = 0
-    delta 1 In_UnSubScribe = 1
-    delta 1 In_Disconnect = 0
-    delta 2 In_Connect = 0
-    delta 2 In_ConnectNonClean = 0
-    delta 2 In_PublishQoS0Dup = 2
-    delta 2 In_PublishQoSMinus1 = 0
-    delta 2 In_PublishWildCard = 0
-    delta 2 In_SubscribeWildMatch = 2
-    delta 2 In_UnSubscribeWildMatch = 2
-    delta 2 In_Subscribe = 2
-    delta 2 In_SubscribeMinus1 = 0
-    delta 2 In_UnSubScribe = 1
-    delta 2 In_Disconnect = 0
-    delta _ _ = error "haal-gen: undefined transition"
-    lambda 0 In_Connect = Out_ConnAckPacket_false_0
-    lambda 0 In_ConnectNonClean = Out_ConnAckPacket_false_0
-    lambda 0 In_PublishQoS0Dup = Out_ConnectionClosed
-    lambda 0 In_PublishQoSMinus1 = Out_ConnectionClosed
-    lambda 0 In_PublishWildCard = Out_ConnectionClosed
-    lambda 0 In_SubscribeWildMatch = Out_ConnectionClosed
-    lambda 0 In_UnSubscribeWildMatch = Out_ConnectionClosed
-    lambda 0 In_Subscribe = Out_ConnectionClosed
-    lambda 0 In_SubscribeMinus1 = Out_ConnectionClosed
-    lambda 0 In_UnSubScribe = Out_ConnectionClosed
-    lambda 0 In_Disconnect = Out_ConnectionClosed
-    lambda 1 In_Connect = Out_ConnectionClosed
-    lambda 1 In_ConnectNonClean = Out_ConnectionClosed
-    lambda 1 In_PublishQoS0Dup = Out_Empty
-    lambda 1 In_PublishQoSMinus1 = Out_ConnectionClosed
-    lambda 1 In_PublishWildCard = Out_ConnectionClosed
-    lambda 1 In_SubscribeWildMatch = Out_SubAck
-    lambda 1 In_UnSubscribeWildMatch = Out_UnSubAck
-    lambda 1 In_Subscribe = Out_SubAck
-    lambda 1 In_SubscribeMinus1 = Out_ConnectionClosed
-    lambda 1 In_UnSubScribe = Out_UnSubAck
-    lambda 1 In_Disconnect = Out_ConnectionClosed
-    lambda 2 In_Connect = Out_ConnectionClosed
-    lambda 2 In_ConnectNonClean = Out_ConnectionClosed
-    lambda 2 In_PublishQoS0Dup = Out_Pub_my_topic_messageQos0
-    lambda 2 In_PublishQoSMinus1 = Out_ConnectionClosed
-    lambda 2 In_PublishWildCard = Out_ConnectionClosed
-    lambda 2 In_SubscribeWildMatch = Out_SubAck
-    lambda 2 In_UnSubscribeWildMatch = Out_UnSubAck
-    lambda 2 In_Subscribe = Out_SubAck
-    lambda 2 In_SubscribeMinus1 = Out_ConnectionClosed
-    lambda 2 In_UnSubScribe = Out_UnSubAck
-    lambda 2 In_Disconnect = Out_ConnectionClosed
-    lambda _ _ = error "haal-gen: undefined transition"
+    deltaTable =
+        "\1\1\0\0\0\0\0\0\0\0\0\
+        \\0\0\1\0\0\1\1\2\0\1\0\
+        \\0\0\2\0\0\2\2\2\0\1\0"
+    lambdaTable =
+        "\0\0\1\1\1\1\1\1\1\1\1\
+        \\1\1\2\1\1\3\4\3\1\4\1\
+        \\1\1\5\1\1\3\4\3\1\4\1"
diff --git a/src/Haal/Models/MQTT/EmqttNonClean.hs b/src/Haal/Models/MQTT/EmqttNonClean.hs
--- a/src/Haal/Models/MQTT/EmqttNonClean.hs
+++ b/src/Haal/Models/MQTT/EmqttNonClean.hs
@@ -5,8 +5,7 @@
     , emqttNonClean
     ) where
 
-import qualified Data.Set as Set
-import Haal.Automaton.MealyAutomaton (MealyAutomaton, mkMealyAutomaton)
+import Haal.Automaton.MealyAutomaton (MealyAutomaton, mkMealyAutomatonTable)
 
 data EmqttNonCleanInput
     = In_ConnectC2
@@ -40,152 +39,109 @@
     | Out_C1_ConnectionClosed__c2_Pub_my_topic_messageQos1_1___c2_Pub_my_topic_messageQos1_1___c2_ConnAck
     deriving (Show, Eq, Ord, Enum, Bounded)
 
+{- Transitions (state  input -> next state / output):
+    0     In_ConnectC2        -> 1 / Out_C1_ConnectionClosed__c2_ConnAck
+          In_ConnectC1        -> 2 / Out_C1_ConnAck__c2_ConnectionClosed
+          In_PublishQoS1C1    -> 0 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_SubscribeC2QoS1  -> 0 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_UnSubscribeC2    -> 0 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_DisconnectC2     -> 0 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+    1     In_ConnectC2        -> 0 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_ConnectC1        -> 3 / Out_C1_ConnAck__Empty
+          In_PublishQoS1C1    -> 1 / Out_C1_ConnectionClosed__Empty
+          In_SubscribeC2QoS1  -> 4 / Out_C1_ConnectionClosed__c2_SubAck__c2_Pub_my_topic_bye_1
+          In_UnSubscribeC2    -> 1 / Out_C1_ConnectionClosed__c2_UnSubAck
+          In_DisconnectC2     -> 0 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+    2     In_ConnectC2        -> 3 / Out_Empty__c2_ConnAck
+          In_ConnectC1        -> 0 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_PublishQoS1C1    -> 2 / Out_C1_PubAck__c2_ConnectionClosed
+          In_SubscribeC2QoS1  -> 2 / Out_Empty__c2_ConnectionClosed
+          In_UnSubscribeC2    -> 2 / Out_Empty__c2_ConnectionClosed
+          In_DisconnectC2     -> 2 / Out_Empty__c2_ConnectionClosed
+    3     In_ConnectC2        -> 2 / Out_Empty__c2_ConnectionClosed
+          In_ConnectC1        -> 1 / Out_C1_ConnectionClosed__Empty
+          In_PublishQoS1C1    -> 3 / Out_C1_PubAck__Empty
+          In_SubscribeC2QoS1  -> 5 / Out_Empty__c2_SubAck__c2_Pub_my_topic_bye_1
+          In_UnSubscribeC2    -> 3 / Out_Empty__c2_UnSubAck
+          In_DisconnectC2     -> 2 / Out_Empty__c2_ConnectionClosed
+    4     In_ConnectC2        -> 7 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_ConnectC1        -> 5 / Out_C1_ConnAck__Empty
+          In_PublishQoS1C1    -> 4 / Out_C1_ConnectionClosed__Empty
+          In_SubscribeC2QoS1  -> 4 / Out_C1_ConnectionClosed__c2_SubAck
+          In_UnSubscribeC2    -> 1 / Out_C1_ConnectionClosed__c2_UnSubAck
+          In_DisconnectC2     -> 7 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+    5     In_ConnectC2        -> 6 / Out_Empty__c2_ConnectionClosed
+          In_ConnectC1        -> 4 / Out_C1_ConnectionClosed__Empty
+          In_PublishQoS1C1    -> 5 / Out_C1_PubAck__c2_Pub_my_topic_messageQos1_1
+          In_SubscribeC2QoS1  -> 5 / Out_Empty__c2_SubAck
+          In_UnSubscribeC2    -> 3 / Out_Empty__c2_UnSubAck
+          In_DisconnectC2     -> 6 / Out_Empty__c2_ConnectionClosed
+    6     In_ConnectC2        -> 5 / Out_Empty__c2_ConnAck
+          In_ConnectC1        -> 7 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_PublishQoS1C1    -> 8 / Out_C1_PubAck__c2_ConnectionClosed
+          In_SubscribeC2QoS1  -> 6 / Out_Empty__c2_ConnectionClosed
+          In_UnSubscribeC2    -> 6 / Out_Empty__c2_ConnectionClosed
+          In_DisconnectC2     -> 6 / Out_Empty__c2_ConnectionClosed
+    7     In_ConnectC2        -> 4 / Out_C1_ConnectionClosed__c2_ConnAck
+          In_ConnectC1        -> 6 / Out_C1_ConnAck__c2_ConnectionClosed
+          In_PublishQoS1C1    -> 7 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_SubscribeC2QoS1  -> 7 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_UnSubscribeC2    -> 7 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_DisconnectC2     -> 7 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+    8     In_ConnectC2        -> 5 / Out_Empty__c2_Pub_my_topic_messageQos1_1___c2_ConnAck
+          In_ConnectC1        -> 9 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_PublishQoS1C1    -> 10 / Out_C1_PubAck__c2_ConnectionClosed
+          In_SubscribeC2QoS1  -> 8 / Out_Empty__c2_ConnectionClosed
+          In_UnSubscribeC2    -> 8 / Out_Empty__c2_ConnectionClosed
+          In_DisconnectC2     -> 8 / Out_Empty__c2_ConnectionClosed
+    9     In_ConnectC2        -> 4 / Out_C1_ConnectionClosed__c2_Pub_my_topic_messageQos1_1___c2_ConnAck
+          In_ConnectC1        -> 8 / Out_C1_ConnAck__c2_ConnectionClosed
+          In_PublishQoS1C1    -> 9 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_SubscribeC2QoS1  -> 9 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_UnSubscribeC2    -> 9 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_DisconnectC2     -> 9 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+    10    In_ConnectC2        -> 5 / Out_Empty__c2_Pub_my_topic_messageQos1_1___c2_Pub_my_topic_messageQos1_1___c2_ConnAck
+          In_ConnectC1        -> 11 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_PublishQoS1C1    -> 10 / Out_C1_PubAck__c2_ConnectionClosed
+          In_SubscribeC2QoS1  -> 10 / Out_Empty__c2_ConnectionClosed
+          In_UnSubscribeC2    -> 10 / Out_Empty__c2_ConnectionClosed
+          In_DisconnectC2     -> 10 / Out_Empty__c2_ConnectionClosed
+    11    In_ConnectC2        -> 4 / Out_C1_ConnectionClosed__c2_Pub_my_topic_messageQos1_1___c2_Pub_my_topic_messageQos1_1___c2_ConnAck
+          In_ConnectC1        -> 10 / Out_C1_ConnAck__c2_ConnectionClosed
+          In_PublishQoS1C1    -> 11 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_SubscribeC2QoS1  -> 11 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_UnSubscribeC2    -> 11 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_DisconnectC2     -> 11 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+-}
 emqttNonClean :: MealyAutomaton Int EmqttNonCleanInput EmqttNonCleanOutput
-emqttNonClean = mkMealyAutomaton delta lambda (Set.fromList [0..11]) 0
+emqttNonClean =
+    case mkMealyAutomatonTable 12 0 deltaTable lambdaTable of
+        Right m -> m
+        Left err -> error ("haal-gen: invalid transition table: " ++ err)
   where
-    delta 0 In_ConnectC2 = 1
-    delta 0 In_ConnectC1 = 2
-    delta 0 In_PublishQoS1C1 = 0
-    delta 0 In_SubscribeC2QoS1 = 0
-    delta 0 In_UnSubscribeC2 = 0
-    delta 0 In_DisconnectC2 = 0
-    delta 2 In_ConnectC2 = 3
-    delta 2 In_ConnectC1 = 0
-    delta 2 In_PublishQoS1C1 = 2
-    delta 2 In_SubscribeC2QoS1 = 2
-    delta 2 In_UnSubscribeC2 = 2
-    delta 2 In_DisconnectC2 = 2
-    delta 1 In_ConnectC2 = 0
-    delta 1 In_ConnectC1 = 3
-    delta 1 In_PublishQoS1C1 = 1
-    delta 1 In_SubscribeC2QoS1 = 4
-    delta 1 In_UnSubscribeC2 = 1
-    delta 1 In_DisconnectC2 = 0
-    delta 3 In_ConnectC2 = 2
-    delta 3 In_ConnectC1 = 1
-    delta 3 In_PublishQoS1C1 = 3
-    delta 3 In_SubscribeC2QoS1 = 5
-    delta 3 In_UnSubscribeC2 = 3
-    delta 3 In_DisconnectC2 = 2
-    delta 5 In_ConnectC2 = 6
-    delta 5 In_ConnectC1 = 4
-    delta 5 In_PublishQoS1C1 = 5
-    delta 5 In_SubscribeC2QoS1 = 5
-    delta 5 In_UnSubscribeC2 = 3
-    delta 5 In_DisconnectC2 = 6
-    delta 4 In_ConnectC2 = 7
-    delta 4 In_ConnectC1 = 5
-    delta 4 In_PublishQoS1C1 = 4
-    delta 4 In_SubscribeC2QoS1 = 4
-    delta 4 In_UnSubscribeC2 = 1
-    delta 4 In_DisconnectC2 = 7
-    delta 7 In_ConnectC2 = 4
-    delta 7 In_ConnectC1 = 6
-    delta 7 In_PublishQoS1C1 = 7
-    delta 7 In_SubscribeC2QoS1 = 7
-    delta 7 In_UnSubscribeC2 = 7
-    delta 7 In_DisconnectC2 = 7
-    delta 6 In_ConnectC2 = 5
-    delta 6 In_ConnectC1 = 7
-    delta 6 In_PublishQoS1C1 = 8
-    delta 6 In_SubscribeC2QoS1 = 6
-    delta 6 In_UnSubscribeC2 = 6
-    delta 6 In_DisconnectC2 = 6
-    delta 8 In_ConnectC2 = 5
-    delta 8 In_ConnectC1 = 9
-    delta 8 In_PublishQoS1C1 = 10
-    delta 8 In_SubscribeC2QoS1 = 8
-    delta 8 In_UnSubscribeC2 = 8
-    delta 8 In_DisconnectC2 = 8
-    delta 9 In_ConnectC2 = 4
-    delta 9 In_ConnectC1 = 8
-    delta 9 In_PublishQoS1C1 = 9
-    delta 9 In_SubscribeC2QoS1 = 9
-    delta 9 In_UnSubscribeC2 = 9
-    delta 9 In_DisconnectC2 = 9
-    delta 10 In_ConnectC2 = 5
-    delta 10 In_ConnectC1 = 11
-    delta 10 In_PublishQoS1C1 = 10
-    delta 10 In_SubscribeC2QoS1 = 10
-    delta 10 In_UnSubscribeC2 = 10
-    delta 10 In_DisconnectC2 = 10
-    delta 11 In_ConnectC2 = 4
-    delta 11 In_ConnectC1 = 10
-    delta 11 In_PublishQoS1C1 = 11
-    delta 11 In_SubscribeC2QoS1 = 11
-    delta 11 In_UnSubscribeC2 = 11
-    delta 11 In_DisconnectC2 = 11
-    delta _ _ = error "haal-gen: undefined transition"
-    lambda 0 In_ConnectC2 = Out_C1_ConnectionClosed__c2_ConnAck
-    lambda 0 In_ConnectC1 = Out_C1_ConnAck__c2_ConnectionClosed
-    lambda 0 In_PublishQoS1C1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 0 In_SubscribeC2QoS1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 0 In_UnSubscribeC2 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 0 In_DisconnectC2 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 2 In_ConnectC2 = Out_Empty__c2_ConnAck
-    lambda 2 In_ConnectC1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 2 In_PublishQoS1C1 = Out_C1_PubAck__c2_ConnectionClosed
-    lambda 2 In_SubscribeC2QoS1 = Out_Empty__c2_ConnectionClosed
-    lambda 2 In_UnSubscribeC2 = Out_Empty__c2_ConnectionClosed
-    lambda 2 In_DisconnectC2 = Out_Empty__c2_ConnectionClosed
-    lambda 1 In_ConnectC2 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 1 In_ConnectC1 = Out_C1_ConnAck__Empty
-    lambda 1 In_PublishQoS1C1 = Out_C1_ConnectionClosed__Empty
-    lambda 1 In_SubscribeC2QoS1 = Out_C1_ConnectionClosed__c2_SubAck__c2_Pub_my_topic_bye_1
-    lambda 1 In_UnSubscribeC2 = Out_C1_ConnectionClosed__c2_UnSubAck
-    lambda 1 In_DisconnectC2 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 3 In_ConnectC2 = Out_Empty__c2_ConnectionClosed
-    lambda 3 In_ConnectC1 = Out_C1_ConnectionClosed__Empty
-    lambda 3 In_PublishQoS1C1 = Out_C1_PubAck__Empty
-    lambda 3 In_SubscribeC2QoS1 = Out_Empty__c2_SubAck__c2_Pub_my_topic_bye_1
-    lambda 3 In_UnSubscribeC2 = Out_Empty__c2_UnSubAck
-    lambda 3 In_DisconnectC2 = Out_Empty__c2_ConnectionClosed
-    lambda 5 In_ConnectC2 = Out_Empty__c2_ConnectionClosed
-    lambda 5 In_ConnectC1 = Out_C1_ConnectionClosed__Empty
-    lambda 5 In_PublishQoS1C1 = Out_C1_PubAck__c2_Pub_my_topic_messageQos1_1
-    lambda 5 In_SubscribeC2QoS1 = Out_Empty__c2_SubAck
-    lambda 5 In_UnSubscribeC2 = Out_Empty__c2_UnSubAck
-    lambda 5 In_DisconnectC2 = Out_Empty__c2_ConnectionClosed
-    lambda 4 In_ConnectC2 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 4 In_ConnectC1 = Out_C1_ConnAck__Empty
-    lambda 4 In_PublishQoS1C1 = Out_C1_ConnectionClosed__Empty
-    lambda 4 In_SubscribeC2QoS1 = Out_C1_ConnectionClosed__c2_SubAck
-    lambda 4 In_UnSubscribeC2 = Out_C1_ConnectionClosed__c2_UnSubAck
-    lambda 4 In_DisconnectC2 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 7 In_ConnectC2 = Out_C1_ConnectionClosed__c2_ConnAck
-    lambda 7 In_ConnectC1 = Out_C1_ConnAck__c2_ConnectionClosed
-    lambda 7 In_PublishQoS1C1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 7 In_SubscribeC2QoS1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 7 In_UnSubscribeC2 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 7 In_DisconnectC2 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 6 In_ConnectC2 = Out_Empty__c2_ConnAck
-    lambda 6 In_ConnectC1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 6 In_PublishQoS1C1 = Out_C1_PubAck__c2_ConnectionClosed
-    lambda 6 In_SubscribeC2QoS1 = Out_Empty__c2_ConnectionClosed
-    lambda 6 In_UnSubscribeC2 = Out_Empty__c2_ConnectionClosed
-    lambda 6 In_DisconnectC2 = Out_Empty__c2_ConnectionClosed
-    lambda 8 In_ConnectC2 = Out_Empty__c2_Pub_my_topic_messageQos1_1___c2_ConnAck
-    lambda 8 In_ConnectC1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 8 In_PublishQoS1C1 = Out_C1_PubAck__c2_ConnectionClosed
-    lambda 8 In_SubscribeC2QoS1 = Out_Empty__c2_ConnectionClosed
-    lambda 8 In_UnSubscribeC2 = Out_Empty__c2_ConnectionClosed
-    lambda 8 In_DisconnectC2 = Out_Empty__c2_ConnectionClosed
-    lambda 9 In_ConnectC2 = Out_C1_ConnectionClosed__c2_Pub_my_topic_messageQos1_1___c2_ConnAck
-    lambda 9 In_ConnectC1 = Out_C1_ConnAck__c2_ConnectionClosed
-    lambda 9 In_PublishQoS1C1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 9 In_SubscribeC2QoS1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 9 In_UnSubscribeC2 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 9 In_DisconnectC2 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 10 In_ConnectC2 = Out_Empty__c2_Pub_my_topic_messageQos1_1___c2_Pub_my_topic_messageQos1_1___c2_ConnAck
-    lambda 10 In_ConnectC1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 10 In_PublishQoS1C1 = Out_C1_PubAck__c2_ConnectionClosed
-    lambda 10 In_SubscribeC2QoS1 = Out_Empty__c2_ConnectionClosed
-    lambda 10 In_UnSubscribeC2 = Out_Empty__c2_ConnectionClosed
-    lambda 10 In_DisconnectC2 = Out_Empty__c2_ConnectionClosed
-    lambda 11 In_ConnectC2 = Out_C1_ConnectionClosed__c2_Pub_my_topic_messageQos1_1___c2_Pub_my_topic_messageQos1_1___c2_ConnAck
-    lambda 11 In_ConnectC1 = Out_C1_ConnAck__c2_ConnectionClosed
-    lambda 11 In_PublishQoS1C1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 11 In_SubscribeC2QoS1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 11 In_UnSubscribeC2 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 11 In_DisconnectC2 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda _ _ = error "haal-gen: undefined transition"
+    deltaTable =
+        "\1\2\0\0\0\0\
+        \\0\3\1\4\1\0\
+        \\3\0\2\2\2\2\
+        \\2\1\3\5\3\2\
+        \\7\5\4\4\1\7\
+        \\6\4\5\5\3\6\
+        \\5\7\8\6\6\6\
+        \\4\6\7\7\7\7\
+        \\5\9\10\8\8\8\
+        \\4\8\9\9\9\9\
+        \\5\11\10\10\10\10\
+        \\4\10\11\11\11\11"
+    lambdaTable =
+        "\0\1\2\2\2\2\
+        \\2\6\7\8\9\2\
+        \\3\2\4\5\5\5\
+        \\5\7\10\11\12\5\
+        \\2\6\7\15\9\2\
+        \\5\7\13\14\12\5\
+        \\3\2\4\5\5\5\
+        \\0\1\2\2\2\2\
+        \\16\2\4\5\5\5\
+        \\17\1\2\2\2\2\
+        \\18\2\4\5\5\5\
+        \\19\1\2\2\2\2"
diff --git a/src/Haal/Models/MQTT/EmqttSimple.hs b/src/Haal/Models/MQTT/EmqttSimple.hs
--- a/src/Haal/Models/MQTT/EmqttSimple.hs
+++ b/src/Haal/Models/MQTT/EmqttSimple.hs
@@ -5,8 +5,7 @@
     , emqttSimple
     ) where
 
-import qualified Data.Set as Set
-import Haal.Automaton.MealyAutomaton (MealyAutomaton, mkMealyAutomaton)
+import Haal.Automaton.MealyAutomaton (MealyAutomaton, mkMealyAutomatonTable)
 
 data EmqttSimpleInput
     = In_Connect
@@ -28,50 +27,40 @@
     | Out_PublishPacket__PubAckPacket
     deriving (Show, Eq, Ord, Enum, Bounded)
 
+{- Transitions (state  input -> next state / output):
+    0     In_Connect        -> 1 / Out_ConnAckPacket
+          In_Publish        -> 0 / Out_ConnectionClosed
+          In_Subscribe      -> 0 / Out_ConnectionClosed
+          In_UnSubScribe    -> 0 / Out_ConnectionClosed
+          In_Ping           -> 0 / Out_ConnectionClosed
+          In_Disconnect     -> 0 / Out_ConnectionClosed
+          In_DisconnectTCP  -> 0 / Out_ConnectionClosed
+    1     In_Connect        -> 0 / Out_ConnectionClosed
+          In_Publish        -> 1 / Out_PubAckPacket
+          In_Subscribe      -> 2 / Out_SubAckPacket
+          In_UnSubScribe    -> 1 / Out_UnSubAckPacket
+          In_Ping           -> 1 / Out_PingRespPacket
+          In_Disconnect     -> 0 / Out_ConnectionClosed
+          In_DisconnectTCP  -> 0 / Out_ConnectionClosed
+    2     In_Connect        -> 0 / Out_ConnectionClosed
+          In_Publish        -> 2 / Out_PublishPacket__PubAckPacket
+          In_Subscribe      -> 2 / Out_SubAckPacket
+          In_UnSubScribe    -> 1 / Out_UnSubAckPacket
+          In_Ping           -> 2 / Out_PingRespPacket
+          In_Disconnect     -> 0 / Out_ConnectionClosed
+          In_DisconnectTCP  -> 0 / Out_ConnectionClosed
+-}
 emqttSimple :: MealyAutomaton Int EmqttSimpleInput EmqttSimpleOutput
-emqttSimple = mkMealyAutomaton delta lambda (Set.fromList [0..2]) 0
+emqttSimple =
+    case mkMealyAutomatonTable 3 0 deltaTable lambdaTable of
+        Right m -> m
+        Left err -> error ("haal-gen: invalid transition table: " ++ err)
   where
-    delta 0 In_Connect = 1
-    delta 0 In_Publish = 0
-    delta 0 In_Subscribe = 0
-    delta 0 In_UnSubScribe = 0
-    delta 0 In_Ping = 0
-    delta 0 In_Disconnect = 0
-    delta 0 In_DisconnectTCP = 0
-    delta 1 In_Connect = 0
-    delta 1 In_Publish = 1
-    delta 1 In_Subscribe = 2
-    delta 1 In_UnSubScribe = 1
-    delta 1 In_Ping = 1
-    delta 1 In_Disconnect = 0
-    delta 1 In_DisconnectTCP = 0
-    delta 2 In_Connect = 0
-    delta 2 In_Publish = 2
-    delta 2 In_Subscribe = 2
-    delta 2 In_UnSubScribe = 1
-    delta 2 In_Ping = 2
-    delta 2 In_Disconnect = 0
-    delta 2 In_DisconnectTCP = 0
-    delta _ _ = error "haal-gen: undefined transition"
-    lambda 0 In_Connect = Out_ConnAckPacket
-    lambda 0 In_Publish = Out_ConnectionClosed
-    lambda 0 In_Subscribe = Out_ConnectionClosed
-    lambda 0 In_UnSubScribe = Out_ConnectionClosed
-    lambda 0 In_Ping = Out_ConnectionClosed
-    lambda 0 In_Disconnect = Out_ConnectionClosed
-    lambda 0 In_DisconnectTCP = Out_ConnectionClosed
-    lambda 1 In_Connect = Out_ConnectionClosed
-    lambda 1 In_Publish = Out_PubAckPacket
-    lambda 1 In_Subscribe = Out_SubAckPacket
-    lambda 1 In_UnSubScribe = Out_UnSubAckPacket
-    lambda 1 In_Ping = Out_PingRespPacket
-    lambda 1 In_Disconnect = Out_ConnectionClosed
-    lambda 1 In_DisconnectTCP = Out_ConnectionClosed
-    lambda 2 In_Connect = Out_ConnectionClosed
-    lambda 2 In_Publish = Out_PublishPacket__PubAckPacket
-    lambda 2 In_Subscribe = Out_SubAckPacket
-    lambda 2 In_UnSubScribe = Out_UnSubAckPacket
-    lambda 2 In_Ping = Out_PingRespPacket
-    lambda 2 In_Disconnect = Out_ConnectionClosed
-    lambda 2 In_DisconnectTCP = Out_ConnectionClosed
-    lambda _ _ = error "haal-gen: undefined transition"
+    deltaTable =
+        "\1\0\0\0\0\0\0\
+        \\0\1\2\1\1\0\0\
+        \\0\2\2\1\2\0\0"
+    lambdaTable =
+        "\0\1\1\1\1\1\1\
+        \\1\2\3\4\5\1\1\
+        \\1\6\3\4\5\1\1"
diff --git a/src/Haal/Models/MQTT/EmqttSingleClient.hs b/src/Haal/Models/MQTT/EmqttSingleClient.hs
--- a/src/Haal/Models/MQTT/EmqttSingleClient.hs
+++ b/src/Haal/Models/MQTT/EmqttSingleClient.hs
@@ -5,8 +5,7 @@
     , emqttSingleClient
     ) where
 
-import qualified Data.Set as Set
-import Haal.Automaton.MealyAutomaton (MealyAutomaton, mkMealyAutomaton)
+import Haal.Automaton.MealyAutomaton (MealyAutomaton, mkMealyAutomatonTable)
 
 data EmqttSingleClientInput
     = In_Connect
@@ -36,228 +35,143 @@
     | Out_SubAck__Pub_my_topic_retained_retained_message
     deriving (Show, Eq, Ord, Enum, Bounded)
 
+{- Transitions (state  input -> next state / output):
+    0     In_Connect              -> 1 / Out_ConnAck
+          In_PublishQoS0          -> 0 / Out_ConnectionClosed
+          In_PublishQoS1          -> 0 / Out_ConnectionClosed
+          In_PublishRetain        -> 0 / Out_ConnectionClosed
+          In_DeleteRetained       -> 0 / Out_ConnectionClosed
+          In_Subscribe            -> 0 / Out_ConnectionClosed
+          In_UnSubScribe          -> 0 / Out_ConnectionClosed
+          In_SubscribeRetained    -> 0 / Out_ConnectionClosed
+          In_UnSubScribeRetained  -> 0 / Out_ConnectionClosed
+          In_Disconnect           -> 0 / Out_ConnectionClosed
+          In_DisconnectTCP        -> 0 / Out_ConnectionClosed
+    1     In_Connect              -> 2 / Out_ConnectionClosed
+          In_PublishQoS0          -> 1 / Out_Empty
+          In_PublishQoS1          -> 1 / Out_PubAck
+          In_PublishRetain        -> 3 / Out_PubAck
+          In_DeleteRetained       -> 1 / Out_PubAck
+          In_Subscribe            -> 4 / Out_SubAck
+          In_UnSubScribe          -> 1 / Out_UnSubAck
+          In_SubscribeRetained    -> 5 / Out_SubAck
+          In_UnSubScribeRetained  -> 1 / Out_UnSubAck
+          In_Disconnect           -> 2 / Out_ConnectionClosed
+          In_DisconnectTCP        -> 2 / Out_ConnectionClosed
+    2     In_Connect              -> 2 / Out_ConnectionClosed
+          In_PublishQoS0          -> 2 / Out_ConnectionClosed
+          In_PublishQoS1          -> 2 / Out_ConnectionClosed
+          In_PublishRetain        -> 2 / Out_ConnectionClosed
+          In_DeleteRetained       -> 2 / Out_ConnectionClosed
+          In_Subscribe            -> 2 / Out_ConnectionClosed
+          In_UnSubScribe          -> 2 / Out_ConnectionClosed
+          In_SubscribeRetained    -> 2 / Out_ConnectionClosed
+          In_UnSubScribeRetained  -> 2 / Out_ConnectionClosed
+          In_Disconnect           -> 2 / Out_ConnectionClosed
+          In_DisconnectTCP        -> 2 / Out_ConnectionClosed
+    3     In_Connect              -> 2 / Out_ConnectionClosed
+          In_PublishQoS0          -> 3 / Out_Empty
+          In_PublishQoS1          -> 3 / Out_PubAck
+          In_PublishRetain        -> 3 / Out_PubAck
+          In_DeleteRetained       -> 1 / Out_PubAck
+          In_Subscribe            -> 6 / Out_SubAck
+          In_UnSubScribe          -> 3 / Out_UnSubAck
+          In_SubscribeRetained    -> 8 / Out_SubAck__Pub_my_topic_retained_retained_message
+          In_UnSubScribeRetained  -> 3 / Out_UnSubAck
+          In_Disconnect           -> 2 / Out_ConnectionClosed
+          In_DisconnectTCP        -> 2 / Out_ConnectionClosed
+    4     In_Connect              -> 2 / Out_ConnectionClosed
+          In_PublishQoS0          -> 4 / Out_Pub_my_topic_messageQos0
+          In_PublishQoS1          -> 4 / Out_Pub_my_topic_messageQos1___PubAck
+          In_PublishRetain        -> 6 / Out_PubAck
+          In_DeleteRetained       -> 4 / Out_PubAck
+          In_Subscribe            -> 4 / Out_SubAck
+          In_UnSubScribe          -> 1 / Out_UnSubAck
+          In_SubscribeRetained    -> 7 / Out_SubAck
+          In_UnSubScribeRetained  -> 4 / Out_UnSubAck
+          In_Disconnect           -> 2 / Out_ConnectionClosed
+          In_DisconnectTCP        -> 2 / Out_ConnectionClosed
+    5     In_Connect              -> 2 / Out_ConnectionClosed
+          In_PublishQoS0          -> 5 / Out_Empty
+          In_PublishQoS1          -> 5 / Out_PubAck
+          In_PublishRetain        -> 8 / Out_Pub_my_topic_retained_retained_message___PubAck
+          In_DeleteRetained       -> 5 / Out_Pub_my_topic_retained____PubAck
+          In_Subscribe            -> 7 / Out_SubAck
+          In_UnSubScribe          -> 5 / Out_UnSubAck
+          In_SubscribeRetained    -> 5 / Out_SubAck
+          In_UnSubScribeRetained  -> 1 / Out_UnSubAck
+          In_Disconnect           -> 2 / Out_ConnectionClosed
+          In_DisconnectTCP        -> 2 / Out_ConnectionClosed
+    6     In_Connect              -> 2 / Out_ConnectionClosed
+          In_PublishQoS0          -> 6 / Out_Pub_my_topic_messageQos0
+          In_PublishQoS1          -> 6 / Out_Pub_my_topic_messageQos1___PubAck
+          In_PublishRetain        -> 6 / Out_PubAck
+          In_DeleteRetained       -> 4 / Out_PubAck
+          In_Subscribe            -> 6 / Out_SubAck
+          In_UnSubScribe          -> 3 / Out_UnSubAck
+          In_SubscribeRetained    -> 9 / Out_SubAck__Pub_my_topic_retained_retained_message
+          In_UnSubScribeRetained  -> 6 / Out_UnSubAck
+          In_Disconnect           -> 2 / Out_ConnectionClosed
+          In_DisconnectTCP        -> 2 / Out_ConnectionClosed
+    7     In_Connect              -> 2 / Out_ConnectionClosed
+          In_PublishQoS0          -> 7 / Out_Pub_my_topic_messageQos0
+          In_PublishQoS1          -> 7 / Out_Pub_my_topic_messageQos1___PubAck
+          In_PublishRetain        -> 9 / Out_Pub_my_topic_retained_retained_message___PubAck
+          In_DeleteRetained       -> 7 / Out_Pub_my_topic_retained____PubAck
+          In_Subscribe            -> 7 / Out_SubAck
+          In_UnSubScribe          -> 5 / Out_UnSubAck
+          In_SubscribeRetained    -> 7 / Out_SubAck
+          In_UnSubScribeRetained  -> 4 / Out_UnSubAck
+          In_Disconnect           -> 2 / Out_ConnectionClosed
+          In_DisconnectTCP        -> 2 / Out_ConnectionClosed
+    8     In_Connect              -> 2 / Out_ConnectionClosed
+          In_PublishQoS0          -> 8 / Out_Empty
+          In_PublishQoS1          -> 8 / Out_PubAck
+          In_PublishRetain        -> 8 / Out_Pub_my_topic_retained_retained_message___PubAck
+          In_DeleteRetained       -> 5 / Out_Pub_my_topic_retained____PubAck
+          In_Subscribe            -> 9 / Out_SubAck
+          In_UnSubScribe          -> 8 / Out_UnSubAck
+          In_SubscribeRetained    -> 8 / Out_SubAck
+          In_UnSubScribeRetained  -> 3 / Out_UnSubAck
+          In_Disconnect           -> 2 / Out_ConnectionClosed
+          In_DisconnectTCP        -> 2 / Out_ConnectionClosed
+    9     In_Connect              -> 2 / Out_ConnectionClosed
+          In_PublishQoS0          -> 9 / Out_Pub_my_topic_messageQos0
+          In_PublishQoS1          -> 9 / Out_Pub_my_topic_messageQos1___PubAck
+          In_PublishRetain        -> 9 / Out_Pub_my_topic_retained_retained_message___PubAck
+          In_DeleteRetained       -> 7 / Out_Pub_my_topic_retained____PubAck
+          In_Subscribe            -> 9 / Out_SubAck
+          In_UnSubScribe          -> 8 / Out_UnSubAck
+          In_SubscribeRetained    -> 9 / Out_SubAck
+          In_UnSubScribeRetained  -> 6 / Out_UnSubAck
+          In_Disconnect           -> 2 / Out_ConnectionClosed
+          In_DisconnectTCP        -> 2 / Out_ConnectionClosed
+-}
 emqttSingleClient :: MealyAutomaton Int EmqttSingleClientInput EmqttSingleClientOutput
-emqttSingleClient = mkMealyAutomaton delta lambda (Set.fromList [0..9]) 0
+emqttSingleClient =
+    case mkMealyAutomatonTable 10 0 deltaTable lambdaTable of
+        Right m -> m
+        Left err -> error ("haal-gen: invalid transition table: " ++ err)
   where
-    delta 0 In_Connect = 1
-    delta 0 In_PublishQoS0 = 0
-    delta 0 In_PublishQoS1 = 0
-    delta 0 In_PublishRetain = 0
-    delta 0 In_DeleteRetained = 0
-    delta 0 In_Subscribe = 0
-    delta 0 In_UnSubScribe = 0
-    delta 0 In_SubscribeRetained = 0
-    delta 0 In_UnSubScribeRetained = 0
-    delta 0 In_Disconnect = 0
-    delta 0 In_DisconnectTCP = 0
-    delta 1 In_Connect = 2
-    delta 1 In_PublishQoS0 = 1
-    delta 1 In_PublishQoS1 = 1
-    delta 1 In_PublishRetain = 3
-    delta 1 In_DeleteRetained = 1
-    delta 1 In_Subscribe = 4
-    delta 1 In_UnSubScribe = 1
-    delta 1 In_SubscribeRetained = 5
-    delta 1 In_UnSubScribeRetained = 1
-    delta 1 In_Disconnect = 2
-    delta 1 In_DisconnectTCP = 2
-    delta 2 In_Connect = 2
-    delta 2 In_PublishQoS0 = 2
-    delta 2 In_PublishQoS1 = 2
-    delta 2 In_PublishRetain = 2
-    delta 2 In_DeleteRetained = 2
-    delta 2 In_Subscribe = 2
-    delta 2 In_UnSubScribe = 2
-    delta 2 In_SubscribeRetained = 2
-    delta 2 In_UnSubScribeRetained = 2
-    delta 2 In_Disconnect = 2
-    delta 2 In_DisconnectTCP = 2
-    delta 4 In_Connect = 2
-    delta 4 In_PublishQoS0 = 4
-    delta 4 In_PublishQoS1 = 4
-    delta 4 In_PublishRetain = 6
-    delta 4 In_DeleteRetained = 4
-    delta 4 In_Subscribe = 4
-    delta 4 In_UnSubScribe = 1
-    delta 4 In_SubscribeRetained = 7
-    delta 4 In_UnSubScribeRetained = 4
-    delta 4 In_Disconnect = 2
-    delta 4 In_DisconnectTCP = 2
-    delta 5 In_Connect = 2
-    delta 5 In_PublishQoS0 = 5
-    delta 5 In_PublishQoS1 = 5
-    delta 5 In_PublishRetain = 8
-    delta 5 In_DeleteRetained = 5
-    delta 5 In_Subscribe = 7
-    delta 5 In_UnSubScribe = 5
-    delta 5 In_SubscribeRetained = 5
-    delta 5 In_UnSubScribeRetained = 1
-    delta 5 In_Disconnect = 2
-    delta 5 In_DisconnectTCP = 2
-    delta 3 In_Connect = 2
-    delta 3 In_PublishQoS0 = 3
-    delta 3 In_PublishQoS1 = 3
-    delta 3 In_PublishRetain = 3
-    delta 3 In_DeleteRetained = 1
-    delta 3 In_Subscribe = 6
-    delta 3 In_UnSubScribe = 3
-    delta 3 In_SubscribeRetained = 8
-    delta 3 In_UnSubScribeRetained = 3
-    delta 3 In_Disconnect = 2
-    delta 3 In_DisconnectTCP = 2
-    delta 6 In_Connect = 2
-    delta 6 In_PublishQoS0 = 6
-    delta 6 In_PublishQoS1 = 6
-    delta 6 In_PublishRetain = 6
-    delta 6 In_DeleteRetained = 4
-    delta 6 In_Subscribe = 6
-    delta 6 In_UnSubScribe = 3
-    delta 6 In_SubscribeRetained = 9
-    delta 6 In_UnSubScribeRetained = 6
-    delta 6 In_Disconnect = 2
-    delta 6 In_DisconnectTCP = 2
-    delta 8 In_Connect = 2
-    delta 8 In_PublishQoS0 = 8
-    delta 8 In_PublishQoS1 = 8
-    delta 8 In_PublishRetain = 8
-    delta 8 In_DeleteRetained = 5
-    delta 8 In_Subscribe = 9
-    delta 8 In_UnSubScribe = 8
-    delta 8 In_SubscribeRetained = 8
-    delta 8 In_UnSubScribeRetained = 3
-    delta 8 In_Disconnect = 2
-    delta 8 In_DisconnectTCP = 2
-    delta 7 In_Connect = 2
-    delta 7 In_PublishQoS0 = 7
-    delta 7 In_PublishQoS1 = 7
-    delta 7 In_PublishRetain = 9
-    delta 7 In_DeleteRetained = 7
-    delta 7 In_Subscribe = 7
-    delta 7 In_UnSubScribe = 5
-    delta 7 In_SubscribeRetained = 7
-    delta 7 In_UnSubScribeRetained = 4
-    delta 7 In_Disconnect = 2
-    delta 7 In_DisconnectTCP = 2
-    delta 9 In_Connect = 2
-    delta 9 In_PublishQoS0 = 9
-    delta 9 In_PublishQoS1 = 9
-    delta 9 In_PublishRetain = 9
-    delta 9 In_DeleteRetained = 7
-    delta 9 In_Subscribe = 9
-    delta 9 In_UnSubScribe = 8
-    delta 9 In_SubscribeRetained = 9
-    delta 9 In_UnSubScribeRetained = 6
-    delta 9 In_Disconnect = 2
-    delta 9 In_DisconnectTCP = 2
-    delta _ _ = error "haal-gen: undefined transition"
-    lambda 0 In_Connect = Out_ConnAck
-    lambda 0 In_PublishQoS0 = Out_ConnectionClosed
-    lambda 0 In_PublishQoS1 = Out_ConnectionClosed
-    lambda 0 In_PublishRetain = Out_ConnectionClosed
-    lambda 0 In_DeleteRetained = Out_ConnectionClosed
-    lambda 0 In_Subscribe = Out_ConnectionClosed
-    lambda 0 In_UnSubScribe = Out_ConnectionClosed
-    lambda 0 In_SubscribeRetained = Out_ConnectionClosed
-    lambda 0 In_UnSubScribeRetained = Out_ConnectionClosed
-    lambda 0 In_Disconnect = Out_ConnectionClosed
-    lambda 0 In_DisconnectTCP = Out_ConnectionClosed
-    lambda 1 In_Connect = Out_ConnectionClosed
-    lambda 1 In_PublishQoS0 = Out_Empty
-    lambda 1 In_PublishQoS1 = Out_PubAck
-    lambda 1 In_PublishRetain = Out_PubAck
-    lambda 1 In_DeleteRetained = Out_PubAck
-    lambda 1 In_Subscribe = Out_SubAck
-    lambda 1 In_UnSubScribe = Out_UnSubAck
-    lambda 1 In_SubscribeRetained = Out_SubAck
-    lambda 1 In_UnSubScribeRetained = Out_UnSubAck
-    lambda 1 In_Disconnect = Out_ConnectionClosed
-    lambda 1 In_DisconnectTCP = Out_ConnectionClosed
-    lambda 2 In_Connect = Out_ConnectionClosed
-    lambda 2 In_PublishQoS0 = Out_ConnectionClosed
-    lambda 2 In_PublishQoS1 = Out_ConnectionClosed
-    lambda 2 In_PublishRetain = Out_ConnectionClosed
-    lambda 2 In_DeleteRetained = Out_ConnectionClosed
-    lambda 2 In_Subscribe = Out_ConnectionClosed
-    lambda 2 In_UnSubScribe = Out_ConnectionClosed
-    lambda 2 In_SubscribeRetained = Out_ConnectionClosed
-    lambda 2 In_UnSubScribeRetained = Out_ConnectionClosed
-    lambda 2 In_Disconnect = Out_ConnectionClosed
-    lambda 2 In_DisconnectTCP = Out_ConnectionClosed
-    lambda 4 In_Connect = Out_ConnectionClosed
-    lambda 4 In_PublishQoS0 = Out_Pub_my_topic_messageQos0
-    lambda 4 In_PublishQoS1 = Out_Pub_my_topic_messageQos1___PubAck
-    lambda 4 In_PublishRetain = Out_PubAck
-    lambda 4 In_DeleteRetained = Out_PubAck
-    lambda 4 In_Subscribe = Out_SubAck
-    lambda 4 In_UnSubScribe = Out_UnSubAck
-    lambda 4 In_SubscribeRetained = Out_SubAck
-    lambda 4 In_UnSubScribeRetained = Out_UnSubAck
-    lambda 4 In_Disconnect = Out_ConnectionClosed
-    lambda 4 In_DisconnectTCP = Out_ConnectionClosed
-    lambda 5 In_Connect = Out_ConnectionClosed
-    lambda 5 In_PublishQoS0 = Out_Empty
-    lambda 5 In_PublishQoS1 = Out_PubAck
-    lambda 5 In_PublishRetain = Out_Pub_my_topic_retained_retained_message___PubAck
-    lambda 5 In_DeleteRetained = Out_Pub_my_topic_retained____PubAck
-    lambda 5 In_Subscribe = Out_SubAck
-    lambda 5 In_UnSubScribe = Out_UnSubAck
-    lambda 5 In_SubscribeRetained = Out_SubAck
-    lambda 5 In_UnSubScribeRetained = Out_UnSubAck
-    lambda 5 In_Disconnect = Out_ConnectionClosed
-    lambda 5 In_DisconnectTCP = Out_ConnectionClosed
-    lambda 3 In_Connect = Out_ConnectionClosed
-    lambda 3 In_PublishQoS0 = Out_Empty
-    lambda 3 In_PublishQoS1 = Out_PubAck
-    lambda 3 In_PublishRetain = Out_PubAck
-    lambda 3 In_DeleteRetained = Out_PubAck
-    lambda 3 In_Subscribe = Out_SubAck
-    lambda 3 In_UnSubScribe = Out_UnSubAck
-    lambda 3 In_SubscribeRetained = Out_SubAck__Pub_my_topic_retained_retained_message
-    lambda 3 In_UnSubScribeRetained = Out_UnSubAck
-    lambda 3 In_Disconnect = Out_ConnectionClosed
-    lambda 3 In_DisconnectTCP = Out_ConnectionClosed
-    lambda 6 In_Connect = Out_ConnectionClosed
-    lambda 6 In_PublishQoS0 = Out_Pub_my_topic_messageQos0
-    lambda 6 In_PublishQoS1 = Out_Pub_my_topic_messageQos1___PubAck
-    lambda 6 In_PublishRetain = Out_PubAck
-    lambda 6 In_DeleteRetained = Out_PubAck
-    lambda 6 In_Subscribe = Out_SubAck
-    lambda 6 In_UnSubScribe = Out_UnSubAck
-    lambda 6 In_SubscribeRetained = Out_SubAck__Pub_my_topic_retained_retained_message
-    lambda 6 In_UnSubScribeRetained = Out_UnSubAck
-    lambda 6 In_Disconnect = Out_ConnectionClosed
-    lambda 6 In_DisconnectTCP = Out_ConnectionClosed
-    lambda 8 In_Connect = Out_ConnectionClosed
-    lambda 8 In_PublishQoS0 = Out_Empty
-    lambda 8 In_PublishQoS1 = Out_PubAck
-    lambda 8 In_PublishRetain = Out_Pub_my_topic_retained_retained_message___PubAck
-    lambda 8 In_DeleteRetained = Out_Pub_my_topic_retained____PubAck
-    lambda 8 In_Subscribe = Out_SubAck
-    lambda 8 In_UnSubScribe = Out_UnSubAck
-    lambda 8 In_SubscribeRetained = Out_SubAck
-    lambda 8 In_UnSubScribeRetained = Out_UnSubAck
-    lambda 8 In_Disconnect = Out_ConnectionClosed
-    lambda 8 In_DisconnectTCP = Out_ConnectionClosed
-    lambda 7 In_Connect = Out_ConnectionClosed
-    lambda 7 In_PublishQoS0 = Out_Pub_my_topic_messageQos0
-    lambda 7 In_PublishQoS1 = Out_Pub_my_topic_messageQos1___PubAck
-    lambda 7 In_PublishRetain = Out_Pub_my_topic_retained_retained_message___PubAck
-    lambda 7 In_DeleteRetained = Out_Pub_my_topic_retained____PubAck
-    lambda 7 In_Subscribe = Out_SubAck
-    lambda 7 In_UnSubScribe = Out_UnSubAck
-    lambda 7 In_SubscribeRetained = Out_SubAck
-    lambda 7 In_UnSubScribeRetained = Out_UnSubAck
-    lambda 7 In_Disconnect = Out_ConnectionClosed
-    lambda 7 In_DisconnectTCP = Out_ConnectionClosed
-    lambda 9 In_Connect = Out_ConnectionClosed
-    lambda 9 In_PublishQoS0 = Out_Pub_my_topic_messageQos0
-    lambda 9 In_PublishQoS1 = Out_Pub_my_topic_messageQos1___PubAck
-    lambda 9 In_PublishRetain = Out_Pub_my_topic_retained_retained_message___PubAck
-    lambda 9 In_DeleteRetained = Out_Pub_my_topic_retained____PubAck
-    lambda 9 In_Subscribe = Out_SubAck
-    lambda 9 In_UnSubScribe = Out_UnSubAck
-    lambda 9 In_SubscribeRetained = Out_SubAck
-    lambda 9 In_UnSubScribeRetained = Out_UnSubAck
-    lambda 9 In_Disconnect = Out_ConnectionClosed
-    lambda 9 In_DisconnectTCP = Out_ConnectionClosed
-    lambda _ _ = error "haal-gen: undefined transition"
+    deltaTable =
+        "\1\0\0\0\0\0\0\0\0\0\0\
+        \\2\1\1\3\1\4\1\5\1\2\2\
+        \\2\2\2\2\2\2\2\2\2\2\2\
+        \\2\3\3\3\1\6\3\8\3\2\2\
+        \\2\4\4\6\4\4\1\7\4\2\2\
+        \\2\5\5\8\5\7\5\5\1\2\2\
+        \\2\6\6\6\4\6\3\9\6\2\2\
+        \\2\7\7\9\7\7\5\7\4\2\2\
+        \\2\8\8\8\5\9\8\8\3\2\2\
+        \\2\9\9\9\7\9\8\9\6\2\2"
+    lambdaTable =
+        "\0\1\1\1\1\1\1\1\1\1\1\
+        \\1\2\3\3\3\4\5\4\5\1\1\
+        \\1\1\1\1\1\1\1\1\1\1\1\
+        \\1\2\3\3\3\4\5\10\5\1\1\
+        \\1\6\7\3\3\4\5\4\5\1\1\
+        \\1\2\3\8\9\4\5\4\5\1\1\
+        \\1\6\7\3\3\4\5\10\5\1\1\
+        \\1\6\7\8\9\4\5\4\5\1\1\
+        \\1\2\3\8\9\4\5\4\5\1\1\
+        \\1\6\7\8\9\4\5\4\5\1\1"
diff --git a/src/Haal/Models/MQTT/EmqttTwoClient.hs b/src/Haal/Models/MQTT/EmqttTwoClient.hs
--- a/src/Haal/Models/MQTT/EmqttTwoClient.hs
+++ b/src/Haal/Models/MQTT/EmqttTwoClient.hs
@@ -5,8 +5,7 @@
     , emqttTwoClient
     ) where
 
-import qualified Data.Set as Set
-import Haal.Automaton.MealyAutomaton (MealyAutomaton, mkMealyAutomaton)
+import Haal.Automaton.MealyAutomaton (MealyAutomaton, mkMealyAutomatonTable)
 
 data EmqttTwoClientInput
     = In_ConnectC2
@@ -71,296 +70,189 @@
     | Out_C1_SubAck__c2_ConnectionClosed_client_close
     deriving (Show, Eq, Ord, Enum, Bounded)
 
+{- Transitions (state  input -> next state / output):
+    0     In_ConnectC2          -> 1 / Out_C1_ConnectionClosed_client_close___c2_ConnAck
+          In_ConnectC1WithWill  -> 2 / Out_C1_ConnAck__c2_ConnectionClosed_client_close
+          In_PublishQoS0C2      -> 0 / Out_C1_ConnectionClosed_client_close___c2_ConnectionClosed_client_close
+          In_PublishQoS1C1      -> 0 / Out_C1_ConnectionClosed_client_close___c2_ConnectionClosed_client_close
+          In_SubscribeC1        -> 0 / Out_C1_ConnectionClosed_client_close___c2_ConnectionClosed_client_close
+          In_UnSubScribeC1      -> 0 / Out_C1_ConnectionClosed_client_close___c2_ConnectionClosed_client_close
+          In_SubscribeC2        -> 0 / Out_C1_ConnectionClosed_client_close___c2_ConnectionClosed_client_close
+          In_UnSubScribeC2      -> 0 / Out_C1_ConnectionClosed_client_close___c2_ConnectionClosed_client_close
+          In_DisconnectTCPC1    -> 0 / Out_C1_ConnectionClosed_client_close___c2_ConnectionClosed_client_close
+    1     In_ConnectC2          -> 10 / Out_C1_ConnectionClosed_client_close___c2_ConnectionClosed_eof_stream
+          In_ConnectC1WithWill  -> 3 / Out_C1_ConnAck__Empty
+          In_PublishQoS0C2      -> 1 / Out_C1_ConnectionClosed_client_close___Empty
+          In_PublishQoS1C1      -> 1 / Out_C1_ConnectionClosed_client_close___Empty
+          In_SubscribeC1        -> 1 / Out_C1_ConnectionClosed_client_close___Empty
+          In_UnSubScribeC1      -> 1 / Out_C1_ConnectionClosed_client_close___Empty
+          In_SubscribeC2        -> 11 / Out_C1_ConnectionClosed_client_close___c2_SubAck__Pub_c2_my_topic_bye
+          In_UnSubScribeC2      -> 1 / Out_C1_ConnectionClosed_client_close___c2_UnSubAck
+          In_DisconnectTCPC1    -> 1 / Out_C1_ConnectionClosed_client_close___Empty
+    2     In_ConnectC2          -> 3 / Out_Empty__c2_ConnAck
+          In_ConnectC1WithWill  -> 4 / Out_C1_ConnectionClosed_eof_stream___c2_ConnectionClosed_client_close
+          In_PublishQoS0C2      -> 2 / Out_Empty__c2_ConnectionClosed_client_close
+          In_PublishQoS1C1      -> 2 / Out_C1_PubAck__c2_ConnectionClosed_client_close
+          In_SubscribeC1        -> 5 / Out_C1_SubAck__Pub_c1_my_topic_bye___c2_ConnectionClosed_client_close
+          In_UnSubScribeC1      -> 2 / Out_C1_UnSubAck__c2_ConnectionClosed_client_close
+          In_SubscribeC2        -> 2 / Out_Empty__c2_ConnectionClosed_client_close
+          In_UnSubScribeC2      -> 2 / Out_Empty__c2_ConnectionClosed_client_close
+          In_DisconnectTCPC1    -> 0 / Out_C1_ConnectionClosed_client_close___c2_ConnectionClosed_client_close
+    3     In_ConnectC2          -> 6 / Out_Empty__c2_ConnectionClosed_eof_stream
+          In_ConnectC1WithWill  -> 7 / Out_C1_ConnectionClosed_eof_stream___Empty
+          In_PublishQoS0C2      -> 3 / Out_Empty__Empty
+          In_PublishQoS1C1      -> 3 / Out_C1_PubAck__Empty
+          In_SubscribeC1        -> 8 / Out_C1_SubAck__Pub_c1_my_topic_bye___Empty
+          In_UnSubScribeC1      -> 3 / Out_C1_UnSubAck__Empty
+          In_SubscribeC2        -> 9 / Out_Empty__c2_SubAck__Pub_c2_my_topic_bye
+          In_UnSubScribeC2      -> 3 / Out_Empty__c2_UnSubAck
+          In_DisconnectTCPC1    -> 1 / Out_C1_ConnectionClosed_client_close___Empty
+    4     In_ConnectC2          -> 7 / Out_C1_ConnectionClosed_eof_stream___c2_ConnAck
+          In_ConnectC1WithWill  -> 2 / Out_C1_ConnAck__c2_ConnectionClosed_client_close
+          In_PublishQoS0C2      -> 4 / Out_C1_ConnectionClosed_eof_stream___c2_ConnectionClosed_client_close
+          In_PublishQoS1C1      -> 4 / Out_C1_ConnectionClosed_eof_stream___c2_ConnectionClosed_client_close
+          In_SubscribeC1        -> 4 / Out_C1_ConnectionClosed_eof_stream___c2_ConnectionClosed_client_close
+          In_UnSubScribeC1      -> 4 / Out_C1_ConnectionClosed_eof_stream___c2_ConnectionClosed_client_close
+          In_SubscribeC2        -> 4 / Out_C1_ConnectionClosed_eof_stream___c2_ConnectionClosed_client_close
+          In_UnSubScribeC2      -> 4 / Out_C1_ConnectionClosed_eof_stream___c2_ConnectionClosed_client_close
+          In_DisconnectTCPC1    -> 0 / Out_C1_ConnectionClosed_client_close___c2_ConnectionClosed_client_close
+    5     In_ConnectC2          -> 8 / Out_Empty__c2_ConnAck
+          In_ConnectC1WithWill  -> 4 / Out_C1_ConnectionClosed_eof_stream___c2_ConnectionClosed_client_close
+          In_PublishQoS0C2      -> 5 / Out_Empty__c2_ConnectionClosed_client_close
+          In_PublishQoS1C1      -> 5 / Out_Pub_c1_my_topic_messageQos1___c1_PubAck__c2_ConnectionClosed_client_close
+          In_SubscribeC1        -> 5 / Out_C1_SubAck__c2_ConnectionClosed_client_close
+          In_UnSubScribeC1      -> 2 / Out_C1_UnSubAck__c2_ConnectionClosed_client_close
+          In_SubscribeC2        -> 5 / Out_Empty__c2_ConnectionClosed_client_close
+          In_UnSubScribeC2      -> 5 / Out_Empty__c2_ConnectionClosed_client_close
+          In_DisconnectTCPC1    -> 0 / Out_C1_ConnectionClosed_client_close___c2_ConnectionClosed_client_close
+    6     In_ConnectC2          -> 3 / Out_Empty__c2_ConnAck
+          In_ConnectC1WithWill  -> 12 / Out_C1_ConnectionClosed_eof_stream___c2_ConnectionClosed_eof_stream
+          In_PublishQoS0C2      -> 6 / Out_Empty__c2_ConnectionClosed_eof_stream
+          In_PublishQoS1C1      -> 6 / Out_C1_PubAck__c2_ConnectionClosed_eof_stream
+          In_SubscribeC1        -> 15 / Out_C1_SubAck__Pub_c1_my_topic_bye___c2_ConnectionClosed_eof_stream
+          In_UnSubScribeC1      -> 6 / Out_C1_UnSubAck__c2_ConnectionClosed_eof_stream
+          In_SubscribeC2        -> 6 / Out_Empty__c2_ConnectionClosed_eof_stream
+          In_UnSubScribeC2      -> 6 / Out_Empty__c2_ConnectionClosed_eof_stream
+          In_DisconnectTCPC1    -> 10 / Out_C1_ConnectionClosed_client_close___c2_ConnectionClosed_eof_stream
+    7     In_ConnectC2          -> 12 / Out_C1_ConnectionClosed_eof_stream___c2_ConnectionClosed_eof_stream
+          In_ConnectC1WithWill  -> 3 / Out_C1_ConnAck__Empty
+          In_PublishQoS0C2      -> 7 / Out_C1_ConnectionClosed_eof_stream___Empty
+          In_PublishQoS1C1      -> 7 / Out_C1_ConnectionClosed_eof_stream___Empty
+          In_SubscribeC1        -> 7 / Out_C1_ConnectionClosed_eof_stream___Empty
+          In_UnSubScribeC1      -> 7 / Out_C1_ConnectionClosed_eof_stream___Empty
+          In_SubscribeC2        -> 13 / Out_C1_ConnectionClosed_eof_stream___c2_SubAck__Pub_c2_my_topic_bye
+          In_UnSubScribeC2      -> 7 / Out_C1_ConnectionClosed_eof_stream___c2_UnSubAck
+          In_DisconnectTCPC1    -> 1 / Out_C1_ConnectionClosed_client_close___Empty
+    8     In_ConnectC2          -> 15 / Out_Empty__c2_ConnectionClosed_eof_stream
+          In_ConnectC1WithWill  -> 7 / Out_C1_ConnectionClosed_eof_stream___Empty
+          In_PublishQoS0C2      -> 8 / Out_Pub_c1_my_topic_messageQos0___Empty
+          In_PublishQoS1C1      -> 8 / Out_Pub_c1_my_topic_messageQos1___c1_PubAck__Empty
+          In_SubscribeC1        -> 8 / Out_C1_SubAck__Empty
+          In_UnSubScribeC1      -> 3 / Out_C1_UnSubAck__Empty
+          In_SubscribeC2        -> 14 / Out_Empty__c2_SubAck__Pub_c2_my_topic_bye
+          In_UnSubScribeC2      -> 8 / Out_Empty__c2_UnSubAck
+          In_DisconnectTCPC1    -> 1 / Out_C1_ConnectionClosed_client_close___Empty
+    9     In_ConnectC2          -> 6 / Out_Empty__c2_ConnectionClosed_eof_stream
+          In_ConnectC1WithWill  -> 13 / Out_C1_ConnectionClosed_eof_stream___Pub_c2_my_topic_bye
+          In_PublishQoS0C2      -> 9 / Out_Empty__Pub_c2_my_topic_messageQos0
+          In_PublishQoS1C1      -> 9 / Out_C1_PubAck__Pub_c2_my_topic_messageQos1
+          In_SubscribeC1        -> 14 / Out_C1_SubAck__Pub_c1_my_topic_bye___Empty
+          In_UnSubScribeC1      -> 9 / Out_C1_UnSubAck__Empty
+          In_SubscribeC2        -> 9 / Out_Empty__c2_SubAck
+          In_UnSubScribeC2      -> 3 / Out_Empty__c2_UnSubAck
+          In_DisconnectTCPC1    -> 11 / Out_C1_ConnectionClosed_client_close___Pub_c2_my_topic_bye
+    10    In_ConnectC2          -> 1 / Out_C1_ConnectionClosed_client_close___c2_ConnAck
+          In_ConnectC1WithWill  -> 6 / Out_C1_ConnAck__c2_ConnectionClosed_eof_stream
+          In_PublishQoS0C2      -> 10 / Out_C1_ConnectionClosed_client_close___c2_ConnectionClosed_eof_stream
+          In_PublishQoS1C1      -> 10 / Out_C1_ConnectionClosed_client_close___c2_ConnectionClosed_eof_stream
+          In_SubscribeC1        -> 10 / Out_C1_ConnectionClosed_client_close___c2_ConnectionClosed_eof_stream
+          In_UnSubScribeC1      -> 10 / Out_C1_ConnectionClosed_client_close___c2_ConnectionClosed_eof_stream
+          In_SubscribeC2        -> 10 / Out_C1_ConnectionClosed_client_close___c2_ConnectionClosed_eof_stream
+          In_UnSubScribeC2      -> 10 / Out_C1_ConnectionClosed_client_close___c2_ConnectionClosed_eof_stream
+          In_DisconnectTCPC1    -> 10 / Out_C1_ConnectionClosed_client_close___c2_ConnectionClosed_eof_stream
+    11    In_ConnectC2          -> 10 / Out_C1_ConnectionClosed_client_close___c2_ConnectionClosed_eof_stream
+          In_ConnectC1WithWill  -> 9 / Out_C1_ConnAck__Empty
+          In_PublishQoS0C2      -> 11 / Out_C1_ConnectionClosed_client_close___Pub_c2_my_topic_messageQos0
+          In_PublishQoS1C1      -> 11 / Out_C1_ConnectionClosed_client_close___Empty
+          In_SubscribeC1        -> 11 / Out_C1_ConnectionClosed_client_close___Empty
+          In_UnSubScribeC1      -> 11 / Out_C1_ConnectionClosed_client_close___Empty
+          In_SubscribeC2        -> 11 / Out_C1_ConnectionClosed_client_close___c2_SubAck
+          In_UnSubScribeC2      -> 1 / Out_C1_ConnectionClosed_client_close___c2_UnSubAck
+          In_DisconnectTCPC1    -> 11 / Out_C1_ConnectionClosed_client_close___Empty
+    12    In_ConnectC2          -> 7 / Out_C1_ConnectionClosed_eof_stream___c2_ConnAck
+          In_ConnectC1WithWill  -> 6 / Out_C1_ConnAck__c2_ConnectionClosed_eof_stream
+          In_PublishQoS0C2      -> 12 / Out_C1_ConnectionClosed_eof_stream___c2_ConnectionClosed_eof_stream
+          In_PublishQoS1C1      -> 12 / Out_C1_ConnectionClosed_eof_stream___c2_ConnectionClosed_eof_stream
+          In_SubscribeC1        -> 12 / Out_C1_ConnectionClosed_eof_stream___c2_ConnectionClosed_eof_stream
+          In_UnSubScribeC1      -> 12 / Out_C1_ConnectionClosed_eof_stream___c2_ConnectionClosed_eof_stream
+          In_SubscribeC2        -> 12 / Out_C1_ConnectionClosed_eof_stream___c2_ConnectionClosed_eof_stream
+          In_UnSubScribeC2      -> 12 / Out_C1_ConnectionClosed_eof_stream___c2_ConnectionClosed_eof_stream
+          In_DisconnectTCPC1    -> 10 / Out_C1_ConnectionClosed_client_close___c2_ConnectionClosed_eof_stream
+    13    In_ConnectC2          -> 12 / Out_C1_ConnectionClosed_eof_stream___c2_ConnectionClosed_eof_stream
+          In_ConnectC1WithWill  -> 9 / Out_C1_ConnAck__Empty
+          In_PublishQoS0C2      -> 13 / Out_C1_ConnectionClosed_eof_stream___Pub_c2_my_topic_messageQos0
+          In_PublishQoS1C1      -> 13 / Out_C1_ConnectionClosed_eof_stream___Empty
+          In_SubscribeC1        -> 13 / Out_C1_ConnectionClosed_eof_stream___Empty
+          In_UnSubScribeC1      -> 13 / Out_C1_ConnectionClosed_eof_stream___Empty
+          In_SubscribeC2        -> 13 / Out_C1_ConnectionClosed_eof_stream___c2_SubAck
+          In_UnSubScribeC2      -> 7 / Out_C1_ConnectionClosed_eof_stream___c2_UnSubAck
+          In_DisconnectTCPC1    -> 11 / Out_C1_ConnectionClosed_client_close___Empty
+    14    In_ConnectC2          -> 15 / Out_Empty__c2_ConnectionClosed_eof_stream
+          In_ConnectC1WithWill  -> 13 / Out_C1_ConnectionClosed_eof_stream___Pub_c2_my_topic_bye
+          In_PublishQoS0C2      -> 14 / Out_Pub_c1_my_topic_messageQos0___Pub_c2_my_topic_messageQos0
+          In_PublishQoS1C1      -> 14 / Out_Pub_c1_my_topic_messageQos1___c1_PubAck__Pub_c2_my_topic_messageQos1
+          In_SubscribeC1        -> 14 / Out_C1_SubAck__Empty
+          In_UnSubScribeC1      -> 9 / Out_C1_UnSubAck__Empty
+          In_SubscribeC2        -> 14 / Out_Empty__c2_SubAck
+          In_UnSubScribeC2      -> 8 / Out_Empty__c2_UnSubAck
+          In_DisconnectTCPC1    -> 11 / Out_C1_ConnectionClosed_client_close___Pub_c2_my_topic_bye
+    15    In_ConnectC2          -> 8 / Out_Empty__c2_ConnAck
+          In_ConnectC1WithWill  -> 12 / Out_C1_ConnectionClosed_eof_stream___c2_ConnectionClosed_eof_stream
+          In_PublishQoS0C2      -> 15 / Out_Empty__c2_ConnectionClosed_eof_stream
+          In_PublishQoS1C1      -> 15 / Out_Pub_c1_my_topic_messageQos1___c1_PubAck__c2_ConnectionClosed_eof_stream
+          In_SubscribeC1        -> 15 / Out_C1_SubAck__c2_ConnectionClosed_eof_stream
+          In_UnSubScribeC1      -> 6 / Out_C1_UnSubAck__c2_ConnectionClosed_eof_stream
+          In_SubscribeC2        -> 15 / Out_Empty__c2_ConnectionClosed_eof_stream
+          In_UnSubScribeC2      -> 15 / Out_Empty__c2_ConnectionClosed_eof_stream
+          In_DisconnectTCPC1    -> 10 / Out_C1_ConnectionClosed_client_close___c2_ConnectionClosed_eof_stream
+-}
 emqttTwoClient :: MealyAutomaton Int EmqttTwoClientInput EmqttTwoClientOutput
-emqttTwoClient = mkMealyAutomaton delta lambda (Set.fromList [0..15]) 0
+emqttTwoClient =
+    case mkMealyAutomatonTable 16 0 deltaTable lambdaTable of
+        Right m -> m
+        Left err -> error ("haal-gen: invalid transition table: " ++ err)
   where
-    delta 0 In_ConnectC2 = 1
-    delta 0 In_ConnectC1WithWill = 2
-    delta 0 In_PublishQoS0C2 = 0
-    delta 0 In_PublishQoS1C1 = 0
-    delta 0 In_SubscribeC1 = 0
-    delta 0 In_UnSubScribeC1 = 0
-    delta 0 In_SubscribeC2 = 0
-    delta 0 In_UnSubScribeC2 = 0
-    delta 0 In_DisconnectTCPC1 = 0
-    delta 2 In_ConnectC2 = 3
-    delta 2 In_ConnectC1WithWill = 4
-    delta 2 In_PublishQoS0C2 = 2
-    delta 2 In_PublishQoS1C1 = 2
-    delta 2 In_SubscribeC1 = 5
-    delta 2 In_UnSubScribeC1 = 2
-    delta 2 In_SubscribeC2 = 2
-    delta 2 In_UnSubScribeC2 = 2
-    delta 2 In_DisconnectTCPC1 = 0
-    delta 3 In_ConnectC2 = 6
-    delta 3 In_ConnectC1WithWill = 7
-    delta 3 In_PublishQoS0C2 = 3
-    delta 3 In_PublishQoS1C1 = 3
-    delta 3 In_SubscribeC1 = 8
-    delta 3 In_UnSubScribeC1 = 3
-    delta 3 In_SubscribeC2 = 9
-    delta 3 In_UnSubScribeC2 = 3
-    delta 3 In_DisconnectTCPC1 = 1
-    delta 1 In_ConnectC2 = 10
-    delta 1 In_ConnectC1WithWill = 3
-    delta 1 In_PublishQoS0C2 = 1
-    delta 1 In_PublishQoS1C1 = 1
-    delta 1 In_SubscribeC1 = 1
-    delta 1 In_UnSubScribeC1 = 1
-    delta 1 In_SubscribeC2 = 11
-    delta 1 In_UnSubScribeC2 = 1
-    delta 1 In_DisconnectTCPC1 = 1
-    delta 4 In_ConnectC2 = 7
-    delta 4 In_ConnectC1WithWill = 2
-    delta 4 In_PublishQoS0C2 = 4
-    delta 4 In_PublishQoS1C1 = 4
-    delta 4 In_SubscribeC1 = 4
-    delta 4 In_UnSubScribeC1 = 4
-    delta 4 In_SubscribeC2 = 4
-    delta 4 In_UnSubScribeC2 = 4
-    delta 4 In_DisconnectTCPC1 = 0
-    delta 7 In_ConnectC2 = 12
-    delta 7 In_ConnectC1WithWill = 3
-    delta 7 In_PublishQoS0C2 = 7
-    delta 7 In_PublishQoS1C1 = 7
-    delta 7 In_SubscribeC1 = 7
-    delta 7 In_UnSubScribeC1 = 7
-    delta 7 In_SubscribeC2 = 13
-    delta 7 In_UnSubScribeC2 = 7
-    delta 7 In_DisconnectTCPC1 = 1
-    delta 11 In_ConnectC2 = 10
-    delta 11 In_ConnectC1WithWill = 9
-    delta 11 In_PublishQoS0C2 = 11
-    delta 11 In_PublishQoS1C1 = 11
-    delta 11 In_SubscribeC1 = 11
-    delta 11 In_UnSubScribeC1 = 11
-    delta 11 In_SubscribeC2 = 11
-    delta 11 In_UnSubScribeC2 = 1
-    delta 11 In_DisconnectTCPC1 = 11
-    delta 10 In_ConnectC2 = 1
-    delta 10 In_ConnectC1WithWill = 6
-    delta 10 In_PublishQoS0C2 = 10
-    delta 10 In_PublishQoS1C1 = 10
-    delta 10 In_SubscribeC1 = 10
-    delta 10 In_UnSubScribeC1 = 10
-    delta 10 In_SubscribeC2 = 10
-    delta 10 In_UnSubScribeC2 = 10
-    delta 10 In_DisconnectTCPC1 = 10
-    delta 9 In_ConnectC2 = 6
-    delta 9 In_ConnectC1WithWill = 13
-    delta 9 In_PublishQoS0C2 = 9
-    delta 9 In_PublishQoS1C1 = 9
-    delta 9 In_SubscribeC1 = 14
-    delta 9 In_UnSubScribeC1 = 9
-    delta 9 In_SubscribeC2 = 9
-    delta 9 In_UnSubScribeC2 = 3
-    delta 9 In_DisconnectTCPC1 = 11
-    delta 13 In_ConnectC2 = 12
-    delta 13 In_ConnectC1WithWill = 9
-    delta 13 In_PublishQoS0C2 = 13
-    delta 13 In_PublishQoS1C1 = 13
-    delta 13 In_SubscribeC1 = 13
-    delta 13 In_UnSubScribeC1 = 13
-    delta 13 In_SubscribeC2 = 13
-    delta 13 In_UnSubScribeC2 = 7
-    delta 13 In_DisconnectTCPC1 = 11
-    delta 6 In_ConnectC2 = 3
-    delta 6 In_ConnectC1WithWill = 12
-    delta 6 In_PublishQoS0C2 = 6
-    delta 6 In_PublishQoS1C1 = 6
-    delta 6 In_SubscribeC1 = 15
-    delta 6 In_UnSubScribeC1 = 6
-    delta 6 In_SubscribeC2 = 6
-    delta 6 In_UnSubScribeC2 = 6
-    delta 6 In_DisconnectTCPC1 = 10
-    delta 8 In_ConnectC2 = 15
-    delta 8 In_ConnectC1WithWill = 7
-    delta 8 In_PublishQoS0C2 = 8
-    delta 8 In_PublishQoS1C1 = 8
-    delta 8 In_SubscribeC1 = 8
-    delta 8 In_UnSubScribeC1 = 3
-    delta 8 In_SubscribeC2 = 14
-    delta 8 In_UnSubScribeC2 = 8
-    delta 8 In_DisconnectTCPC1 = 1
-    delta 12 In_ConnectC2 = 7
-    delta 12 In_ConnectC1WithWill = 6
-    delta 12 In_PublishQoS0C2 = 12
-    delta 12 In_PublishQoS1C1 = 12
-    delta 12 In_SubscribeC1 = 12
-    delta 12 In_UnSubScribeC1 = 12
-    delta 12 In_SubscribeC2 = 12
-    delta 12 In_UnSubScribeC2 = 12
-    delta 12 In_DisconnectTCPC1 = 10
-    delta 14 In_ConnectC2 = 15
-    delta 14 In_ConnectC1WithWill = 13
-    delta 14 In_PublishQoS0C2 = 14
-    delta 14 In_PublishQoS1C1 = 14
-    delta 14 In_SubscribeC1 = 14
-    delta 14 In_UnSubScribeC1 = 9
-    delta 14 In_SubscribeC2 = 14
-    delta 14 In_UnSubScribeC2 = 8
-    delta 14 In_DisconnectTCPC1 = 11
-    delta 15 In_ConnectC2 = 8
-    delta 15 In_ConnectC1WithWill = 12
-    delta 15 In_PublishQoS0C2 = 15
-    delta 15 In_PublishQoS1C1 = 15
-    delta 15 In_SubscribeC1 = 15
-    delta 15 In_UnSubScribeC1 = 6
-    delta 15 In_SubscribeC2 = 15
-    delta 15 In_UnSubScribeC2 = 15
-    delta 15 In_DisconnectTCPC1 = 10
-    delta 5 In_ConnectC2 = 8
-    delta 5 In_ConnectC1WithWill = 4
-    delta 5 In_PublishQoS0C2 = 5
-    delta 5 In_PublishQoS1C1 = 5
-    delta 5 In_SubscribeC1 = 5
-    delta 5 In_UnSubScribeC1 = 2
-    delta 5 In_SubscribeC2 = 5
-    delta 5 In_UnSubScribeC2 = 5
-    delta 5 In_DisconnectTCPC1 = 0
-    delta _ _ = error "haal-gen: undefined transition"
-    lambda 0 In_ConnectC2 = Out_C1_ConnectionClosed_client_close___c2_ConnAck
-    lambda 0 In_ConnectC1WithWill = Out_C1_ConnAck__c2_ConnectionClosed_client_close
-    lambda 0 In_PublishQoS0C2 = Out_C1_ConnectionClosed_client_close___c2_ConnectionClosed_client_close
-    lambda 0 In_PublishQoS1C1 = Out_C1_ConnectionClosed_client_close___c2_ConnectionClosed_client_close
-    lambda 0 In_SubscribeC1 = Out_C1_ConnectionClosed_client_close___c2_ConnectionClosed_client_close
-    lambda 0 In_UnSubScribeC1 = Out_C1_ConnectionClosed_client_close___c2_ConnectionClosed_client_close
-    lambda 0 In_SubscribeC2 = Out_C1_ConnectionClosed_client_close___c2_ConnectionClosed_client_close
-    lambda 0 In_UnSubScribeC2 = Out_C1_ConnectionClosed_client_close___c2_ConnectionClosed_client_close
-    lambda 0 In_DisconnectTCPC1 = Out_C1_ConnectionClosed_client_close___c2_ConnectionClosed_client_close
-    lambda 2 In_ConnectC2 = Out_Empty__c2_ConnAck
-    lambda 2 In_ConnectC1WithWill = Out_C1_ConnectionClosed_eof_stream___c2_ConnectionClosed_client_close
-    lambda 2 In_PublishQoS0C2 = Out_Empty__c2_ConnectionClosed_client_close
-    lambda 2 In_PublishQoS1C1 = Out_C1_PubAck__c2_ConnectionClosed_client_close
-    lambda 2 In_SubscribeC1 = Out_C1_SubAck__Pub_c1_my_topic_bye___c2_ConnectionClosed_client_close
-    lambda 2 In_UnSubScribeC1 = Out_C1_UnSubAck__c2_ConnectionClosed_client_close
-    lambda 2 In_SubscribeC2 = Out_Empty__c2_ConnectionClosed_client_close
-    lambda 2 In_UnSubScribeC2 = Out_Empty__c2_ConnectionClosed_client_close
-    lambda 2 In_DisconnectTCPC1 = Out_C1_ConnectionClosed_client_close___c2_ConnectionClosed_client_close
-    lambda 3 In_ConnectC2 = Out_Empty__c2_ConnectionClosed_eof_stream
-    lambda 3 In_ConnectC1WithWill = Out_C1_ConnectionClosed_eof_stream___Empty
-    lambda 3 In_PublishQoS0C2 = Out_Empty__Empty
-    lambda 3 In_PublishQoS1C1 = Out_C1_PubAck__Empty
-    lambda 3 In_SubscribeC1 = Out_C1_SubAck__Pub_c1_my_topic_bye___Empty
-    lambda 3 In_UnSubScribeC1 = Out_C1_UnSubAck__Empty
-    lambda 3 In_SubscribeC2 = Out_Empty__c2_SubAck__Pub_c2_my_topic_bye
-    lambda 3 In_UnSubScribeC2 = Out_Empty__c2_UnSubAck
-    lambda 3 In_DisconnectTCPC1 = Out_C1_ConnectionClosed_client_close___Empty
-    lambda 1 In_ConnectC2 = Out_C1_ConnectionClosed_client_close___c2_ConnectionClosed_eof_stream
-    lambda 1 In_ConnectC1WithWill = Out_C1_ConnAck__Empty
-    lambda 1 In_PublishQoS0C2 = Out_C1_ConnectionClosed_client_close___Empty
-    lambda 1 In_PublishQoS1C1 = Out_C1_ConnectionClosed_client_close___Empty
-    lambda 1 In_SubscribeC1 = Out_C1_ConnectionClosed_client_close___Empty
-    lambda 1 In_UnSubScribeC1 = Out_C1_ConnectionClosed_client_close___Empty
-    lambda 1 In_SubscribeC2 = Out_C1_ConnectionClosed_client_close___c2_SubAck__Pub_c2_my_topic_bye
-    lambda 1 In_UnSubScribeC2 = Out_C1_ConnectionClosed_client_close___c2_UnSubAck
-    lambda 1 In_DisconnectTCPC1 = Out_C1_ConnectionClosed_client_close___Empty
-    lambda 4 In_ConnectC2 = Out_C1_ConnectionClosed_eof_stream___c2_ConnAck
-    lambda 4 In_ConnectC1WithWill = Out_C1_ConnAck__c2_ConnectionClosed_client_close
-    lambda 4 In_PublishQoS0C2 = Out_C1_ConnectionClosed_eof_stream___c2_ConnectionClosed_client_close
-    lambda 4 In_PublishQoS1C1 = Out_C1_ConnectionClosed_eof_stream___c2_ConnectionClosed_client_close
-    lambda 4 In_SubscribeC1 = Out_C1_ConnectionClosed_eof_stream___c2_ConnectionClosed_client_close
-    lambda 4 In_UnSubScribeC1 = Out_C1_ConnectionClosed_eof_stream___c2_ConnectionClosed_client_close
-    lambda 4 In_SubscribeC2 = Out_C1_ConnectionClosed_eof_stream___c2_ConnectionClosed_client_close
-    lambda 4 In_UnSubScribeC2 = Out_C1_ConnectionClosed_eof_stream___c2_ConnectionClosed_client_close
-    lambda 4 In_DisconnectTCPC1 = Out_C1_ConnectionClosed_client_close___c2_ConnectionClosed_client_close
-    lambda 7 In_ConnectC2 = Out_C1_ConnectionClosed_eof_stream___c2_ConnectionClosed_eof_stream
-    lambda 7 In_ConnectC1WithWill = Out_C1_ConnAck__Empty
-    lambda 7 In_PublishQoS0C2 = Out_C1_ConnectionClosed_eof_stream___Empty
-    lambda 7 In_PublishQoS1C1 = Out_C1_ConnectionClosed_eof_stream___Empty
-    lambda 7 In_SubscribeC1 = Out_C1_ConnectionClosed_eof_stream___Empty
-    lambda 7 In_UnSubScribeC1 = Out_C1_ConnectionClosed_eof_stream___Empty
-    lambda 7 In_SubscribeC2 = Out_C1_ConnectionClosed_eof_stream___c2_SubAck__Pub_c2_my_topic_bye
-    lambda 7 In_UnSubScribeC2 = Out_C1_ConnectionClosed_eof_stream___c2_UnSubAck
-    lambda 7 In_DisconnectTCPC1 = Out_C1_ConnectionClosed_client_close___Empty
-    lambda 11 In_ConnectC2 = Out_C1_ConnectionClosed_client_close___c2_ConnectionClosed_eof_stream
-    lambda 11 In_ConnectC1WithWill = Out_C1_ConnAck__Empty
-    lambda 11 In_PublishQoS0C2 = Out_C1_ConnectionClosed_client_close___Pub_c2_my_topic_messageQos0
-    lambda 11 In_PublishQoS1C1 = Out_C1_ConnectionClosed_client_close___Empty
-    lambda 11 In_SubscribeC1 = Out_C1_ConnectionClosed_client_close___Empty
-    lambda 11 In_UnSubScribeC1 = Out_C1_ConnectionClosed_client_close___Empty
-    lambda 11 In_SubscribeC2 = Out_C1_ConnectionClosed_client_close___c2_SubAck
-    lambda 11 In_UnSubScribeC2 = Out_C1_ConnectionClosed_client_close___c2_UnSubAck
-    lambda 11 In_DisconnectTCPC1 = Out_C1_ConnectionClosed_client_close___Empty
-    lambda 10 In_ConnectC2 = Out_C1_ConnectionClosed_client_close___c2_ConnAck
-    lambda 10 In_ConnectC1WithWill = Out_C1_ConnAck__c2_ConnectionClosed_eof_stream
-    lambda 10 In_PublishQoS0C2 = Out_C1_ConnectionClosed_client_close___c2_ConnectionClosed_eof_stream
-    lambda 10 In_PublishQoS1C1 = Out_C1_ConnectionClosed_client_close___c2_ConnectionClosed_eof_stream
-    lambda 10 In_SubscribeC1 = Out_C1_ConnectionClosed_client_close___c2_ConnectionClosed_eof_stream
-    lambda 10 In_UnSubScribeC1 = Out_C1_ConnectionClosed_client_close___c2_ConnectionClosed_eof_stream
-    lambda 10 In_SubscribeC2 = Out_C1_ConnectionClosed_client_close___c2_ConnectionClosed_eof_stream
-    lambda 10 In_UnSubScribeC2 = Out_C1_ConnectionClosed_client_close___c2_ConnectionClosed_eof_stream
-    lambda 10 In_DisconnectTCPC1 = Out_C1_ConnectionClosed_client_close___c2_ConnectionClosed_eof_stream
-    lambda 9 In_ConnectC2 = Out_Empty__c2_ConnectionClosed_eof_stream
-    lambda 9 In_ConnectC1WithWill = Out_C1_ConnectionClosed_eof_stream___Pub_c2_my_topic_bye
-    lambda 9 In_PublishQoS0C2 = Out_Empty__Pub_c2_my_topic_messageQos0
-    lambda 9 In_PublishQoS1C1 = Out_C1_PubAck__Pub_c2_my_topic_messageQos1
-    lambda 9 In_SubscribeC1 = Out_C1_SubAck__Pub_c1_my_topic_bye___Empty
-    lambda 9 In_UnSubScribeC1 = Out_C1_UnSubAck__Empty
-    lambda 9 In_SubscribeC2 = Out_Empty__c2_SubAck
-    lambda 9 In_UnSubScribeC2 = Out_Empty__c2_UnSubAck
-    lambda 9 In_DisconnectTCPC1 = Out_C1_ConnectionClosed_client_close___Pub_c2_my_topic_bye
-    lambda 13 In_ConnectC2 = Out_C1_ConnectionClosed_eof_stream___c2_ConnectionClosed_eof_stream
-    lambda 13 In_ConnectC1WithWill = Out_C1_ConnAck__Empty
-    lambda 13 In_PublishQoS0C2 = Out_C1_ConnectionClosed_eof_stream___Pub_c2_my_topic_messageQos0
-    lambda 13 In_PublishQoS1C1 = Out_C1_ConnectionClosed_eof_stream___Empty
-    lambda 13 In_SubscribeC1 = Out_C1_ConnectionClosed_eof_stream___Empty
-    lambda 13 In_UnSubScribeC1 = Out_C1_ConnectionClosed_eof_stream___Empty
-    lambda 13 In_SubscribeC2 = Out_C1_ConnectionClosed_eof_stream___c2_SubAck
-    lambda 13 In_UnSubScribeC2 = Out_C1_ConnectionClosed_eof_stream___c2_UnSubAck
-    lambda 13 In_DisconnectTCPC1 = Out_C1_ConnectionClosed_client_close___Empty
-    lambda 6 In_ConnectC2 = Out_Empty__c2_ConnAck
-    lambda 6 In_ConnectC1WithWill = Out_C1_ConnectionClosed_eof_stream___c2_ConnectionClosed_eof_stream
-    lambda 6 In_PublishQoS0C2 = Out_Empty__c2_ConnectionClosed_eof_stream
-    lambda 6 In_PublishQoS1C1 = Out_C1_PubAck__c2_ConnectionClosed_eof_stream
-    lambda 6 In_SubscribeC1 = Out_C1_SubAck__Pub_c1_my_topic_bye___c2_ConnectionClosed_eof_stream
-    lambda 6 In_UnSubScribeC1 = Out_C1_UnSubAck__c2_ConnectionClosed_eof_stream
-    lambda 6 In_SubscribeC2 = Out_Empty__c2_ConnectionClosed_eof_stream
-    lambda 6 In_UnSubScribeC2 = Out_Empty__c2_ConnectionClosed_eof_stream
-    lambda 6 In_DisconnectTCPC1 = Out_C1_ConnectionClosed_client_close___c2_ConnectionClosed_eof_stream
-    lambda 8 In_ConnectC2 = Out_Empty__c2_ConnectionClosed_eof_stream
-    lambda 8 In_ConnectC1WithWill = Out_C1_ConnectionClosed_eof_stream___Empty
-    lambda 8 In_PublishQoS0C2 = Out_Pub_c1_my_topic_messageQos0___Empty
-    lambda 8 In_PublishQoS1C1 = Out_Pub_c1_my_topic_messageQos1___c1_PubAck__Empty
-    lambda 8 In_SubscribeC1 = Out_C1_SubAck__Empty
-    lambda 8 In_UnSubScribeC1 = Out_C1_UnSubAck__Empty
-    lambda 8 In_SubscribeC2 = Out_Empty__c2_SubAck__Pub_c2_my_topic_bye
-    lambda 8 In_UnSubScribeC2 = Out_Empty__c2_UnSubAck
-    lambda 8 In_DisconnectTCPC1 = Out_C1_ConnectionClosed_client_close___Empty
-    lambda 12 In_ConnectC2 = Out_C1_ConnectionClosed_eof_stream___c2_ConnAck
-    lambda 12 In_ConnectC1WithWill = Out_C1_ConnAck__c2_ConnectionClosed_eof_stream
-    lambda 12 In_PublishQoS0C2 = Out_C1_ConnectionClosed_eof_stream___c2_ConnectionClosed_eof_stream
-    lambda 12 In_PublishQoS1C1 = Out_C1_ConnectionClosed_eof_stream___c2_ConnectionClosed_eof_stream
-    lambda 12 In_SubscribeC1 = Out_C1_ConnectionClosed_eof_stream___c2_ConnectionClosed_eof_stream
-    lambda 12 In_UnSubScribeC1 = Out_C1_ConnectionClosed_eof_stream___c2_ConnectionClosed_eof_stream
-    lambda 12 In_SubscribeC2 = Out_C1_ConnectionClosed_eof_stream___c2_ConnectionClosed_eof_stream
-    lambda 12 In_UnSubScribeC2 = Out_C1_ConnectionClosed_eof_stream___c2_ConnectionClosed_eof_stream
-    lambda 12 In_DisconnectTCPC1 = Out_C1_ConnectionClosed_client_close___c2_ConnectionClosed_eof_stream
-    lambda 14 In_ConnectC2 = Out_Empty__c2_ConnectionClosed_eof_stream
-    lambda 14 In_ConnectC1WithWill = Out_C1_ConnectionClosed_eof_stream___Pub_c2_my_topic_bye
-    lambda 14 In_PublishQoS0C2 = Out_Pub_c1_my_topic_messageQos0___Pub_c2_my_topic_messageQos0
-    lambda 14 In_PublishQoS1C1 = Out_Pub_c1_my_topic_messageQos1___c1_PubAck__Pub_c2_my_topic_messageQos1
-    lambda 14 In_SubscribeC1 = Out_C1_SubAck__Empty
-    lambda 14 In_UnSubScribeC1 = Out_C1_UnSubAck__Empty
-    lambda 14 In_SubscribeC2 = Out_Empty__c2_SubAck
-    lambda 14 In_UnSubScribeC2 = Out_Empty__c2_UnSubAck
-    lambda 14 In_DisconnectTCPC1 = Out_C1_ConnectionClosed_client_close___Pub_c2_my_topic_bye
-    lambda 15 In_ConnectC2 = Out_Empty__c2_ConnAck
-    lambda 15 In_ConnectC1WithWill = Out_C1_ConnectionClosed_eof_stream___c2_ConnectionClosed_eof_stream
-    lambda 15 In_PublishQoS0C2 = Out_Empty__c2_ConnectionClosed_eof_stream
-    lambda 15 In_PublishQoS1C1 = Out_Pub_c1_my_topic_messageQos1___c1_PubAck__c2_ConnectionClosed_eof_stream
-    lambda 15 In_SubscribeC1 = Out_C1_SubAck__c2_ConnectionClosed_eof_stream
-    lambda 15 In_UnSubScribeC1 = Out_C1_UnSubAck__c2_ConnectionClosed_eof_stream
-    lambda 15 In_SubscribeC2 = Out_Empty__c2_ConnectionClosed_eof_stream
-    lambda 15 In_UnSubScribeC2 = Out_Empty__c2_ConnectionClosed_eof_stream
-    lambda 15 In_DisconnectTCPC1 = Out_C1_ConnectionClosed_client_close___c2_ConnectionClosed_eof_stream
-    lambda 5 In_ConnectC2 = Out_Empty__c2_ConnAck
-    lambda 5 In_ConnectC1WithWill = Out_C1_ConnectionClosed_eof_stream___c2_ConnectionClosed_client_close
-    lambda 5 In_PublishQoS0C2 = Out_Empty__c2_ConnectionClosed_client_close
-    lambda 5 In_PublishQoS1C1 = Out_Pub_c1_my_topic_messageQos1___c1_PubAck__c2_ConnectionClosed_client_close
-    lambda 5 In_SubscribeC1 = Out_C1_SubAck__c2_ConnectionClosed_client_close
-    lambda 5 In_UnSubScribeC1 = Out_C1_UnSubAck__c2_ConnectionClosed_client_close
-    lambda 5 In_SubscribeC2 = Out_Empty__c2_ConnectionClosed_client_close
-    lambda 5 In_UnSubScribeC2 = Out_Empty__c2_ConnectionClosed_client_close
-    lambda 5 In_DisconnectTCPC1 = Out_C1_ConnectionClosed_client_close___c2_ConnectionClosed_client_close
-    lambda _ _ = error "haal-gen: undefined transition"
+    deltaTable =
+        "\1\2\0\0\0\0\0\0\0\
+        \\10\3\1\1\1\1\11\1\1\
+        \\3\4\2\2\5\2\2\2\0\
+        \\6\7\3\3\8\3\9\3\1\
+        \\7\2\4\4\4\4\4\4\0\
+        \\8\4\5\5\5\2\5\5\0\
+        \\3\12\6\6\15\6\6\6\10\
+        \\12\3\7\7\7\7\13\7\1\
+        \\15\7\8\8\8\3\14\8\1\
+        \\6\13\9\9\14\9\9\3\11\
+        \\1\6\10\10\10\10\10\10\10\
+        \\10\9\11\11\11\11\11\1\11\
+        \\7\6\12\12\12\12\12\12\10\
+        \\12\9\13\13\13\13\13\7\11\
+        \\15\13\14\14\14\9\14\8\11\
+        \\8\12\15\15\15\6\15\15\10"
+    lambdaTable =
+        "\0\1\2\2\2\2\2\2\2\
+        \\18\19\17\17\17\17\20\21\17\
+        \\3\4\5\6\7\8\5\5\2\
+        \\9\10\11\12\13\14\15\16\17\
+        \\22\1\4\4\4\4\4\4\2\
+        \\3\4\5\46\47\8\5\5\2\
+        \\3\23\9\36\37\38\9\9\18\
+        \\23\19\10\10\10\10\24\25\17\
+        \\9\10\39\40\41\14\15\16\17\
+        \\9\29\30\31\13\14\32\16\33\
+        \\0\28\18\18\18\18\18\18\18\
+        \\18\19\26\17\17\17\27\21\17\
+        \\22\28\23\23\23\23\23\23\18\
+        \\23\19\34\10\10\10\35\25\17\
+        \\9\29\42\43\41\14\32\16\33\
+        \\3\23\9\44\45\38\9\9\18"
diff --git a/src/Haal/Models/MQTT/EmqttTwoClientSameId.hs b/src/Haal/Models/MQTT/EmqttTwoClientSameId.hs
--- a/src/Haal/Models/MQTT/EmqttTwoClientSameId.hs
+++ b/src/Haal/Models/MQTT/EmqttTwoClientSameId.hs
@@ -5,8 +5,7 @@
     , emqttTwoClientSameId
     ) where
 
-import qualified Data.Set as Set
-import Haal.Automaton.MealyAutomaton (MealyAutomaton, mkMealyAutomaton)
+import Haal.Automaton.MealyAutomaton (MealyAutomaton, mkMealyAutomatonTable)
 
 data EmqttTwoClientSameIdInput
     = In_ConnectC2
@@ -38,162 +37,104 @@
     | Out_C1_ConnectionClosed__Pub_c2_my_topic_i_am_C2_0_notdub
     deriving (Show, Eq, Ord, Enum, Bounded)
 
+{- Transitions (state  input -> next state / output):
+    0     In_ConnectC2          -> 1 / Out_C1_ConnectionClosed__ConnAckPacket_false_0
+          In_ConnectC1WithWill  -> 2 / Out_ConnAckPacket_false_0___c2_ConnectionClosed
+          In_PublishC1          -> 0 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_PublishC2          -> 0 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_SubscribeC1        -> 0 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_UnSubScribeC1      -> 0 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_SubscribeC2        -> 0 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_UnSubScribeC2      -> 0 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_DisconnectC2       -> 0 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_DisconnectTCPC1    -> 0 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_DisconnectC1       -> 0 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+    1     In_ConnectC2          -> 4 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_ConnectC1WithWill  -> 2 / Out_ConnAckPacket_false_0___c2_ConnectionClosed
+          In_PublishC1          -> 1 / Out_C1_ConnectionClosed__Empty
+          In_PublishC2          -> 1 / Out_C1_ConnectionClosed__Empty
+          In_SubscribeC1        -> 1 / Out_C1_ConnectionClosed__Empty
+          In_UnSubScribeC1      -> 1 / Out_C1_ConnectionClosed__Empty
+          In_SubscribeC2        -> 5 / Out_C1_ConnectionClosed__c2_SubAck
+          In_UnSubScribeC2      -> 1 / Out_C1_ConnectionClosed__c2_UnSubAck
+          In_DisconnectC2       -> 4 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_DisconnectTCPC1    -> 1 / Out_C1_ConnectionClosed__Empty
+          In_DisconnectC1       -> 1 / Out_C1_ConnectionClosed__Empty
+    2     In_ConnectC2          -> 1 / Out_C1_ConnectionClosed__ConnAckPacket_true_0
+          In_ConnectC1WithWill  -> 0 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_PublishC1          -> 2 / Out_C1_PubAck__c2_ConnectionClosed
+          In_PublishC2          -> 2 / Out_Empty__c2_ConnectionClosed
+          In_SubscribeC1        -> 3 / Out_C1_SubAck__c2_ConnectionClosed
+          In_UnSubScribeC1      -> 2 / Out_C1_UnSubAck__c2_ConnectionClosed
+          In_SubscribeC2        -> 2 / Out_Empty__c2_ConnectionClosed
+          In_UnSubScribeC2      -> 2 / Out_Empty__c2_ConnectionClosed
+          In_DisconnectC2       -> 2 / Out_Empty__c2_ConnectionClosed
+          In_DisconnectTCPC1    -> 0 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_DisconnectC1       -> 0 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+    3     In_ConnectC2          -> 5 / Out_C1_ConnectionClosed__ConnAckPacket_true_0
+          In_ConnectC1WithWill  -> 0 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_PublishC1          -> 3 / Out_Pub_c1_my_topic_i_am_C1_0_notdub___c1_PubAck__c2_ConnectionClosed
+          In_PublishC2          -> 3 / Out_Empty__c2_ConnectionClosed
+          In_SubscribeC1        -> 3 / Out_C1_SubAck__c2_ConnectionClosed
+          In_UnSubScribeC1      -> 2 / Out_C1_UnSubAck__c2_ConnectionClosed
+          In_SubscribeC2        -> 3 / Out_Empty__c2_ConnectionClosed
+          In_UnSubScribeC2      -> 3 / Out_Empty__c2_ConnectionClosed
+          In_DisconnectC2       -> 3 / Out_Empty__c2_ConnectionClosed
+          In_DisconnectTCPC1    -> 0 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_DisconnectC1       -> 0 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+    4     In_ConnectC2          -> 1 / Out_C1_ConnectionClosed__ConnAckPacket_true_0
+          In_ConnectC1WithWill  -> 2 / Out_ConnAckPacket_false_0___c2_ConnectionClosed
+          In_PublishC1          -> 4 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_PublishC2          -> 4 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_SubscribeC1        -> 4 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_UnSubScribeC1      -> 4 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_SubscribeC2        -> 4 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_UnSubScribeC2      -> 4 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_DisconnectC2       -> 4 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_DisconnectTCPC1    -> 4 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_DisconnectC1       -> 4 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+    5     In_ConnectC2          -> 6 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_ConnectC1WithWill  -> 2 / Out_ConnAckPacket_false_0___c2_ConnectionClosed
+          In_PublishC1          -> 5 / Out_C1_ConnectionClosed__Empty
+          In_PublishC2          -> 5 / Out_C1_ConnectionClosed__Pub_c2_my_topic_i_am_C2_0_notdub
+          In_SubscribeC1        -> 5 / Out_C1_ConnectionClosed__Empty
+          In_UnSubScribeC1      -> 5 / Out_C1_ConnectionClosed__Empty
+          In_SubscribeC2        -> 5 / Out_C1_ConnectionClosed__c2_SubAck
+          In_UnSubScribeC2      -> 1 / Out_C1_ConnectionClosed__c2_UnSubAck
+          In_DisconnectC2       -> 6 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_DisconnectTCPC1    -> 5 / Out_C1_ConnectionClosed__Empty
+          In_DisconnectC1       -> 5 / Out_C1_ConnectionClosed__Empty
+    6     In_ConnectC2          -> 5 / Out_C1_ConnectionClosed__ConnAckPacket_true_0
+          In_ConnectC1WithWill  -> 2 / Out_ConnAckPacket_false_0___c2_ConnectionClosed
+          In_PublishC1          -> 6 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_PublishC2          -> 6 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_SubscribeC1        -> 6 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_UnSubScribeC1      -> 6 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_SubscribeC2        -> 6 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_UnSubScribeC2      -> 6 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_DisconnectC2       -> 6 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_DisconnectTCPC1    -> 6 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_DisconnectC1       -> 6 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+-}
 emqttTwoClientSameId :: MealyAutomaton Int EmqttTwoClientSameIdInput EmqttTwoClientSameIdOutput
-emqttTwoClientSameId = mkMealyAutomaton delta lambda (Set.fromList [0..6]) 0
+emqttTwoClientSameId =
+    case mkMealyAutomatonTable 7 0 deltaTable lambdaTable of
+        Right m -> m
+        Left err -> error ("haal-gen: invalid transition table: " ++ err)
   where
-    delta 0 In_ConnectC2 = 1
-    delta 0 In_ConnectC1WithWill = 2
-    delta 0 In_PublishC1 = 0
-    delta 0 In_PublishC2 = 0
-    delta 0 In_SubscribeC1 = 0
-    delta 0 In_UnSubScribeC1 = 0
-    delta 0 In_SubscribeC2 = 0
-    delta 0 In_UnSubScribeC2 = 0
-    delta 0 In_DisconnectC2 = 0
-    delta 0 In_DisconnectTCPC1 = 0
-    delta 0 In_DisconnectC1 = 0
-    delta 2 In_ConnectC2 = 1
-    delta 2 In_ConnectC1WithWill = 0
-    delta 2 In_PublishC1 = 2
-    delta 2 In_PublishC2 = 2
-    delta 2 In_SubscribeC1 = 3
-    delta 2 In_UnSubScribeC1 = 2
-    delta 2 In_SubscribeC2 = 2
-    delta 2 In_UnSubScribeC2 = 2
-    delta 2 In_DisconnectC2 = 2
-    delta 2 In_DisconnectTCPC1 = 0
-    delta 2 In_DisconnectC1 = 0
-    delta 1 In_ConnectC2 = 4
-    delta 1 In_ConnectC1WithWill = 2
-    delta 1 In_PublishC1 = 1
-    delta 1 In_PublishC2 = 1
-    delta 1 In_SubscribeC1 = 1
-    delta 1 In_UnSubScribeC1 = 1
-    delta 1 In_SubscribeC2 = 5
-    delta 1 In_UnSubScribeC2 = 1
-    delta 1 In_DisconnectC2 = 4
-    delta 1 In_DisconnectTCPC1 = 1
-    delta 1 In_DisconnectC1 = 1
-    delta 4 In_ConnectC2 = 1
-    delta 4 In_ConnectC1WithWill = 2
-    delta 4 In_PublishC1 = 4
-    delta 4 In_PublishC2 = 4
-    delta 4 In_SubscribeC1 = 4
-    delta 4 In_UnSubScribeC1 = 4
-    delta 4 In_SubscribeC2 = 4
-    delta 4 In_UnSubScribeC2 = 4
-    delta 4 In_DisconnectC2 = 4
-    delta 4 In_DisconnectTCPC1 = 4
-    delta 4 In_DisconnectC1 = 4
-    delta 3 In_ConnectC2 = 5
-    delta 3 In_ConnectC1WithWill = 0
-    delta 3 In_PublishC1 = 3
-    delta 3 In_PublishC2 = 3
-    delta 3 In_SubscribeC1 = 3
-    delta 3 In_UnSubScribeC1 = 2
-    delta 3 In_SubscribeC2 = 3
-    delta 3 In_UnSubScribeC2 = 3
-    delta 3 In_DisconnectC2 = 3
-    delta 3 In_DisconnectTCPC1 = 0
-    delta 3 In_DisconnectC1 = 0
-    delta 5 In_ConnectC2 = 6
-    delta 5 In_ConnectC1WithWill = 2
-    delta 5 In_PublishC1 = 5
-    delta 5 In_PublishC2 = 5
-    delta 5 In_SubscribeC1 = 5
-    delta 5 In_UnSubScribeC1 = 5
-    delta 5 In_SubscribeC2 = 5
-    delta 5 In_UnSubScribeC2 = 1
-    delta 5 In_DisconnectC2 = 6
-    delta 5 In_DisconnectTCPC1 = 5
-    delta 5 In_DisconnectC1 = 5
-    delta 6 In_ConnectC2 = 5
-    delta 6 In_ConnectC1WithWill = 2
-    delta 6 In_PublishC1 = 6
-    delta 6 In_PublishC2 = 6
-    delta 6 In_SubscribeC1 = 6
-    delta 6 In_UnSubScribeC1 = 6
-    delta 6 In_SubscribeC2 = 6
-    delta 6 In_UnSubScribeC2 = 6
-    delta 6 In_DisconnectC2 = 6
-    delta 6 In_DisconnectTCPC1 = 6
-    delta 6 In_DisconnectC1 = 6
-    delta _ _ = error "haal-gen: undefined transition"
-    lambda 0 In_ConnectC2 = Out_C1_ConnectionClosed__ConnAckPacket_false_0
-    lambda 0 In_ConnectC1WithWill = Out_ConnAckPacket_false_0___c2_ConnectionClosed
-    lambda 0 In_PublishC1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 0 In_PublishC2 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 0 In_SubscribeC1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 0 In_UnSubScribeC1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 0 In_SubscribeC2 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 0 In_UnSubScribeC2 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 0 In_DisconnectC2 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 0 In_DisconnectTCPC1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 0 In_DisconnectC1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 2 In_ConnectC2 = Out_C1_ConnectionClosed__ConnAckPacket_true_0
-    lambda 2 In_ConnectC1WithWill = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 2 In_PublishC1 = Out_C1_PubAck__c2_ConnectionClosed
-    lambda 2 In_PublishC2 = Out_Empty__c2_ConnectionClosed
-    lambda 2 In_SubscribeC1 = Out_C1_SubAck__c2_ConnectionClosed
-    lambda 2 In_UnSubScribeC1 = Out_C1_UnSubAck__c2_ConnectionClosed
-    lambda 2 In_SubscribeC2 = Out_Empty__c2_ConnectionClosed
-    lambda 2 In_UnSubScribeC2 = Out_Empty__c2_ConnectionClosed
-    lambda 2 In_DisconnectC2 = Out_Empty__c2_ConnectionClosed
-    lambda 2 In_DisconnectTCPC1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 2 In_DisconnectC1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 1 In_ConnectC2 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 1 In_ConnectC1WithWill = Out_ConnAckPacket_false_0___c2_ConnectionClosed
-    lambda 1 In_PublishC1 = Out_C1_ConnectionClosed__Empty
-    lambda 1 In_PublishC2 = Out_C1_ConnectionClosed__Empty
-    lambda 1 In_SubscribeC1 = Out_C1_ConnectionClosed__Empty
-    lambda 1 In_UnSubScribeC1 = Out_C1_ConnectionClosed__Empty
-    lambda 1 In_SubscribeC2 = Out_C1_ConnectionClosed__c2_SubAck
-    lambda 1 In_UnSubScribeC2 = Out_C1_ConnectionClosed__c2_UnSubAck
-    lambda 1 In_DisconnectC2 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 1 In_DisconnectTCPC1 = Out_C1_ConnectionClosed__Empty
-    lambda 1 In_DisconnectC1 = Out_C1_ConnectionClosed__Empty
-    lambda 4 In_ConnectC2 = Out_C1_ConnectionClosed__ConnAckPacket_true_0
-    lambda 4 In_ConnectC1WithWill = Out_ConnAckPacket_false_0___c2_ConnectionClosed
-    lambda 4 In_PublishC1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 4 In_PublishC2 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 4 In_SubscribeC1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 4 In_UnSubScribeC1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 4 In_SubscribeC2 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 4 In_UnSubScribeC2 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 4 In_DisconnectC2 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 4 In_DisconnectTCPC1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 4 In_DisconnectC1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 3 In_ConnectC2 = Out_C1_ConnectionClosed__ConnAckPacket_true_0
-    lambda 3 In_ConnectC1WithWill = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 3 In_PublishC1 = Out_Pub_c1_my_topic_i_am_C1_0_notdub___c1_PubAck__c2_ConnectionClosed
-    lambda 3 In_PublishC2 = Out_Empty__c2_ConnectionClosed
-    lambda 3 In_SubscribeC1 = Out_C1_SubAck__c2_ConnectionClosed
-    lambda 3 In_UnSubScribeC1 = Out_C1_UnSubAck__c2_ConnectionClosed
-    lambda 3 In_SubscribeC2 = Out_Empty__c2_ConnectionClosed
-    lambda 3 In_UnSubScribeC2 = Out_Empty__c2_ConnectionClosed
-    lambda 3 In_DisconnectC2 = Out_Empty__c2_ConnectionClosed
-    lambda 3 In_DisconnectTCPC1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 3 In_DisconnectC1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 5 In_ConnectC2 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 5 In_ConnectC1WithWill = Out_ConnAckPacket_false_0___c2_ConnectionClosed
-    lambda 5 In_PublishC1 = Out_C1_ConnectionClosed__Empty
-    lambda 5 In_PublishC2 = Out_C1_ConnectionClosed__Pub_c2_my_topic_i_am_C2_0_notdub
-    lambda 5 In_SubscribeC1 = Out_C1_ConnectionClosed__Empty
-    lambda 5 In_UnSubScribeC1 = Out_C1_ConnectionClosed__Empty
-    lambda 5 In_SubscribeC2 = Out_C1_ConnectionClosed__c2_SubAck
-    lambda 5 In_UnSubScribeC2 = Out_C1_ConnectionClosed__c2_UnSubAck
-    lambda 5 In_DisconnectC2 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 5 In_DisconnectTCPC1 = Out_C1_ConnectionClosed__Empty
-    lambda 5 In_DisconnectC1 = Out_C1_ConnectionClosed__Empty
-    lambda 6 In_ConnectC2 = Out_C1_ConnectionClosed__ConnAckPacket_true_0
-    lambda 6 In_ConnectC1WithWill = Out_ConnAckPacket_false_0___c2_ConnectionClosed
-    lambda 6 In_PublishC1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 6 In_PublishC2 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 6 In_SubscribeC1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 6 In_UnSubScribeC1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 6 In_SubscribeC2 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 6 In_UnSubScribeC2 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 6 In_DisconnectC2 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 6 In_DisconnectTCPC1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 6 In_DisconnectC1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda _ _ = error "haal-gen: undefined transition"
+    deltaTable =
+        "\1\2\0\0\0\0\0\0\0\0\0\
+        \\4\2\1\1\1\1\5\1\4\1\1\
+        \\1\0\2\2\3\2\2\2\2\0\0\
+        \\5\0\3\3\3\2\3\3\3\0\0\
+        \\1\2\4\4\4\4\4\4\4\4\4\
+        \\6\2\5\5\5\5\5\1\6\5\5\
+        \\5\2\6\6\6\6\6\6\6\6\6"
+    lambdaTable =
+        "\0\1\2\2\2\2\2\2\2\2\2\
+        \\2\1\8\8\8\8\9\10\2\8\8\
+        \\3\2\4\5\6\7\5\5\5\2\2\
+        \\3\2\11\5\6\7\5\5\5\2\2\
+        \\3\1\2\2\2\2\2\2\2\2\2\
+        \\2\1\8\12\8\8\9\10\2\8\8\
+        \\3\1\2\2\2\2\2\2\2\2\2"
diff --git a/src/Haal/Models/MQTT/EmqttTwoClientWillRetain.hs b/src/Haal/Models/MQTT/EmqttTwoClientWillRetain.hs
--- a/src/Haal/Models/MQTT/EmqttTwoClientWillRetain.hs
+++ b/src/Haal/Models/MQTT/EmqttTwoClientWillRetain.hs
@@ -5,8 +5,7 @@
     , emqttTwoClientWillRetain
     ) where
 
-import qualified Data.Set as Set
-import Haal.Automaton.MealyAutomaton (MealyAutomaton, mkMealyAutomaton)
+import Haal.Automaton.MealyAutomaton (MealyAutomaton, mkMealyAutomatonTable)
 
 data EmqttTwoClientWillRetainInput
     = In_ConnectC2
@@ -44,332 +43,211 @@
     | Out_Empty__c2_SubAck__Pub_c2_my_topic_bye
     deriving (Show, Eq, Ord, Enum, Bounded)
 
+{- Transitions (state  input -> next state / output):
+    0     In_ConnectC2                -> 1 / Out_C1_ConnectionClosed__c2_ConnAck
+          In_ConnectC1WithWill        -> 2 / Out_C1_ConnAck__c2_ConnectionClosed
+          In_ConnectC1WithWillRetain  -> 3 / Out_C1_ConnAck__c2_ConnectionClosed
+          In_DeleteRetainedC1         -> 0 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_DeleteRetainedC2         -> 0 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_SubscribeC2              -> 0 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_UnSubScribeC2            -> 0 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_DisconnectTCPC1          -> 0 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_DisconnectC1             -> 0 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+    1     In_ConnectC2                -> 0 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_ConnectC1WithWill        -> 6 / Out_C1_ConnAck__Empty
+          In_ConnectC1WithWillRetain  -> 4 / Out_C1_ConnAck__Empty
+          In_DeleteRetainedC1         -> 1 / Out_C1_ConnectionClosed__Empty
+          In_DeleteRetainedC2         -> 1 / Out_C1_ConnectionClosed__c2_PubAck
+          In_SubscribeC2              -> 7 / Out_C1_ConnectionClosed__c2_SubAck
+          In_UnSubScribeC2            -> 1 / Out_C1_ConnectionClosed__c2_UnSubAck
+          In_DisconnectTCPC1          -> 1 / Out_C1_ConnectionClosed__Empty
+          In_DisconnectC1             -> 1 / Out_C1_ConnectionClosed__Empty
+    2     In_ConnectC2                -> 6 / Out_Empty__c2_ConnAck
+          In_ConnectC1WithWill        -> 0 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_ConnectC1WithWillRetain  -> 0 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_DeleteRetainedC1         -> 2 / Out_C1_PubAck__c2_ConnectionClosed
+          In_DeleteRetainedC2         -> 2 / Out_Empty__c2_ConnectionClosed
+          In_SubscribeC2              -> 2 / Out_Empty__c2_ConnectionClosed
+          In_UnSubScribeC2            -> 2 / Out_Empty__c2_ConnectionClosed
+          In_DisconnectTCPC1          -> 0 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_DisconnectC1             -> 0 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+    3     In_ConnectC2                -> 4 / Out_Empty__c2_ConnAck
+          In_ConnectC1WithWill        -> 5 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_ConnectC1WithWillRetain  -> 5 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_DeleteRetainedC1         -> 3 / Out_C1_PubAck__c2_ConnectionClosed
+          In_DeleteRetainedC2         -> 3 / Out_Empty__c2_ConnectionClosed
+          In_SubscribeC2              -> 3 / Out_Empty__c2_ConnectionClosed
+          In_UnSubScribeC2            -> 3 / Out_Empty__c2_ConnectionClosed
+          In_DisconnectTCPC1          -> 5 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_DisconnectC1             -> 0 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+    4     In_ConnectC2                -> 3 / Out_Empty__c2_ConnectionClosed
+          In_ConnectC1WithWill        -> 8 / Out_C1_ConnectionClosed__Empty
+          In_ConnectC1WithWillRetain  -> 8 / Out_C1_ConnectionClosed__Empty
+          In_DeleteRetainedC1         -> 4 / Out_C1_PubAck__Empty
+          In_DeleteRetainedC2         -> 4 / Out_Empty__c2_PubAck
+          In_SubscribeC2              -> 9 / Out_Empty__c2_SubAck
+          In_UnSubScribeC2            -> 4 / Out_Empty__c2_UnSubAck
+          In_DisconnectTCPC1          -> 8 / Out_C1_ConnectionClosed__Empty
+          In_DisconnectC1             -> 1 / Out_C1_ConnectionClosed__Empty
+    5     In_ConnectC2                -> 8 / Out_C1_ConnectionClosed__c2_ConnAck
+          In_ConnectC1WithWill        -> 14 / Out_C1_ConnAck__c2_ConnectionClosed
+          In_ConnectC1WithWillRetain  -> 15 / Out_C1_ConnAck__c2_ConnectionClosed
+          In_DeleteRetainedC1         -> 5 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_DeleteRetainedC2         -> 5 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_SubscribeC2              -> 5 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_UnSubScribeC2            -> 5 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_DisconnectTCPC1          -> 5 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_DisconnectC1             -> 5 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+    6     In_ConnectC2                -> 2 / Out_Empty__c2_ConnectionClosed
+          In_ConnectC1WithWill        -> 1 / Out_C1_ConnectionClosed__Empty
+          In_ConnectC1WithWillRetain  -> 1 / Out_C1_ConnectionClosed__Empty
+          In_DeleteRetainedC1         -> 6 / Out_C1_PubAck__Empty
+          In_DeleteRetainedC2         -> 6 / Out_Empty__c2_PubAck
+          In_SubscribeC2              -> 13 / Out_Empty__c2_SubAck
+          In_UnSubScribeC2            -> 6 / Out_Empty__c2_UnSubAck
+          In_DisconnectTCPC1          -> 1 / Out_C1_ConnectionClosed__Empty
+          In_DisconnectC1             -> 1 / Out_C1_ConnectionClosed__Empty
+    7     In_ConnectC2                -> 0 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_ConnectC1WithWill        -> 13 / Out_C1_ConnAck__Empty
+          In_ConnectC1WithWillRetain  -> 9 / Out_C1_ConnAck__Empty
+          In_DeleteRetainedC1         -> 7 / Out_C1_ConnectionClosed__Empty
+          In_DeleteRetainedC2         -> 7 / Out_C1_ConnectionClosed__Pub_c2_my_topic____c2_PubAck
+          In_SubscribeC2              -> 7 / Out_C1_ConnectionClosed__c2_SubAck
+          In_UnSubScribeC2            -> 1 / Out_C1_ConnectionClosed__c2_UnSubAck
+          In_DisconnectTCPC1          -> 7 / Out_C1_ConnectionClosed__Empty
+          In_DisconnectC1             -> 7 / Out_C1_ConnectionClosed__Empty
+    8     In_ConnectC2                -> 5 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_ConnectC1WithWill        -> 10 / Out_C1_ConnAck__Empty
+          In_ConnectC1WithWillRetain  -> 11 / Out_C1_ConnAck__Empty
+          In_DeleteRetainedC1         -> 8 / Out_C1_ConnectionClosed__Empty
+          In_DeleteRetainedC2         -> 1 / Out_C1_ConnectionClosed__c2_PubAck
+          In_SubscribeC2              -> 12 / Out_C1_ConnectionClosed__c2_SubAck__Pub_c2_my_topic_bye
+          In_UnSubScribeC2            -> 8 / Out_C1_ConnectionClosed__c2_UnSubAck
+          In_DisconnectTCPC1          -> 8 / Out_C1_ConnectionClosed__Empty
+          In_DisconnectC1             -> 8 / Out_C1_ConnectionClosed__Empty
+    9     In_ConnectC2                -> 3 / Out_Empty__c2_ConnectionClosed
+          In_ConnectC1WithWill        -> 12 / Out_C1_ConnectionClosed__Pub_c2_my_topic_bye
+          In_ConnectC1WithWillRetain  -> 12 / Out_C1_ConnectionClosed__Pub_c2_my_topic_bye
+          In_DeleteRetainedC1         -> 9 / Out_C1_PubAck__Pub_c2_my_topic
+          In_DeleteRetainedC2         -> 9 / Out_Empty__Pub_c2_my_topic____c2_PubAck
+          In_SubscribeC2              -> 9 / Out_Empty__c2_SubAck
+          In_UnSubScribeC2            -> 4 / Out_Empty__c2_UnSubAck
+          In_DisconnectTCPC1          -> 12 / Out_C1_ConnectionClosed__Pub_c2_my_topic_bye
+          In_DisconnectC1             -> 7 / Out_C1_ConnectionClosed__Empty
+    10    In_ConnectC2                -> 14 / Out_Empty__c2_ConnectionClosed
+          In_ConnectC1WithWill        -> 8 / Out_C1_ConnectionClosed__Empty
+          In_ConnectC1WithWillRetain  -> 8 / Out_C1_ConnectionClosed__Empty
+          In_DeleteRetainedC1         -> 6 / Out_C1_PubAck__Empty
+          In_DeleteRetainedC2         -> 6 / Out_Empty__c2_PubAck
+          In_SubscribeC2              -> 17 / Out_Empty__c2_SubAck__Pub_c2_my_topic_bye
+          In_UnSubScribeC2            -> 10 / Out_Empty__c2_UnSubAck
+          In_DisconnectTCPC1          -> 8 / Out_C1_ConnectionClosed__Empty
+          In_DisconnectC1             -> 8 / Out_C1_ConnectionClosed__Empty
+    11    In_ConnectC2                -> 15 / Out_Empty__c2_ConnectionClosed
+          In_ConnectC1WithWill        -> 8 / Out_C1_ConnectionClosed__Empty
+          In_ConnectC1WithWillRetain  -> 8 / Out_C1_ConnectionClosed__Empty
+          In_DeleteRetainedC1         -> 4 / Out_C1_PubAck__Empty
+          In_DeleteRetainedC2         -> 4 / Out_Empty__c2_PubAck
+          In_SubscribeC2              -> 16 / Out_Empty__c2_SubAck__Pub_c2_my_topic_bye
+          In_UnSubScribeC2            -> 11 / Out_Empty__c2_UnSubAck
+          In_DisconnectTCPC1          -> 8 / Out_C1_ConnectionClosed__Empty
+          In_DisconnectC1             -> 8 / Out_C1_ConnectionClosed__Empty
+    12    In_ConnectC2                -> 5 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_ConnectC1WithWill        -> 17 / Out_C1_ConnAck__Empty
+          In_ConnectC1WithWillRetain  -> 16 / Out_C1_ConnAck__Empty
+          In_DeleteRetainedC1         -> 12 / Out_C1_ConnectionClosed__Empty
+          In_DeleteRetainedC2         -> 7 / Out_C1_ConnectionClosed__Pub_c2_my_topic____c2_PubAck
+          In_SubscribeC2              -> 12 / Out_C1_ConnectionClosed__c2_SubAck
+          In_UnSubScribeC2            -> 8 / Out_C1_ConnectionClosed__c2_UnSubAck
+          In_DisconnectTCPC1          -> 12 / Out_C1_ConnectionClosed__Empty
+          In_DisconnectC1             -> 12 / Out_C1_ConnectionClosed__Empty
+    13    In_ConnectC2                -> 2 / Out_Empty__c2_ConnectionClosed
+          In_ConnectC1WithWill        -> 7 / Out_C1_ConnectionClosed__Pub_c2_my_topic_bye
+          In_ConnectC1WithWillRetain  -> 7 / Out_C1_ConnectionClosed__Pub_c2_my_topic_bye
+          In_DeleteRetainedC1         -> 13 / Out_C1_PubAck__Pub_c2_my_topic
+          In_DeleteRetainedC2         -> 13 / Out_Empty__Pub_c2_my_topic____c2_PubAck
+          In_SubscribeC2              -> 13 / Out_Empty__c2_SubAck
+          In_UnSubScribeC2            -> 6 / Out_Empty__c2_UnSubAck
+          In_DisconnectTCPC1          -> 7 / Out_C1_ConnectionClosed__Pub_c2_my_topic_bye
+          In_DisconnectC1             -> 7 / Out_C1_ConnectionClosed__Empty
+    14    In_ConnectC2                -> 10 / Out_Empty__c2_ConnAck
+          In_ConnectC1WithWill        -> 5 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_ConnectC1WithWillRetain  -> 5 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_DeleteRetainedC1         -> 2 / Out_C1_PubAck__c2_ConnectionClosed
+          In_DeleteRetainedC2         -> 14 / Out_Empty__c2_ConnectionClosed
+          In_SubscribeC2              -> 14 / Out_Empty__c2_ConnectionClosed
+          In_UnSubScribeC2            -> 14 / Out_Empty__c2_ConnectionClosed
+          In_DisconnectTCPC1          -> 5 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_DisconnectC1             -> 5 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+    15    In_ConnectC2                -> 11 / Out_Empty__c2_ConnAck
+          In_ConnectC1WithWill        -> 5 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_ConnectC1WithWillRetain  -> 5 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_DeleteRetainedC1         -> 3 / Out_C1_PubAck__c2_ConnectionClosed
+          In_DeleteRetainedC2         -> 15 / Out_Empty__c2_ConnectionClosed
+          In_SubscribeC2              -> 15 / Out_Empty__c2_ConnectionClosed
+          In_UnSubScribeC2            -> 15 / Out_Empty__c2_ConnectionClosed
+          In_DisconnectTCPC1          -> 5 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_DisconnectC1             -> 5 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+    16    In_ConnectC2                -> 15 / Out_Empty__c2_ConnectionClosed
+          In_ConnectC1WithWill        -> 12 / Out_C1_ConnectionClosed__Pub_c2_my_topic_bye
+          In_ConnectC1WithWillRetain  -> 12 / Out_C1_ConnectionClosed__Pub_c2_my_topic_bye
+          In_DeleteRetainedC1         -> 9 / Out_C1_PubAck__Pub_c2_my_topic
+          In_DeleteRetainedC2         -> 9 / Out_Empty__Pub_c2_my_topic____c2_PubAck
+          In_SubscribeC2              -> 16 / Out_Empty__c2_SubAck
+          In_UnSubScribeC2            -> 11 / Out_Empty__c2_UnSubAck
+          In_DisconnectTCPC1          -> 12 / Out_C1_ConnectionClosed__Pub_c2_my_topic_bye
+          In_DisconnectC1             -> 12 / Out_C1_ConnectionClosed__Empty
+    17    In_ConnectC2                -> 14 / Out_Empty__c2_ConnectionClosed
+          In_ConnectC1WithWill        -> 12 / Out_C1_ConnectionClosed__Pub_c2_my_topic_bye
+          In_ConnectC1WithWillRetain  -> 12 / Out_C1_ConnectionClosed__Pub_c2_my_topic_bye
+          In_DeleteRetainedC1         -> 13 / Out_C1_PubAck__Pub_c2_my_topic
+          In_DeleteRetainedC2         -> 13 / Out_Empty__Pub_c2_my_topic____c2_PubAck
+          In_SubscribeC2              -> 17 / Out_Empty__c2_SubAck
+          In_UnSubScribeC2            -> 10 / Out_Empty__c2_UnSubAck
+          In_DisconnectTCPC1          -> 12 / Out_C1_ConnectionClosed__Pub_c2_my_topic_bye
+          In_DisconnectC1             -> 12 / Out_C1_ConnectionClosed__Empty
+-}
 emqttTwoClientWillRetain :: MealyAutomaton Int EmqttTwoClientWillRetainInput EmqttTwoClientWillRetainOutput
-emqttTwoClientWillRetain = mkMealyAutomaton delta lambda (Set.fromList [0..17]) 0
+emqttTwoClientWillRetain =
+    case mkMealyAutomatonTable 18 0 deltaTable lambdaTable of
+        Right m -> m
+        Left err -> error ("haal-gen: invalid transition table: " ++ err)
   where
-    delta 0 In_ConnectC2 = 1
-    delta 0 In_ConnectC1WithWill = 2
-    delta 0 In_ConnectC1WithWillRetain = 3
-    delta 0 In_DeleteRetainedC1 = 0
-    delta 0 In_DeleteRetainedC2 = 0
-    delta 0 In_SubscribeC2 = 0
-    delta 0 In_UnSubScribeC2 = 0
-    delta 0 In_DisconnectTCPC1 = 0
-    delta 0 In_DisconnectC1 = 0
-    delta 3 In_ConnectC2 = 4
-    delta 3 In_ConnectC1WithWill = 5
-    delta 3 In_ConnectC1WithWillRetain = 5
-    delta 3 In_DeleteRetainedC1 = 3
-    delta 3 In_DeleteRetainedC2 = 3
-    delta 3 In_SubscribeC2 = 3
-    delta 3 In_UnSubScribeC2 = 3
-    delta 3 In_DisconnectTCPC1 = 5
-    delta 3 In_DisconnectC1 = 0
-    delta 1 In_ConnectC2 = 0
-    delta 1 In_ConnectC1WithWill = 6
-    delta 1 In_ConnectC1WithWillRetain = 4
-    delta 1 In_DeleteRetainedC1 = 1
-    delta 1 In_DeleteRetainedC2 = 1
-    delta 1 In_SubscribeC2 = 7
-    delta 1 In_UnSubScribeC2 = 1
-    delta 1 In_DisconnectTCPC1 = 1
-    delta 1 In_DisconnectC1 = 1
-    delta 4 In_ConnectC2 = 3
-    delta 4 In_ConnectC1WithWill = 8
-    delta 4 In_ConnectC1WithWillRetain = 8
-    delta 4 In_DeleteRetainedC1 = 4
-    delta 4 In_DeleteRetainedC2 = 4
-    delta 4 In_SubscribeC2 = 9
-    delta 4 In_UnSubScribeC2 = 4
-    delta 4 In_DisconnectTCPC1 = 8
-    delta 4 In_DisconnectC1 = 1
-    delta 8 In_ConnectC2 = 5
-    delta 8 In_ConnectC1WithWill = 10
-    delta 8 In_ConnectC1WithWillRetain = 11
-    delta 8 In_DeleteRetainedC1 = 8
-    delta 8 In_DeleteRetainedC2 = 1
-    delta 8 In_SubscribeC2 = 12
-    delta 8 In_UnSubScribeC2 = 8
-    delta 8 In_DisconnectTCPC1 = 8
-    delta 8 In_DisconnectC1 = 8
-    delta 7 In_ConnectC2 = 0
-    delta 7 In_ConnectC1WithWill = 13
-    delta 7 In_ConnectC1WithWillRetain = 9
-    delta 7 In_DeleteRetainedC1 = 7
-    delta 7 In_DeleteRetainedC2 = 7
-    delta 7 In_SubscribeC2 = 7
-    delta 7 In_UnSubScribeC2 = 1
-    delta 7 In_DisconnectTCPC1 = 7
-    delta 7 In_DisconnectC1 = 7
-    delta 9 In_ConnectC2 = 3
-    delta 9 In_ConnectC1WithWill = 12
-    delta 9 In_ConnectC1WithWillRetain = 12
-    delta 9 In_DeleteRetainedC1 = 9
-    delta 9 In_DeleteRetainedC2 = 9
-    delta 9 In_SubscribeC2 = 9
-    delta 9 In_UnSubScribeC2 = 4
-    delta 9 In_DisconnectTCPC1 = 12
-    delta 9 In_DisconnectC1 = 7
-    delta 6 In_ConnectC2 = 2
-    delta 6 In_ConnectC1WithWill = 1
-    delta 6 In_ConnectC1WithWillRetain = 1
-    delta 6 In_DeleteRetainedC1 = 6
-    delta 6 In_DeleteRetainedC2 = 6
-    delta 6 In_SubscribeC2 = 13
-    delta 6 In_UnSubScribeC2 = 6
-    delta 6 In_DisconnectTCPC1 = 1
-    delta 6 In_DisconnectC1 = 1
-    delta 5 In_ConnectC2 = 8
-    delta 5 In_ConnectC1WithWill = 14
-    delta 5 In_ConnectC1WithWillRetain = 15
-    delta 5 In_DeleteRetainedC1 = 5
-    delta 5 In_DeleteRetainedC2 = 5
-    delta 5 In_SubscribeC2 = 5
-    delta 5 In_UnSubScribeC2 = 5
-    delta 5 In_DisconnectTCPC1 = 5
-    delta 5 In_DisconnectC1 = 5
-    delta 11 In_ConnectC2 = 15
-    delta 11 In_ConnectC1WithWill = 8
-    delta 11 In_ConnectC1WithWillRetain = 8
-    delta 11 In_DeleteRetainedC1 = 4
-    delta 11 In_DeleteRetainedC2 = 4
-    delta 11 In_SubscribeC2 = 16
-    delta 11 In_UnSubScribeC2 = 11
-    delta 11 In_DisconnectTCPC1 = 8
-    delta 11 In_DisconnectC1 = 8
-    delta 2 In_ConnectC2 = 6
-    delta 2 In_ConnectC1WithWill = 0
-    delta 2 In_ConnectC1WithWillRetain = 0
-    delta 2 In_DeleteRetainedC1 = 2
-    delta 2 In_DeleteRetainedC2 = 2
-    delta 2 In_SubscribeC2 = 2
-    delta 2 In_UnSubScribeC2 = 2
-    delta 2 In_DisconnectTCPC1 = 0
-    delta 2 In_DisconnectC1 = 0
-    delta 12 In_ConnectC2 = 5
-    delta 12 In_ConnectC1WithWill = 17
-    delta 12 In_ConnectC1WithWillRetain = 16
-    delta 12 In_DeleteRetainedC1 = 12
-    delta 12 In_DeleteRetainedC2 = 7
-    delta 12 In_SubscribeC2 = 12
-    delta 12 In_UnSubScribeC2 = 8
-    delta 12 In_DisconnectTCPC1 = 12
-    delta 12 In_DisconnectC1 = 12
-    delta 17 In_ConnectC2 = 14
-    delta 17 In_ConnectC1WithWill = 12
-    delta 17 In_ConnectC1WithWillRetain = 12
-    delta 17 In_DeleteRetainedC1 = 13
-    delta 17 In_DeleteRetainedC2 = 13
-    delta 17 In_SubscribeC2 = 17
-    delta 17 In_UnSubScribeC2 = 10
-    delta 17 In_DisconnectTCPC1 = 12
-    delta 17 In_DisconnectC1 = 12
-    delta 14 In_ConnectC2 = 10
-    delta 14 In_ConnectC1WithWill = 5
-    delta 14 In_ConnectC1WithWillRetain = 5
-    delta 14 In_DeleteRetainedC1 = 2
-    delta 14 In_DeleteRetainedC2 = 14
-    delta 14 In_SubscribeC2 = 14
-    delta 14 In_UnSubScribeC2 = 14
-    delta 14 In_DisconnectTCPC1 = 5
-    delta 14 In_DisconnectC1 = 5
-    delta 10 In_ConnectC2 = 14
-    delta 10 In_ConnectC1WithWill = 8
-    delta 10 In_ConnectC1WithWillRetain = 8
-    delta 10 In_DeleteRetainedC1 = 6
-    delta 10 In_DeleteRetainedC2 = 6
-    delta 10 In_SubscribeC2 = 17
-    delta 10 In_UnSubScribeC2 = 10
-    delta 10 In_DisconnectTCPC1 = 8
-    delta 10 In_DisconnectC1 = 8
-    delta 15 In_ConnectC2 = 11
-    delta 15 In_ConnectC1WithWill = 5
-    delta 15 In_ConnectC1WithWillRetain = 5
-    delta 15 In_DeleteRetainedC1 = 3
-    delta 15 In_DeleteRetainedC2 = 15
-    delta 15 In_SubscribeC2 = 15
-    delta 15 In_UnSubScribeC2 = 15
-    delta 15 In_DisconnectTCPC1 = 5
-    delta 15 In_DisconnectC1 = 5
-    delta 13 In_ConnectC2 = 2
-    delta 13 In_ConnectC1WithWill = 7
-    delta 13 In_ConnectC1WithWillRetain = 7
-    delta 13 In_DeleteRetainedC1 = 13
-    delta 13 In_DeleteRetainedC2 = 13
-    delta 13 In_SubscribeC2 = 13
-    delta 13 In_UnSubScribeC2 = 6
-    delta 13 In_DisconnectTCPC1 = 7
-    delta 13 In_DisconnectC1 = 7
-    delta 16 In_ConnectC2 = 15
-    delta 16 In_ConnectC1WithWill = 12
-    delta 16 In_ConnectC1WithWillRetain = 12
-    delta 16 In_DeleteRetainedC1 = 9
-    delta 16 In_DeleteRetainedC2 = 9
-    delta 16 In_SubscribeC2 = 16
-    delta 16 In_UnSubScribeC2 = 11
-    delta 16 In_DisconnectTCPC1 = 12
-    delta 16 In_DisconnectC1 = 12
-    delta _ _ = error "haal-gen: undefined transition"
-    lambda 0 In_ConnectC2 = Out_C1_ConnectionClosed__c2_ConnAck
-    lambda 0 In_ConnectC1WithWill = Out_C1_ConnAck__c2_ConnectionClosed
-    lambda 0 In_ConnectC1WithWillRetain = Out_C1_ConnAck__c2_ConnectionClosed
-    lambda 0 In_DeleteRetainedC1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 0 In_DeleteRetainedC2 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 0 In_SubscribeC2 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 0 In_UnSubScribeC2 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 0 In_DisconnectTCPC1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 0 In_DisconnectC1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 3 In_ConnectC2 = Out_Empty__c2_ConnAck
-    lambda 3 In_ConnectC1WithWill = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 3 In_ConnectC1WithWillRetain = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 3 In_DeleteRetainedC1 = Out_C1_PubAck__c2_ConnectionClosed
-    lambda 3 In_DeleteRetainedC2 = Out_Empty__c2_ConnectionClosed
-    lambda 3 In_SubscribeC2 = Out_Empty__c2_ConnectionClosed
-    lambda 3 In_UnSubScribeC2 = Out_Empty__c2_ConnectionClosed
-    lambda 3 In_DisconnectTCPC1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 3 In_DisconnectC1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 1 In_ConnectC2 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 1 In_ConnectC1WithWill = Out_C1_ConnAck__Empty
-    lambda 1 In_ConnectC1WithWillRetain = Out_C1_ConnAck__Empty
-    lambda 1 In_DeleteRetainedC1 = Out_C1_ConnectionClosed__Empty
-    lambda 1 In_DeleteRetainedC2 = Out_C1_ConnectionClosed__c2_PubAck
-    lambda 1 In_SubscribeC2 = Out_C1_ConnectionClosed__c2_SubAck
-    lambda 1 In_UnSubScribeC2 = Out_C1_ConnectionClosed__c2_UnSubAck
-    lambda 1 In_DisconnectTCPC1 = Out_C1_ConnectionClosed__Empty
-    lambda 1 In_DisconnectC1 = Out_C1_ConnectionClosed__Empty
-    lambda 4 In_ConnectC2 = Out_Empty__c2_ConnectionClosed
-    lambda 4 In_ConnectC1WithWill = Out_C1_ConnectionClosed__Empty
-    lambda 4 In_ConnectC1WithWillRetain = Out_C1_ConnectionClosed__Empty
-    lambda 4 In_DeleteRetainedC1 = Out_C1_PubAck__Empty
-    lambda 4 In_DeleteRetainedC2 = Out_Empty__c2_PubAck
-    lambda 4 In_SubscribeC2 = Out_Empty__c2_SubAck
-    lambda 4 In_UnSubScribeC2 = Out_Empty__c2_UnSubAck
-    lambda 4 In_DisconnectTCPC1 = Out_C1_ConnectionClosed__Empty
-    lambda 4 In_DisconnectC1 = Out_C1_ConnectionClosed__Empty
-    lambda 8 In_ConnectC2 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 8 In_ConnectC1WithWill = Out_C1_ConnAck__Empty
-    lambda 8 In_ConnectC1WithWillRetain = Out_C1_ConnAck__Empty
-    lambda 8 In_DeleteRetainedC1 = Out_C1_ConnectionClosed__Empty
-    lambda 8 In_DeleteRetainedC2 = Out_C1_ConnectionClosed__c2_PubAck
-    lambda 8 In_SubscribeC2 = Out_C1_ConnectionClosed__c2_SubAck__Pub_c2_my_topic_bye
-    lambda 8 In_UnSubScribeC2 = Out_C1_ConnectionClosed__c2_UnSubAck
-    lambda 8 In_DisconnectTCPC1 = Out_C1_ConnectionClosed__Empty
-    lambda 8 In_DisconnectC1 = Out_C1_ConnectionClosed__Empty
-    lambda 7 In_ConnectC2 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 7 In_ConnectC1WithWill = Out_C1_ConnAck__Empty
-    lambda 7 In_ConnectC1WithWillRetain = Out_C1_ConnAck__Empty
-    lambda 7 In_DeleteRetainedC1 = Out_C1_ConnectionClosed__Empty
-    lambda 7 In_DeleteRetainedC2 = Out_C1_ConnectionClosed__Pub_c2_my_topic____c2_PubAck
-    lambda 7 In_SubscribeC2 = Out_C1_ConnectionClosed__c2_SubAck
-    lambda 7 In_UnSubScribeC2 = Out_C1_ConnectionClosed__c2_UnSubAck
-    lambda 7 In_DisconnectTCPC1 = Out_C1_ConnectionClosed__Empty
-    lambda 7 In_DisconnectC1 = Out_C1_ConnectionClosed__Empty
-    lambda 9 In_ConnectC2 = Out_Empty__c2_ConnectionClosed
-    lambda 9 In_ConnectC1WithWill = Out_C1_ConnectionClosed__Pub_c2_my_topic_bye
-    lambda 9 In_ConnectC1WithWillRetain = Out_C1_ConnectionClosed__Pub_c2_my_topic_bye
-    lambda 9 In_DeleteRetainedC1 = Out_C1_PubAck__Pub_c2_my_topic
-    lambda 9 In_DeleteRetainedC2 = Out_Empty__Pub_c2_my_topic____c2_PubAck
-    lambda 9 In_SubscribeC2 = Out_Empty__c2_SubAck
-    lambda 9 In_UnSubScribeC2 = Out_Empty__c2_UnSubAck
-    lambda 9 In_DisconnectTCPC1 = Out_C1_ConnectionClosed__Pub_c2_my_topic_bye
-    lambda 9 In_DisconnectC1 = Out_C1_ConnectionClosed__Empty
-    lambda 6 In_ConnectC2 = Out_Empty__c2_ConnectionClosed
-    lambda 6 In_ConnectC1WithWill = Out_C1_ConnectionClosed__Empty
-    lambda 6 In_ConnectC1WithWillRetain = Out_C1_ConnectionClosed__Empty
-    lambda 6 In_DeleteRetainedC1 = Out_C1_PubAck__Empty
-    lambda 6 In_DeleteRetainedC2 = Out_Empty__c2_PubAck
-    lambda 6 In_SubscribeC2 = Out_Empty__c2_SubAck
-    lambda 6 In_UnSubScribeC2 = Out_Empty__c2_UnSubAck
-    lambda 6 In_DisconnectTCPC1 = Out_C1_ConnectionClosed__Empty
-    lambda 6 In_DisconnectC1 = Out_C1_ConnectionClosed__Empty
-    lambda 5 In_ConnectC2 = Out_C1_ConnectionClosed__c2_ConnAck
-    lambda 5 In_ConnectC1WithWill = Out_C1_ConnAck__c2_ConnectionClosed
-    lambda 5 In_ConnectC1WithWillRetain = Out_C1_ConnAck__c2_ConnectionClosed
-    lambda 5 In_DeleteRetainedC1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 5 In_DeleteRetainedC2 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 5 In_SubscribeC2 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 5 In_UnSubScribeC2 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 5 In_DisconnectTCPC1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 5 In_DisconnectC1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 11 In_ConnectC2 = Out_Empty__c2_ConnectionClosed
-    lambda 11 In_ConnectC1WithWill = Out_C1_ConnectionClosed__Empty
-    lambda 11 In_ConnectC1WithWillRetain = Out_C1_ConnectionClosed__Empty
-    lambda 11 In_DeleteRetainedC1 = Out_C1_PubAck__Empty
-    lambda 11 In_DeleteRetainedC2 = Out_Empty__c2_PubAck
-    lambda 11 In_SubscribeC2 = Out_Empty__c2_SubAck__Pub_c2_my_topic_bye
-    lambda 11 In_UnSubScribeC2 = Out_Empty__c2_UnSubAck
-    lambda 11 In_DisconnectTCPC1 = Out_C1_ConnectionClosed__Empty
-    lambda 11 In_DisconnectC1 = Out_C1_ConnectionClosed__Empty
-    lambda 2 In_ConnectC2 = Out_Empty__c2_ConnAck
-    lambda 2 In_ConnectC1WithWill = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 2 In_ConnectC1WithWillRetain = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 2 In_DeleteRetainedC1 = Out_C1_PubAck__c2_ConnectionClosed
-    lambda 2 In_DeleteRetainedC2 = Out_Empty__c2_ConnectionClosed
-    lambda 2 In_SubscribeC2 = Out_Empty__c2_ConnectionClosed
-    lambda 2 In_UnSubScribeC2 = Out_Empty__c2_ConnectionClosed
-    lambda 2 In_DisconnectTCPC1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 2 In_DisconnectC1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 12 In_ConnectC2 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 12 In_ConnectC1WithWill = Out_C1_ConnAck__Empty
-    lambda 12 In_ConnectC1WithWillRetain = Out_C1_ConnAck__Empty
-    lambda 12 In_DeleteRetainedC1 = Out_C1_ConnectionClosed__Empty
-    lambda 12 In_DeleteRetainedC2 = Out_C1_ConnectionClosed__Pub_c2_my_topic____c2_PubAck
-    lambda 12 In_SubscribeC2 = Out_C1_ConnectionClosed__c2_SubAck
-    lambda 12 In_UnSubScribeC2 = Out_C1_ConnectionClosed__c2_UnSubAck
-    lambda 12 In_DisconnectTCPC1 = Out_C1_ConnectionClosed__Empty
-    lambda 12 In_DisconnectC1 = Out_C1_ConnectionClosed__Empty
-    lambda 17 In_ConnectC2 = Out_Empty__c2_ConnectionClosed
-    lambda 17 In_ConnectC1WithWill = Out_C1_ConnectionClosed__Pub_c2_my_topic_bye
-    lambda 17 In_ConnectC1WithWillRetain = Out_C1_ConnectionClosed__Pub_c2_my_topic_bye
-    lambda 17 In_DeleteRetainedC1 = Out_C1_PubAck__Pub_c2_my_topic
-    lambda 17 In_DeleteRetainedC2 = Out_Empty__Pub_c2_my_topic____c2_PubAck
-    lambda 17 In_SubscribeC2 = Out_Empty__c2_SubAck
-    lambda 17 In_UnSubScribeC2 = Out_Empty__c2_UnSubAck
-    lambda 17 In_DisconnectTCPC1 = Out_C1_ConnectionClosed__Pub_c2_my_topic_bye
-    lambda 17 In_DisconnectC1 = Out_C1_ConnectionClosed__Empty
-    lambda 14 In_ConnectC2 = Out_Empty__c2_ConnAck
-    lambda 14 In_ConnectC1WithWill = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 14 In_ConnectC1WithWillRetain = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 14 In_DeleteRetainedC1 = Out_C1_PubAck__c2_ConnectionClosed
-    lambda 14 In_DeleteRetainedC2 = Out_Empty__c2_ConnectionClosed
-    lambda 14 In_SubscribeC2 = Out_Empty__c2_ConnectionClosed
-    lambda 14 In_UnSubScribeC2 = Out_Empty__c2_ConnectionClosed
-    lambda 14 In_DisconnectTCPC1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 14 In_DisconnectC1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 10 In_ConnectC2 = Out_Empty__c2_ConnectionClosed
-    lambda 10 In_ConnectC1WithWill = Out_C1_ConnectionClosed__Empty
-    lambda 10 In_ConnectC1WithWillRetain = Out_C1_ConnectionClosed__Empty
-    lambda 10 In_DeleteRetainedC1 = Out_C1_PubAck__Empty
-    lambda 10 In_DeleteRetainedC2 = Out_Empty__c2_PubAck
-    lambda 10 In_SubscribeC2 = Out_Empty__c2_SubAck__Pub_c2_my_topic_bye
-    lambda 10 In_UnSubScribeC2 = Out_Empty__c2_UnSubAck
-    lambda 10 In_DisconnectTCPC1 = Out_C1_ConnectionClosed__Empty
-    lambda 10 In_DisconnectC1 = Out_C1_ConnectionClosed__Empty
-    lambda 15 In_ConnectC2 = Out_Empty__c2_ConnAck
-    lambda 15 In_ConnectC1WithWill = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 15 In_ConnectC1WithWillRetain = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 15 In_DeleteRetainedC1 = Out_C1_PubAck__c2_ConnectionClosed
-    lambda 15 In_DeleteRetainedC2 = Out_Empty__c2_ConnectionClosed
-    lambda 15 In_SubscribeC2 = Out_Empty__c2_ConnectionClosed
-    lambda 15 In_UnSubScribeC2 = Out_Empty__c2_ConnectionClosed
-    lambda 15 In_DisconnectTCPC1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 15 In_DisconnectC1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 13 In_ConnectC2 = Out_Empty__c2_ConnectionClosed
-    lambda 13 In_ConnectC1WithWill = Out_C1_ConnectionClosed__Pub_c2_my_topic_bye
-    lambda 13 In_ConnectC1WithWillRetain = Out_C1_ConnectionClosed__Pub_c2_my_topic_bye
-    lambda 13 In_DeleteRetainedC1 = Out_C1_PubAck__Pub_c2_my_topic
-    lambda 13 In_DeleteRetainedC2 = Out_Empty__Pub_c2_my_topic____c2_PubAck
-    lambda 13 In_SubscribeC2 = Out_Empty__c2_SubAck
-    lambda 13 In_UnSubScribeC2 = Out_Empty__c2_UnSubAck
-    lambda 13 In_DisconnectTCPC1 = Out_C1_ConnectionClosed__Pub_c2_my_topic_bye
-    lambda 13 In_DisconnectC1 = Out_C1_ConnectionClosed__Empty
-    lambda 16 In_ConnectC2 = Out_Empty__c2_ConnectionClosed
-    lambda 16 In_ConnectC1WithWill = Out_C1_ConnectionClosed__Pub_c2_my_topic_bye
-    lambda 16 In_ConnectC1WithWillRetain = Out_C1_ConnectionClosed__Pub_c2_my_topic_bye
-    lambda 16 In_DeleteRetainedC1 = Out_C1_PubAck__Pub_c2_my_topic
-    lambda 16 In_DeleteRetainedC2 = Out_Empty__Pub_c2_my_topic____c2_PubAck
-    lambda 16 In_SubscribeC2 = Out_Empty__c2_SubAck
-    lambda 16 In_UnSubScribeC2 = Out_Empty__c2_UnSubAck
-    lambda 16 In_DisconnectTCPC1 = Out_C1_ConnectionClosed__Pub_c2_my_topic_bye
-    lambda 16 In_DisconnectC1 = Out_C1_ConnectionClosed__Empty
-    lambda _ _ = error "haal-gen: undefined transition"
+    deltaTable =
+        "\1\2\3\0\0\0\0\0\0\
+        \\0\6\4\1\1\7\1\1\1\
+        \\6\0\0\2\2\2\2\0\0\
+        \\4\5\5\3\3\3\3\5\0\
+        \\3\8\8\4\4\9\4\8\1\
+        \\8\14\15\5\5\5\5\5\5\
+        \\2\1\1\6\6\13\6\1\1\
+        \\0\13\9\7\7\7\1\7\7\
+        \\5\10\11\8\1\12\8\8\8\
+        \\3\12\12\9\9\9\4\12\7\
+        \\14\8\8\6\6\17\10\8\8\
+        \\15\8\8\4\4\16\11\8\8\
+        \\5\17\16\12\7\12\8\12\12\
+        \\2\7\7\13\13\13\6\7\7\
+        \\10\5\5\2\14\14\14\5\5\
+        \\11\5\5\3\15\15\15\5\5\
+        \\15\12\12\9\9\16\11\12\12\
+        \\14\12\12\13\13\17\10\12\12"
+    lambdaTable =
+        "\0\1\1\2\2\2\2\2\2\
+        \\2\6\6\7\8\9\10\7\7\
+        \\3\2\2\4\5\5\5\2\2\
+        \\3\2\2\4\5\5\5\2\2\
+        \\5\7\7\11\12\13\14\7\7\
+        \\0\1\1\2\2\2\2\2\2\
+        \\5\7\7\11\12\13\14\7\7\
+        \\2\6\6\7\16\9\10\7\7\
+        \\2\6\6\7\8\15\10\7\7\
+        \\5\17\17\18\19\13\14\17\7\
+        \\5\7\7\11\12\20\14\7\7\
+        \\5\7\7\11\12\20\14\7\7\
+        \\2\6\6\7\16\9\10\7\7\
+        \\5\17\17\18\19\13\14\17\7\
+        \\3\2\2\4\5\5\5\2\2\
+        \\3\2\2\4\5\5\5\2\2\
+        \\5\17\17\18\19\13\14\17\7\
+        \\5\17\17\18\19\13\14\17\7"
diff --git a/src/Haal/Models/MQTT/HbmqttInvalid.hs b/src/Haal/Models/MQTT/HbmqttInvalid.hs
--- a/src/Haal/Models/MQTT/HbmqttInvalid.hs
+++ b/src/Haal/Models/MQTT/HbmqttInvalid.hs
@@ -5,8 +5,7 @@
     , hbmqttInvalid
     ) where
 
-import qualified Data.Set as Set
-import Haal.Automaton.MealyAutomaton (MealyAutomaton, mkMealyAutomaton)
+import Haal.Automaton.MealyAutomaton (MealyAutomaton, mkMealyAutomatonTable)
 
 data HbmqttInvalidInput
     = In_Connect
@@ -31,74 +30,52 @@
     | Out_UnSubAck
     deriving (Show, Eq, Ord, Enum, Bounded)
 
+{- Transitions (state  input -> next state / output):
+    0     In_Connect               -> 1 / Out_ConnAckPacket_false_0
+          In_ConnectNonClean       -> 0 / Out_ConnectionClosed__ConnAckPacket_false_2
+          In_PublishQoS0Dup        -> 0 / Out_ConnectionClosed
+          In_PublishQoSMinus1      -> 0 / Out_ConnectionClosed
+          In_PublishWildCard       -> 0 / Out_ConnectionClosed
+          In_SubscribeWildMatch    -> 0 / Out_ConnectionClosed
+          In_UnSubscribeWildMatch  -> 0 / Out_ConnectionClosed
+          In_Subscribe             -> 0 / Out_ConnectionClosed
+          In_SubscribeMinus1       -> 0 / Out_ConnectionClosed
+          In_UnSubScribe           -> 0 / Out_ConnectionClosed
+          In_Disconnect            -> 0 / Out_ConnectionClosed
+    1     In_Connect               -> 1 / Out_Empty
+          In_ConnectNonClean       -> 1 / Out_Empty
+          In_PublishQoS0Dup        -> 1 / Out_Empty
+          In_PublishQoSMinus1      -> 1 / Out_Empty
+          In_PublishWildCard       -> 2 / Out_Empty
+          In_SubscribeWildMatch    -> 1 / Out_SubAck
+          In_UnSubscribeWildMatch  -> 1 / Out_UnSubAck
+          In_Subscribe             -> 1 / Out_SubAck
+          In_SubscribeMinus1       -> 1 / Out_SubAck
+          In_UnSubScribe           -> 1 / Out_UnSubAck
+          In_Disconnect            -> 0 / Out_ConnectionClosed
+    2     In_Connect               -> 2 / Out_Empty
+          In_ConnectNonClean       -> 2 / Out_Empty
+          In_PublishQoS0Dup        -> 2 / Out_Empty
+          In_PublishQoSMinus1      -> 2 / Out_Empty
+          In_PublishWildCard       -> 2 / Out_Empty
+          In_SubscribeWildMatch    -> 2 / Out_Empty
+          In_UnSubscribeWildMatch  -> 2 / Out_Empty
+          In_Subscribe             -> 2 / Out_Empty
+          In_SubscribeMinus1       -> 2 / Out_Empty
+          In_UnSubScribe           -> 2 / Out_Empty
+          In_Disconnect            -> 2 / Out_Empty
+-}
 hbmqttInvalid :: MealyAutomaton Int HbmqttInvalidInput HbmqttInvalidOutput
-hbmqttInvalid = mkMealyAutomaton delta lambda (Set.fromList [0..2]) 0
+hbmqttInvalid =
+    case mkMealyAutomatonTable 3 0 deltaTable lambdaTable of
+        Right m -> m
+        Left err -> error ("haal-gen: invalid transition table: " ++ err)
   where
-    delta 0 In_Connect = 1
-    delta 0 In_ConnectNonClean = 0
-    delta 0 In_PublishQoS0Dup = 0
-    delta 0 In_PublishQoSMinus1 = 0
-    delta 0 In_PublishWildCard = 0
-    delta 0 In_SubscribeWildMatch = 0
-    delta 0 In_UnSubscribeWildMatch = 0
-    delta 0 In_Subscribe = 0
-    delta 0 In_SubscribeMinus1 = 0
-    delta 0 In_UnSubScribe = 0
-    delta 0 In_Disconnect = 0
-    delta 1 In_Connect = 1
-    delta 1 In_ConnectNonClean = 1
-    delta 1 In_PublishQoS0Dup = 1
-    delta 1 In_PublishQoSMinus1 = 1
-    delta 1 In_PublishWildCard = 2
-    delta 1 In_SubscribeWildMatch = 1
-    delta 1 In_UnSubscribeWildMatch = 1
-    delta 1 In_Subscribe = 1
-    delta 1 In_SubscribeMinus1 = 1
-    delta 1 In_UnSubScribe = 1
-    delta 1 In_Disconnect = 0
-    delta 2 In_Connect = 2
-    delta 2 In_ConnectNonClean = 2
-    delta 2 In_PublishQoS0Dup = 2
-    delta 2 In_PublishQoSMinus1 = 2
-    delta 2 In_PublishWildCard = 2
-    delta 2 In_SubscribeWildMatch = 2
-    delta 2 In_UnSubscribeWildMatch = 2
-    delta 2 In_Subscribe = 2
-    delta 2 In_SubscribeMinus1 = 2
-    delta 2 In_UnSubScribe = 2
-    delta 2 In_Disconnect = 2
-    delta _ _ = error "haal-gen: undefined transition"
-    lambda 0 In_Connect = Out_ConnAckPacket_false_0
-    lambda 0 In_ConnectNonClean = Out_ConnectionClosed__ConnAckPacket_false_2
-    lambda 0 In_PublishQoS0Dup = Out_ConnectionClosed
-    lambda 0 In_PublishQoSMinus1 = Out_ConnectionClosed
-    lambda 0 In_PublishWildCard = Out_ConnectionClosed
-    lambda 0 In_SubscribeWildMatch = Out_ConnectionClosed
-    lambda 0 In_UnSubscribeWildMatch = Out_ConnectionClosed
-    lambda 0 In_Subscribe = Out_ConnectionClosed
-    lambda 0 In_SubscribeMinus1 = Out_ConnectionClosed
-    lambda 0 In_UnSubScribe = Out_ConnectionClosed
-    lambda 0 In_Disconnect = Out_ConnectionClosed
-    lambda 1 In_Connect = Out_Empty
-    lambda 1 In_ConnectNonClean = Out_Empty
-    lambda 1 In_PublishQoS0Dup = Out_Empty
-    lambda 1 In_PublishQoSMinus1 = Out_Empty
-    lambda 1 In_PublishWildCard = Out_Empty
-    lambda 1 In_SubscribeWildMatch = Out_SubAck
-    lambda 1 In_UnSubscribeWildMatch = Out_UnSubAck
-    lambda 1 In_Subscribe = Out_SubAck
-    lambda 1 In_SubscribeMinus1 = Out_SubAck
-    lambda 1 In_UnSubScribe = Out_UnSubAck
-    lambda 1 In_Disconnect = Out_ConnectionClosed
-    lambda 2 In_Connect = Out_Empty
-    lambda 2 In_ConnectNonClean = Out_Empty
-    lambda 2 In_PublishQoS0Dup = Out_Empty
-    lambda 2 In_PublishQoSMinus1 = Out_Empty
-    lambda 2 In_PublishWildCard = Out_Empty
-    lambda 2 In_SubscribeWildMatch = Out_Empty
-    lambda 2 In_UnSubscribeWildMatch = Out_Empty
-    lambda 2 In_Subscribe = Out_Empty
-    lambda 2 In_SubscribeMinus1 = Out_Empty
-    lambda 2 In_UnSubScribe = Out_Empty
-    lambda 2 In_Disconnect = Out_Empty
-    lambda _ _ = error "haal-gen: undefined transition"
+    deltaTable =
+        "\1\0\0\0\0\0\0\0\0\0\0\
+        \\1\1\1\1\2\1\1\1\1\1\0\
+        \\2\2\2\2\2\2\2\2\2\2\2"
+    lambdaTable =
+        "\0\1\2\2\2\2\2\2\2\2\2\
+        \\3\3\3\3\3\4\5\4\4\5\2\
+        \\3\3\3\3\3\3\3\3\3\3\3"
diff --git a/src/Haal/Models/MQTT/HbmqttNonClean.hs b/src/Haal/Models/MQTT/HbmqttNonClean.hs
--- a/src/Haal/Models/MQTT/HbmqttNonClean.hs
+++ b/src/Haal/Models/MQTT/HbmqttNonClean.hs
@@ -5,8 +5,7 @@
     , hbmqttNonClean
     ) where
 
-import qualified Data.Set as Set
-import Haal.Automaton.MealyAutomaton (MealyAutomaton, mkMealyAutomaton)
+import Haal.Automaton.MealyAutomaton (MealyAutomaton, mkMealyAutomatonTable)
 
 data HbmqttNonCleanInput
     = In_ConnectC2
@@ -37,128 +36,93 @@
     | Out_Empty__c2_Pub_my_topic_messageQos1_1___c2_Pub_my_topic_messageQos1_1___c2_ConnAck
     deriving (Show, Eq, Ord, Enum, Bounded)
 
+{- Transitions (state  input -> next state / output):
+    0     In_ConnectC2        -> 1 / Out_C1_ConnectionClosed__c2_ConnAck
+          In_ConnectC1        -> 2 / Out_C1_ConnAck__c2_ConnectionClosed
+          In_PublishQoS1C1    -> 0 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_SubscribeC2QoS1  -> 0 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_UnSubscribeC2    -> 0 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_DisconnectC2     -> 0 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+    1     In_ConnectC2        -> 1 / Out_C1_ConnectionClosed__Empty
+          In_ConnectC1        -> 3 / Out_C1_ConnAck__Empty
+          In_PublishQoS1C1    -> 1 / Out_C1_ConnectionClosed__Empty
+          In_SubscribeC2QoS1  -> 5 / Out_C1_ConnectionClosed__c2_SubAck
+          In_UnSubscribeC2    -> 1 / Out_C1_ConnectionClosed__c2_UnSubAck
+          In_DisconnectC2     -> 0 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+    2     In_ConnectC2        -> 3 / Out_Empty__c2_ConnAck
+          In_ConnectC1        -> 2 / Out_Empty__c2_ConnectionClosed
+          In_PublishQoS1C1    -> 2 / Out_C1_PubAck__c2_ConnectionClosed
+          In_SubscribeC2QoS1  -> 2 / Out_Empty__c2_ConnectionClosed
+          In_UnSubscribeC2    -> 2 / Out_Empty__c2_ConnectionClosed
+          In_DisconnectC2     -> 2 / Out_Empty__c2_ConnectionClosed
+    3     In_ConnectC2        -> 3 / Out_Empty__Empty
+          In_ConnectC1        -> 3 / Out_Empty__Empty
+          In_PublishQoS1C1    -> 3 / Out_C1_PubAck__Empty
+          In_SubscribeC2QoS1  -> 4 / Out_Empty__c2_SubAck
+          In_UnSubscribeC2    -> 3 / Out_Empty__c2_UnSubAck
+          In_DisconnectC2     -> 2 / Out_Empty__c2_ConnectionClosed
+    4     In_ConnectC2        -> 4 / Out_Empty__Empty
+          In_ConnectC1        -> 4 / Out_Empty__Empty
+          In_PublishQoS1C1    -> 4 / Out_C1_PubAck__c2_Pub_my_topic_messageQos1_1
+          In_SubscribeC2QoS1  -> 4 / Out_Empty__c2_SubAck
+          In_UnSubscribeC2    -> 3 / Out_Empty__c2_UnSubAck
+          In_DisconnectC2     -> 6 / Out_Empty__c2_ConnectionClosed
+    5     In_ConnectC2        -> 5 / Out_C1_ConnectionClosed__Empty
+          In_ConnectC1        -> 4 / Out_C1_ConnAck__Empty
+          In_PublishQoS1C1    -> 5 / Out_C1_ConnectionClosed__Empty
+          In_SubscribeC2QoS1  -> 5 / Out_C1_ConnectionClosed__c2_SubAck
+          In_UnSubscribeC2    -> 1 / Out_C1_ConnectionClosed__c2_UnSubAck
+          In_DisconnectC2     -> 9 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+    6     In_ConnectC2        -> 4 / Out_Empty__c2_ConnAck
+          In_ConnectC1        -> 6 / Out_Empty__c2_ConnectionClosed
+          In_PublishQoS1C1    -> 7 / Out_C1_PubAck__c2_ConnectionClosed
+          In_SubscribeC2QoS1  -> 6 / Out_Empty__c2_ConnectionClosed
+          In_UnSubscribeC2    -> 6 / Out_Empty__c2_ConnectionClosed
+          In_DisconnectC2     -> 6 / Out_Empty__c2_ConnectionClosed
+    7     In_ConnectC2        -> 4 / Out_Empty__c2_Pub_my_topic_messageQos1_1___c2_ConnAck
+          In_ConnectC1        -> 7 / Out_Empty__c2_ConnectionClosed
+          In_PublishQoS1C1    -> 8 / Out_C1_PubAck__c2_ConnectionClosed
+          In_SubscribeC2QoS1  -> 7 / Out_Empty__c2_ConnectionClosed
+          In_UnSubscribeC2    -> 7 / Out_Empty__c2_ConnectionClosed
+          In_DisconnectC2     -> 7 / Out_Empty__c2_ConnectionClosed
+    8     In_ConnectC2        -> 4 / Out_Empty__c2_Pub_my_topic_messageQos1_1___c2_Pub_my_topic_messageQos1_1___c2_ConnAck
+          In_ConnectC1        -> 8 / Out_Empty__c2_ConnectionClosed
+          In_PublishQoS1C1    -> 8 / Out_C1_PubAck__c2_ConnectionClosed
+          In_SubscribeC2QoS1  -> 8 / Out_Empty__c2_ConnectionClosed
+          In_UnSubscribeC2    -> 8 / Out_Empty__c2_ConnectionClosed
+          In_DisconnectC2     -> 8 / Out_Empty__c2_ConnectionClosed
+    9     In_ConnectC2        -> 5 / Out_C1_ConnectionClosed__c2_ConnAck
+          In_ConnectC1        -> 6 / Out_C1_ConnAck__c2_ConnectionClosed
+          In_PublishQoS1C1    -> 9 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_SubscribeC2QoS1  -> 9 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_UnSubscribeC2    -> 9 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_DisconnectC2     -> 9 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+-}
 hbmqttNonClean :: MealyAutomaton Int HbmqttNonCleanInput HbmqttNonCleanOutput
-hbmqttNonClean = mkMealyAutomaton delta lambda (Set.fromList [0..9]) 0
+hbmqttNonClean =
+    case mkMealyAutomatonTable 10 0 deltaTable lambdaTable of
+        Right m -> m
+        Left err -> error ("haal-gen: invalid transition table: " ++ err)
   where
-    delta 0 In_ConnectC2 = 1
-    delta 0 In_ConnectC1 = 2
-    delta 0 In_PublishQoS1C1 = 0
-    delta 0 In_SubscribeC2QoS1 = 0
-    delta 0 In_UnSubscribeC2 = 0
-    delta 0 In_DisconnectC2 = 0
-    delta 2 In_ConnectC2 = 3
-    delta 2 In_ConnectC1 = 2
-    delta 2 In_PublishQoS1C1 = 2
-    delta 2 In_SubscribeC2QoS1 = 2
-    delta 2 In_UnSubscribeC2 = 2
-    delta 2 In_DisconnectC2 = 2
-    delta 3 In_ConnectC2 = 3
-    delta 3 In_ConnectC1 = 3
-    delta 3 In_PublishQoS1C1 = 3
-    delta 3 In_SubscribeC2QoS1 = 4
-    delta 3 In_UnSubscribeC2 = 3
-    delta 3 In_DisconnectC2 = 2
-    delta 1 In_ConnectC2 = 1
-    delta 1 In_ConnectC1 = 3
-    delta 1 In_PublishQoS1C1 = 1
-    delta 1 In_SubscribeC2QoS1 = 5
-    delta 1 In_UnSubscribeC2 = 1
-    delta 1 In_DisconnectC2 = 0
-    delta 4 In_ConnectC2 = 4
-    delta 4 In_ConnectC1 = 4
-    delta 4 In_PublishQoS1C1 = 4
-    delta 4 In_SubscribeC2QoS1 = 4
-    delta 4 In_UnSubscribeC2 = 3
-    delta 4 In_DisconnectC2 = 6
-    delta 6 In_ConnectC2 = 4
-    delta 6 In_ConnectC1 = 6
-    delta 6 In_PublishQoS1C1 = 7
-    delta 6 In_SubscribeC2QoS1 = 6
-    delta 6 In_UnSubscribeC2 = 6
-    delta 6 In_DisconnectC2 = 6
-    delta 7 In_ConnectC2 = 4
-    delta 7 In_ConnectC1 = 7
-    delta 7 In_PublishQoS1C1 = 8
-    delta 7 In_SubscribeC2QoS1 = 7
-    delta 7 In_UnSubscribeC2 = 7
-    delta 7 In_DisconnectC2 = 7
-    delta 8 In_ConnectC2 = 4
-    delta 8 In_ConnectC1 = 8
-    delta 8 In_PublishQoS1C1 = 8
-    delta 8 In_SubscribeC2QoS1 = 8
-    delta 8 In_UnSubscribeC2 = 8
-    delta 8 In_DisconnectC2 = 8
-    delta 5 In_ConnectC2 = 5
-    delta 5 In_ConnectC1 = 4
-    delta 5 In_PublishQoS1C1 = 5
-    delta 5 In_SubscribeC2QoS1 = 5
-    delta 5 In_UnSubscribeC2 = 1
-    delta 5 In_DisconnectC2 = 9
-    delta 9 In_ConnectC2 = 5
-    delta 9 In_ConnectC1 = 6
-    delta 9 In_PublishQoS1C1 = 9
-    delta 9 In_SubscribeC2QoS1 = 9
-    delta 9 In_UnSubscribeC2 = 9
-    delta 9 In_DisconnectC2 = 9
-    delta _ _ = error "haal-gen: undefined transition"
-    lambda 0 In_ConnectC2 = Out_C1_ConnectionClosed__c2_ConnAck
-    lambda 0 In_ConnectC1 = Out_C1_ConnAck__c2_ConnectionClosed
-    lambda 0 In_PublishQoS1C1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 0 In_SubscribeC2QoS1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 0 In_UnSubscribeC2 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 0 In_DisconnectC2 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 2 In_ConnectC2 = Out_Empty__c2_ConnAck
-    lambda 2 In_ConnectC1 = Out_Empty__c2_ConnectionClosed
-    lambda 2 In_PublishQoS1C1 = Out_C1_PubAck__c2_ConnectionClosed
-    lambda 2 In_SubscribeC2QoS1 = Out_Empty__c2_ConnectionClosed
-    lambda 2 In_UnSubscribeC2 = Out_Empty__c2_ConnectionClosed
-    lambda 2 In_DisconnectC2 = Out_Empty__c2_ConnectionClosed
-    lambda 3 In_ConnectC2 = Out_Empty__Empty
-    lambda 3 In_ConnectC1 = Out_Empty__Empty
-    lambda 3 In_PublishQoS1C1 = Out_C1_PubAck__Empty
-    lambda 3 In_SubscribeC2QoS1 = Out_Empty__c2_SubAck
-    lambda 3 In_UnSubscribeC2 = Out_Empty__c2_UnSubAck
-    lambda 3 In_DisconnectC2 = Out_Empty__c2_ConnectionClosed
-    lambda 1 In_ConnectC2 = Out_C1_ConnectionClosed__Empty
-    lambda 1 In_ConnectC1 = Out_C1_ConnAck__Empty
-    lambda 1 In_PublishQoS1C1 = Out_C1_ConnectionClosed__Empty
-    lambda 1 In_SubscribeC2QoS1 = Out_C1_ConnectionClosed__c2_SubAck
-    lambda 1 In_UnSubscribeC2 = Out_C1_ConnectionClosed__c2_UnSubAck
-    lambda 1 In_DisconnectC2 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 4 In_ConnectC2 = Out_Empty__Empty
-    lambda 4 In_ConnectC1 = Out_Empty__Empty
-    lambda 4 In_PublishQoS1C1 = Out_C1_PubAck__c2_Pub_my_topic_messageQos1_1
-    lambda 4 In_SubscribeC2QoS1 = Out_Empty__c2_SubAck
-    lambda 4 In_UnSubscribeC2 = Out_Empty__c2_UnSubAck
-    lambda 4 In_DisconnectC2 = Out_Empty__c2_ConnectionClosed
-    lambda 6 In_ConnectC2 = Out_Empty__c2_ConnAck
-    lambda 6 In_ConnectC1 = Out_Empty__c2_ConnectionClosed
-    lambda 6 In_PublishQoS1C1 = Out_C1_PubAck__c2_ConnectionClosed
-    lambda 6 In_SubscribeC2QoS1 = Out_Empty__c2_ConnectionClosed
-    lambda 6 In_UnSubscribeC2 = Out_Empty__c2_ConnectionClosed
-    lambda 6 In_DisconnectC2 = Out_Empty__c2_ConnectionClosed
-    lambda 7 In_ConnectC2 = Out_Empty__c2_Pub_my_topic_messageQos1_1___c2_ConnAck
-    lambda 7 In_ConnectC1 = Out_Empty__c2_ConnectionClosed
-    lambda 7 In_PublishQoS1C1 = Out_C1_PubAck__c2_ConnectionClosed
-    lambda 7 In_SubscribeC2QoS1 = Out_Empty__c2_ConnectionClosed
-    lambda 7 In_UnSubscribeC2 = Out_Empty__c2_ConnectionClosed
-    lambda 7 In_DisconnectC2 = Out_Empty__c2_ConnectionClosed
-    lambda 8 In_ConnectC2 = Out_Empty__c2_Pub_my_topic_messageQos1_1___c2_Pub_my_topic_messageQos1_1___c2_ConnAck
-    lambda 8 In_ConnectC1 = Out_Empty__c2_ConnectionClosed
-    lambda 8 In_PublishQoS1C1 = Out_C1_PubAck__c2_ConnectionClosed
-    lambda 8 In_SubscribeC2QoS1 = Out_Empty__c2_ConnectionClosed
-    lambda 8 In_UnSubscribeC2 = Out_Empty__c2_ConnectionClosed
-    lambda 8 In_DisconnectC2 = Out_Empty__c2_ConnectionClosed
-    lambda 5 In_ConnectC2 = Out_C1_ConnectionClosed__Empty
-    lambda 5 In_ConnectC1 = Out_C1_ConnAck__Empty
-    lambda 5 In_PublishQoS1C1 = Out_C1_ConnectionClosed__Empty
-    lambda 5 In_SubscribeC2QoS1 = Out_C1_ConnectionClosed__c2_SubAck
-    lambda 5 In_UnSubscribeC2 = Out_C1_ConnectionClosed__c2_UnSubAck
-    lambda 5 In_DisconnectC2 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 9 In_ConnectC2 = Out_C1_ConnectionClosed__c2_ConnAck
-    lambda 9 In_ConnectC1 = Out_C1_ConnAck__c2_ConnectionClosed
-    lambda 9 In_PublishQoS1C1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 9 In_SubscribeC2QoS1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 9 In_UnSubscribeC2 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 9 In_DisconnectC2 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda _ _ = error "haal-gen: undefined transition"
+    deltaTable =
+        "\1\2\0\0\0\0\
+        \\1\3\1\5\1\0\
+        \\3\2\2\2\2\2\
+        \\3\3\3\4\3\2\
+        \\4\4\4\4\3\6\
+        \\5\4\5\5\1\9\
+        \\4\6\7\6\6\6\
+        \\4\7\8\7\7\7\
+        \\4\8\8\8\8\8\
+        \\5\6\9\9\9\9"
+    lambdaTable =
+        "\0\1\2\2\2\2\
+        \\10\11\10\12\13\2\
+        \\3\4\5\4\4\4\
+        \\6\6\7\8\9\4\
+        \\6\6\14\8\9\4\
+        \\10\11\10\12\13\2\
+        \\3\4\5\4\4\4\
+        \\15\4\5\4\4\4\
+        \\16\4\5\4\4\4\
+        \\0\1\2\2\2\2"
diff --git a/src/Haal/Models/MQTT/HbmqttSimple.hs b/src/Haal/Models/MQTT/HbmqttSimple.hs
--- a/src/Haal/Models/MQTT/HbmqttSimple.hs
+++ b/src/Haal/Models/MQTT/HbmqttSimple.hs
@@ -5,8 +5,7 @@
     , hbmqttSimple
     ) where
 
-import qualified Data.Set as Set
-import Haal.Automaton.MealyAutomaton (MealyAutomaton, mkMealyAutomaton)
+import Haal.Automaton.MealyAutomaton (MealyAutomaton, mkMealyAutomatonTable)
 
 data HbmqttSimpleInput
     = In_Connect
@@ -29,78 +28,58 @@
     | Out_PublishPacket__PubAckPacket
     deriving (Show, Eq, Ord, Enum, Bounded)
 
+{- Transitions (state  input -> next state / output):
+    0     In_Connect        -> 1 / Out_ConnAckPacket
+          In_Publish        -> 2 / Out_Empty
+          In_Subscribe      -> 2 / Out_Empty
+          In_UnSubScribe    -> 2 / Out_Empty
+          In_Ping           -> 2 / Out_Empty
+          In_Disconnect     -> 2 / Out_Empty
+          In_DisconnectTCP  -> 3 / Out_ConnectionClosed
+    1     In_Connect        -> 1 / Out_Empty
+          In_Publish        -> 1 / Out_PubAckPacket
+          In_Subscribe      -> 4 / Out_SubAckPacket
+          In_UnSubScribe    -> 1 / Out_UnSubAckPacket
+          In_Ping           -> 1 / Out_PingRespPacket
+          In_Disconnect     -> 3 / Out_ConnectionClosed
+          In_DisconnectTCP  -> 3 / Out_ConnectionClosed
+    2     In_Connect        -> 2 / Out_Empty
+          In_Publish        -> 2 / Out_Empty
+          In_Subscribe      -> 2 / Out_Empty
+          In_UnSubScribe    -> 2 / Out_Empty
+          In_Ping           -> 2 / Out_Empty
+          In_Disconnect     -> 2 / Out_Empty
+          In_DisconnectTCP  -> 3 / Out_ConnectionClosed
+    3     In_Connect        -> 1 / Out_ConnAckPacket
+          In_Publish        -> 3 / Out_ConnectionClosed
+          In_Subscribe      -> 3 / Out_ConnectionClosed
+          In_UnSubScribe    -> 3 / Out_ConnectionClosed
+          In_Ping           -> 3 / Out_ConnectionClosed
+          In_Disconnect     -> 3 / Out_ConnectionClosed
+          In_DisconnectTCP  -> 3 / Out_ConnectionClosed
+    4     In_Connect        -> 4 / Out_Empty
+          In_Publish        -> 4 / Out_PublishPacket__PubAckPacket
+          In_Subscribe      -> 4 / Out_SubAckPacket
+          In_UnSubScribe    -> 1 / Out_UnSubAckPacket
+          In_Ping           -> 4 / Out_PingRespPacket
+          In_Disconnect     -> 3 / Out_ConnectionClosed
+          In_DisconnectTCP  -> 3 / Out_ConnectionClosed
+-}
 hbmqttSimple :: MealyAutomaton Int HbmqttSimpleInput HbmqttSimpleOutput
-hbmqttSimple = mkMealyAutomaton delta lambda (Set.fromList [0..4]) 0
+hbmqttSimple =
+    case mkMealyAutomatonTable 5 0 deltaTable lambdaTable of
+        Right m -> m
+        Left err -> error ("haal-gen: invalid transition table: " ++ err)
   where
-    delta 0 In_Connect = 1
-    delta 0 In_Publish = 2
-    delta 0 In_Subscribe = 2
-    delta 0 In_UnSubScribe = 2
-    delta 0 In_Ping = 2
-    delta 0 In_Disconnect = 2
-    delta 0 In_DisconnectTCP = 3
-    delta 1 In_Connect = 1
-    delta 1 In_Publish = 1
-    delta 1 In_Subscribe = 4
-    delta 1 In_UnSubScribe = 1
-    delta 1 In_Ping = 1
-    delta 1 In_Disconnect = 3
-    delta 1 In_DisconnectTCP = 3
-    delta 3 In_Connect = 1
-    delta 3 In_Publish = 3
-    delta 3 In_Subscribe = 3
-    delta 3 In_UnSubScribe = 3
-    delta 3 In_Ping = 3
-    delta 3 In_Disconnect = 3
-    delta 3 In_DisconnectTCP = 3
-    delta 2 In_Connect = 2
-    delta 2 In_Publish = 2
-    delta 2 In_Subscribe = 2
-    delta 2 In_UnSubScribe = 2
-    delta 2 In_Ping = 2
-    delta 2 In_Disconnect = 2
-    delta 2 In_DisconnectTCP = 3
-    delta 4 In_Connect = 4
-    delta 4 In_Publish = 4
-    delta 4 In_Subscribe = 4
-    delta 4 In_UnSubScribe = 1
-    delta 4 In_Ping = 4
-    delta 4 In_Disconnect = 3
-    delta 4 In_DisconnectTCP = 3
-    delta _ _ = error "haal-gen: undefined transition"
-    lambda 0 In_Connect = Out_ConnAckPacket
-    lambda 0 In_Publish = Out_Empty
-    lambda 0 In_Subscribe = Out_Empty
-    lambda 0 In_UnSubScribe = Out_Empty
-    lambda 0 In_Ping = Out_Empty
-    lambda 0 In_Disconnect = Out_Empty
-    lambda 0 In_DisconnectTCP = Out_ConnectionClosed
-    lambda 1 In_Connect = Out_Empty
-    lambda 1 In_Publish = Out_PubAckPacket
-    lambda 1 In_Subscribe = Out_SubAckPacket
-    lambda 1 In_UnSubScribe = Out_UnSubAckPacket
-    lambda 1 In_Ping = Out_PingRespPacket
-    lambda 1 In_Disconnect = Out_ConnectionClosed
-    lambda 1 In_DisconnectTCP = Out_ConnectionClosed
-    lambda 3 In_Connect = Out_ConnAckPacket
-    lambda 3 In_Publish = Out_ConnectionClosed
-    lambda 3 In_Subscribe = Out_ConnectionClosed
-    lambda 3 In_UnSubScribe = Out_ConnectionClosed
-    lambda 3 In_Ping = Out_ConnectionClosed
-    lambda 3 In_Disconnect = Out_ConnectionClosed
-    lambda 3 In_DisconnectTCP = Out_ConnectionClosed
-    lambda 2 In_Connect = Out_Empty
-    lambda 2 In_Publish = Out_Empty
-    lambda 2 In_Subscribe = Out_Empty
-    lambda 2 In_UnSubScribe = Out_Empty
-    lambda 2 In_Ping = Out_Empty
-    lambda 2 In_Disconnect = Out_Empty
-    lambda 2 In_DisconnectTCP = Out_ConnectionClosed
-    lambda 4 In_Connect = Out_Empty
-    lambda 4 In_Publish = Out_PublishPacket__PubAckPacket
-    lambda 4 In_Subscribe = Out_SubAckPacket
-    lambda 4 In_UnSubScribe = Out_UnSubAckPacket
-    lambda 4 In_Ping = Out_PingRespPacket
-    lambda 4 In_Disconnect = Out_ConnectionClosed
-    lambda 4 In_DisconnectTCP = Out_ConnectionClosed
-    lambda _ _ = error "haal-gen: undefined transition"
+    deltaTable =
+        "\1\2\2\2\2\2\3\
+        \\1\1\4\1\1\3\3\
+        \\2\2\2\2\2\2\3\
+        \\1\3\3\3\3\3\3\
+        \\4\4\4\1\4\3\3"
+    lambdaTable =
+        "\0\1\1\1\1\1\2\
+        \\1\3\4\5\6\2\2\
+        \\1\1\1\1\1\1\2\
+        \\0\2\2\2\2\2\2\
+        \\1\7\4\5\6\2\2"
diff --git a/src/Haal/Models/MQTT/HbmqttSingleClient.hs b/src/Haal/Models/MQTT/HbmqttSingleClient.hs
--- a/src/Haal/Models/MQTT/HbmqttSingleClient.hs
+++ b/src/Haal/Models/MQTT/HbmqttSingleClient.hs
@@ -5,8 +5,7 @@
     , hbmqttSingleClient
     ) where
 
-import qualified Data.Set as Set
-import Haal.Automaton.MealyAutomaton (MealyAutomaton, mkMealyAutomaton)
+import Haal.Automaton.MealyAutomaton (MealyAutomaton, mkMealyAutomatonTable)
 
 data HbmqttSingleClientInput
     = In_Connect
@@ -38,228 +37,143 @@
     | Out_Pub_my_topic_retained____Pub_my_topic_retained____PubAck
     deriving (Show, Eq, Ord, Enum, Bounded)
 
+{- Transitions (state  input -> next state / output):
+    0     In_Connect              -> 1 / Out_ConnAck
+          In_PublishQoS0          -> 0 / Out_ConnectionClosed
+          In_PublishQoS1          -> 0 / Out_ConnectionClosed
+          In_PublishRetain        -> 0 / Out_ConnectionClosed
+          In_DeleteRetained       -> 0 / Out_ConnectionClosed
+          In_Subscribe            -> 0 / Out_ConnectionClosed
+          In_UnSubScribe          -> 0 / Out_ConnectionClosed
+          In_SubscribeRetained    -> 0 / Out_ConnectionClosed
+          In_UnSubScribeRetained  -> 0 / Out_ConnectionClosed
+          In_Disconnect           -> 0 / Out_ConnectionClosed
+          In_DisconnectTCP        -> 0 / Out_ConnectionClosed
+    1     In_Connect              -> 1 / Out_Empty
+          In_PublishQoS0          -> 1 / Out_Empty
+          In_PublishQoS1          -> 1 / Out_PubAck
+          In_PublishRetain        -> 2 / Out_PubAck
+          In_DeleteRetained       -> 1 / Out_PubAck
+          In_Subscribe            -> 3 / Out_SubAck
+          In_UnSubScribe          -> 1 / Out_UnSubAck
+          In_SubscribeRetained    -> 4 / Out_SubAck
+          In_UnSubScribeRetained  -> 1 / Out_UnSubAck
+          In_Disconnect           -> 5 / Out_ConnectionClosed
+          In_DisconnectTCP        -> 5 / Out_ConnectionClosed
+    2     In_Connect              -> 2 / Out_Empty
+          In_PublishQoS0          -> 2 / Out_Empty
+          In_PublishQoS1          -> 2 / Out_PubAck
+          In_PublishRetain        -> 2 / Out_PubAck
+          In_DeleteRetained       -> 1 / Out_PubAck
+          In_Subscribe            -> 6 / Out_SubAck__Pub_my_topic_retained_retained_message
+          In_UnSubScribe          -> 2 / Out_UnSubAck
+          In_SubscribeRetained    -> 7 / Out_SubAck__Pub_my_topic_retained_retained_message
+          In_UnSubScribeRetained  -> 2 / Out_UnSubAck
+          In_Disconnect           -> 5 / Out_ConnectionClosed
+          In_DisconnectTCP        -> 5 / Out_ConnectionClosed
+    3     In_Connect              -> 3 / Out_Empty
+          In_PublishQoS0          -> 3 / Out_Pub_my_topic_messageQos0
+          In_PublishQoS1          -> 3 / Out_Pub_my_topic_messageQos1___PubAck
+          In_PublishRetain        -> 6 / Out_Pub_my_topic_retained_retained_message___PubAck
+          In_DeleteRetained       -> 3 / Out_Pub_my_topic_retained____PubAck
+          In_Subscribe            -> 3 / Out_SubAck
+          In_UnSubScribe          -> 1 / Out_UnSubAck
+          In_SubscribeRetained    -> 8 / Out_SubAck
+          In_UnSubScribeRetained  -> 3 / Out_UnSubAck
+          In_Disconnect           -> 5 / Out_ConnectionClosed
+          In_DisconnectTCP        -> 5 / Out_ConnectionClosed
+    4     In_Connect              -> 4 / Out_Empty
+          In_PublishQoS0          -> 4 / Out_Empty
+          In_PublishQoS1          -> 4 / Out_PubAck
+          In_PublishRetain        -> 7 / Out_Pub_my_topic_retained_retained_message___PubAck
+          In_DeleteRetained       -> 4 / Out_Pub_my_topic_retained____PubAck
+          In_Subscribe            -> 8 / Out_SubAck
+          In_UnSubScribe          -> 4 / Out_UnSubAck
+          In_SubscribeRetained    -> 4 / Out_SubAck
+          In_UnSubScribeRetained  -> 1 / Out_UnSubAck
+          In_Disconnect           -> 5 / Out_ConnectionClosed
+          In_DisconnectTCP        -> 5 / Out_ConnectionClosed
+    5     In_Connect              -> 5 / Out_ConnectionClosed
+          In_PublishQoS0          -> 5 / Out_ConnectionClosed
+          In_PublishQoS1          -> 5 / Out_ConnectionClosed
+          In_PublishRetain        -> 5 / Out_ConnectionClosed
+          In_DeleteRetained       -> 5 / Out_ConnectionClosed
+          In_Subscribe            -> 5 / Out_ConnectionClosed
+          In_UnSubScribe          -> 5 / Out_ConnectionClosed
+          In_SubscribeRetained    -> 5 / Out_ConnectionClosed
+          In_UnSubScribeRetained  -> 5 / Out_ConnectionClosed
+          In_Disconnect           -> 5 / Out_ConnectionClosed
+          In_DisconnectTCP        -> 5 / Out_ConnectionClosed
+    6     In_Connect              -> 6 / Out_Empty
+          In_PublishQoS0          -> 6 / Out_Pub_my_topic_messageQos0
+          In_PublishQoS1          -> 6 / Out_Pub_my_topic_messageQos1___PubAck
+          In_PublishRetain        -> 6 / Out_Pub_my_topic_retained_retained_message___PubAck
+          In_DeleteRetained       -> 3 / Out_Pub_my_topic_retained____PubAck
+          In_Subscribe            -> 6 / Out_SubAck__Pub_my_topic_retained_retained_message
+          In_UnSubScribe          -> 2 / Out_UnSubAck
+          In_SubscribeRetained    -> 9 / Out_SubAck__Pub_my_topic_retained_retained_message
+          In_UnSubScribeRetained  -> 6 / Out_UnSubAck
+          In_Disconnect           -> 5 / Out_ConnectionClosed
+          In_DisconnectTCP        -> 5 / Out_ConnectionClosed
+    7     In_Connect              -> 7 / Out_Empty
+          In_PublishQoS0          -> 7 / Out_Empty
+          In_PublishQoS1          -> 7 / Out_PubAck
+          In_PublishRetain        -> 7 / Out_Pub_my_topic_retained_retained_message___PubAck
+          In_DeleteRetained       -> 4 / Out_Pub_my_topic_retained____PubAck
+          In_Subscribe            -> 9 / Out_SubAck__Pub_my_topic_retained_retained_message
+          In_UnSubScribe          -> 7 / Out_UnSubAck
+          In_SubscribeRetained    -> 7 / Out_SubAck__Pub_my_topic_retained_retained_message
+          In_UnSubScribeRetained  -> 2 / Out_UnSubAck
+          In_Disconnect           -> 5 / Out_ConnectionClosed
+          In_DisconnectTCP        -> 5 / Out_ConnectionClosed
+    8     In_Connect              -> 8 / Out_Empty
+          In_PublishQoS0          -> 8 / Out_Pub_my_topic_messageQos0
+          In_PublishQoS1          -> 8 / Out_Pub_my_topic_messageQos1___PubAck
+          In_PublishRetain        -> 9 / Out_Pub_my_topic_retained_retained_message___Pub_my_topic_retained_retained_message___PubAck
+          In_DeleteRetained       -> 8 / Out_Pub_my_topic_retained____Pub_my_topic_retained____PubAck
+          In_Subscribe            -> 8 / Out_SubAck
+          In_UnSubScribe          -> 4 / Out_UnSubAck
+          In_SubscribeRetained    -> 8 / Out_SubAck
+          In_UnSubScribeRetained  -> 3 / Out_UnSubAck
+          In_Disconnect           -> 5 / Out_ConnectionClosed
+          In_DisconnectTCP        -> 5 / Out_ConnectionClosed
+    9     In_Connect              -> 9 / Out_Empty
+          In_PublishQoS0          -> 9 / Out_Pub_my_topic_messageQos0
+          In_PublishQoS1          -> 9 / Out_Pub_my_topic_messageQos1___PubAck
+          In_PublishRetain        -> 9 / Out_Pub_my_topic_retained_retained_message___Pub_my_topic_retained_retained_message___PubAck
+          In_DeleteRetained       -> 8 / Out_Pub_my_topic_retained____Pub_my_topic_retained____PubAck
+          In_Subscribe            -> 9 / Out_SubAck__Pub_my_topic_retained_retained_message
+          In_UnSubScribe          -> 7 / Out_UnSubAck
+          In_SubscribeRetained    -> 9 / Out_SubAck__Pub_my_topic_retained_retained_message
+          In_UnSubScribeRetained  -> 6 / Out_UnSubAck
+          In_Disconnect           -> 5 / Out_ConnectionClosed
+          In_DisconnectTCP        -> 5 / Out_ConnectionClosed
+-}
 hbmqttSingleClient :: MealyAutomaton Int HbmqttSingleClientInput HbmqttSingleClientOutput
-hbmqttSingleClient = mkMealyAutomaton delta lambda (Set.fromList [0..9]) 0
+hbmqttSingleClient =
+    case mkMealyAutomatonTable 10 0 deltaTable lambdaTable of
+        Right m -> m
+        Left err -> error ("haal-gen: invalid transition table: " ++ err)
   where
-    delta 0 In_Connect = 1
-    delta 0 In_PublishQoS0 = 0
-    delta 0 In_PublishQoS1 = 0
-    delta 0 In_PublishRetain = 0
-    delta 0 In_DeleteRetained = 0
-    delta 0 In_Subscribe = 0
-    delta 0 In_UnSubScribe = 0
-    delta 0 In_SubscribeRetained = 0
-    delta 0 In_UnSubScribeRetained = 0
-    delta 0 In_Disconnect = 0
-    delta 0 In_DisconnectTCP = 0
-    delta 1 In_Connect = 1
-    delta 1 In_PublishQoS0 = 1
-    delta 1 In_PublishQoS1 = 1
-    delta 1 In_PublishRetain = 2
-    delta 1 In_DeleteRetained = 1
-    delta 1 In_Subscribe = 3
-    delta 1 In_UnSubScribe = 1
-    delta 1 In_SubscribeRetained = 4
-    delta 1 In_UnSubScribeRetained = 1
-    delta 1 In_Disconnect = 5
-    delta 1 In_DisconnectTCP = 5
-    delta 5 In_Connect = 5
-    delta 5 In_PublishQoS0 = 5
-    delta 5 In_PublishQoS1 = 5
-    delta 5 In_PublishRetain = 5
-    delta 5 In_DeleteRetained = 5
-    delta 5 In_Subscribe = 5
-    delta 5 In_UnSubScribe = 5
-    delta 5 In_SubscribeRetained = 5
-    delta 5 In_UnSubScribeRetained = 5
-    delta 5 In_Disconnect = 5
-    delta 5 In_DisconnectTCP = 5
-    delta 2 In_Connect = 2
-    delta 2 In_PublishQoS0 = 2
-    delta 2 In_PublishQoS1 = 2
-    delta 2 In_PublishRetain = 2
-    delta 2 In_DeleteRetained = 1
-    delta 2 In_Subscribe = 6
-    delta 2 In_UnSubScribe = 2
-    delta 2 In_SubscribeRetained = 7
-    delta 2 In_UnSubScribeRetained = 2
-    delta 2 In_Disconnect = 5
-    delta 2 In_DisconnectTCP = 5
-    delta 3 In_Connect = 3
-    delta 3 In_PublishQoS0 = 3
-    delta 3 In_PublishQoS1 = 3
-    delta 3 In_PublishRetain = 6
-    delta 3 In_DeleteRetained = 3
-    delta 3 In_Subscribe = 3
-    delta 3 In_UnSubScribe = 1
-    delta 3 In_SubscribeRetained = 8
-    delta 3 In_UnSubScribeRetained = 3
-    delta 3 In_Disconnect = 5
-    delta 3 In_DisconnectTCP = 5
-    delta 6 In_Connect = 6
-    delta 6 In_PublishQoS0 = 6
-    delta 6 In_PublishQoS1 = 6
-    delta 6 In_PublishRetain = 6
-    delta 6 In_DeleteRetained = 3
-    delta 6 In_Subscribe = 6
-    delta 6 In_UnSubScribe = 2
-    delta 6 In_SubscribeRetained = 9
-    delta 6 In_UnSubScribeRetained = 6
-    delta 6 In_Disconnect = 5
-    delta 6 In_DisconnectTCP = 5
-    delta 9 In_Connect = 9
-    delta 9 In_PublishQoS0 = 9
-    delta 9 In_PublishQoS1 = 9
-    delta 9 In_PublishRetain = 9
-    delta 9 In_DeleteRetained = 8
-    delta 9 In_Subscribe = 9
-    delta 9 In_UnSubScribe = 7
-    delta 9 In_SubscribeRetained = 9
-    delta 9 In_UnSubScribeRetained = 6
-    delta 9 In_Disconnect = 5
-    delta 9 In_DisconnectTCP = 5
-    delta 4 In_Connect = 4
-    delta 4 In_PublishQoS0 = 4
-    delta 4 In_PublishQoS1 = 4
-    delta 4 In_PublishRetain = 7
-    delta 4 In_DeleteRetained = 4
-    delta 4 In_Subscribe = 8
-    delta 4 In_UnSubScribe = 4
-    delta 4 In_SubscribeRetained = 4
-    delta 4 In_UnSubScribeRetained = 1
-    delta 4 In_Disconnect = 5
-    delta 4 In_DisconnectTCP = 5
-    delta 7 In_Connect = 7
-    delta 7 In_PublishQoS0 = 7
-    delta 7 In_PublishQoS1 = 7
-    delta 7 In_PublishRetain = 7
-    delta 7 In_DeleteRetained = 4
-    delta 7 In_Subscribe = 9
-    delta 7 In_UnSubScribe = 7
-    delta 7 In_SubscribeRetained = 7
-    delta 7 In_UnSubScribeRetained = 2
-    delta 7 In_Disconnect = 5
-    delta 7 In_DisconnectTCP = 5
-    delta 8 In_Connect = 8
-    delta 8 In_PublishQoS0 = 8
-    delta 8 In_PublishQoS1 = 8
-    delta 8 In_PublishRetain = 9
-    delta 8 In_DeleteRetained = 8
-    delta 8 In_Subscribe = 8
-    delta 8 In_UnSubScribe = 4
-    delta 8 In_SubscribeRetained = 8
-    delta 8 In_UnSubScribeRetained = 3
-    delta 8 In_Disconnect = 5
-    delta 8 In_DisconnectTCP = 5
-    delta _ _ = error "haal-gen: undefined transition"
-    lambda 0 In_Connect = Out_ConnAck
-    lambda 0 In_PublishQoS0 = Out_ConnectionClosed
-    lambda 0 In_PublishQoS1 = Out_ConnectionClosed
-    lambda 0 In_PublishRetain = Out_ConnectionClosed
-    lambda 0 In_DeleteRetained = Out_ConnectionClosed
-    lambda 0 In_Subscribe = Out_ConnectionClosed
-    lambda 0 In_UnSubScribe = Out_ConnectionClosed
-    lambda 0 In_SubscribeRetained = Out_ConnectionClosed
-    lambda 0 In_UnSubScribeRetained = Out_ConnectionClosed
-    lambda 0 In_Disconnect = Out_ConnectionClosed
-    lambda 0 In_DisconnectTCP = Out_ConnectionClosed
-    lambda 1 In_Connect = Out_Empty
-    lambda 1 In_PublishQoS0 = Out_Empty
-    lambda 1 In_PublishQoS1 = Out_PubAck
-    lambda 1 In_PublishRetain = Out_PubAck
-    lambda 1 In_DeleteRetained = Out_PubAck
-    lambda 1 In_Subscribe = Out_SubAck
-    lambda 1 In_UnSubScribe = Out_UnSubAck
-    lambda 1 In_SubscribeRetained = Out_SubAck
-    lambda 1 In_UnSubScribeRetained = Out_UnSubAck
-    lambda 1 In_Disconnect = Out_ConnectionClosed
-    lambda 1 In_DisconnectTCP = Out_ConnectionClosed
-    lambda 5 In_Connect = Out_ConnectionClosed
-    lambda 5 In_PublishQoS0 = Out_ConnectionClosed
-    lambda 5 In_PublishQoS1 = Out_ConnectionClosed
-    lambda 5 In_PublishRetain = Out_ConnectionClosed
-    lambda 5 In_DeleteRetained = Out_ConnectionClosed
-    lambda 5 In_Subscribe = Out_ConnectionClosed
-    lambda 5 In_UnSubScribe = Out_ConnectionClosed
-    lambda 5 In_SubscribeRetained = Out_ConnectionClosed
-    lambda 5 In_UnSubScribeRetained = Out_ConnectionClosed
-    lambda 5 In_Disconnect = Out_ConnectionClosed
-    lambda 5 In_DisconnectTCP = Out_ConnectionClosed
-    lambda 2 In_Connect = Out_Empty
-    lambda 2 In_PublishQoS0 = Out_Empty
-    lambda 2 In_PublishQoS1 = Out_PubAck
-    lambda 2 In_PublishRetain = Out_PubAck
-    lambda 2 In_DeleteRetained = Out_PubAck
-    lambda 2 In_Subscribe = Out_SubAck__Pub_my_topic_retained_retained_message
-    lambda 2 In_UnSubScribe = Out_UnSubAck
-    lambda 2 In_SubscribeRetained = Out_SubAck__Pub_my_topic_retained_retained_message
-    lambda 2 In_UnSubScribeRetained = Out_UnSubAck
-    lambda 2 In_Disconnect = Out_ConnectionClosed
-    lambda 2 In_DisconnectTCP = Out_ConnectionClosed
-    lambda 3 In_Connect = Out_Empty
-    lambda 3 In_PublishQoS0 = Out_Pub_my_topic_messageQos0
-    lambda 3 In_PublishQoS1 = Out_Pub_my_topic_messageQos1___PubAck
-    lambda 3 In_PublishRetain = Out_Pub_my_topic_retained_retained_message___PubAck
-    lambda 3 In_DeleteRetained = Out_Pub_my_topic_retained____PubAck
-    lambda 3 In_Subscribe = Out_SubAck
-    lambda 3 In_UnSubScribe = Out_UnSubAck
-    lambda 3 In_SubscribeRetained = Out_SubAck
-    lambda 3 In_UnSubScribeRetained = Out_UnSubAck
-    lambda 3 In_Disconnect = Out_ConnectionClosed
-    lambda 3 In_DisconnectTCP = Out_ConnectionClosed
-    lambda 6 In_Connect = Out_Empty
-    lambda 6 In_PublishQoS0 = Out_Pub_my_topic_messageQos0
-    lambda 6 In_PublishQoS1 = Out_Pub_my_topic_messageQos1___PubAck
-    lambda 6 In_PublishRetain = Out_Pub_my_topic_retained_retained_message___PubAck
-    lambda 6 In_DeleteRetained = Out_Pub_my_topic_retained____PubAck
-    lambda 6 In_Subscribe = Out_SubAck__Pub_my_topic_retained_retained_message
-    lambda 6 In_UnSubScribe = Out_UnSubAck
-    lambda 6 In_SubscribeRetained = Out_SubAck__Pub_my_topic_retained_retained_message
-    lambda 6 In_UnSubScribeRetained = Out_UnSubAck
-    lambda 6 In_Disconnect = Out_ConnectionClosed
-    lambda 6 In_DisconnectTCP = Out_ConnectionClosed
-    lambda 9 In_Connect = Out_Empty
-    lambda 9 In_PublishQoS0 = Out_Pub_my_topic_messageQos0
-    lambda 9 In_PublishQoS1 = Out_Pub_my_topic_messageQos1___PubAck
-    lambda 9 In_PublishRetain = Out_Pub_my_topic_retained_retained_message___Pub_my_topic_retained_retained_message___PubAck
-    lambda 9 In_DeleteRetained = Out_Pub_my_topic_retained____Pub_my_topic_retained____PubAck
-    lambda 9 In_Subscribe = Out_SubAck__Pub_my_topic_retained_retained_message
-    lambda 9 In_UnSubScribe = Out_UnSubAck
-    lambda 9 In_SubscribeRetained = Out_SubAck__Pub_my_topic_retained_retained_message
-    lambda 9 In_UnSubScribeRetained = Out_UnSubAck
-    lambda 9 In_Disconnect = Out_ConnectionClosed
-    lambda 9 In_DisconnectTCP = Out_ConnectionClosed
-    lambda 4 In_Connect = Out_Empty
-    lambda 4 In_PublishQoS0 = Out_Empty
-    lambda 4 In_PublishQoS1 = Out_PubAck
-    lambda 4 In_PublishRetain = Out_Pub_my_topic_retained_retained_message___PubAck
-    lambda 4 In_DeleteRetained = Out_Pub_my_topic_retained____PubAck
-    lambda 4 In_Subscribe = Out_SubAck
-    lambda 4 In_UnSubScribe = Out_UnSubAck
-    lambda 4 In_SubscribeRetained = Out_SubAck
-    lambda 4 In_UnSubScribeRetained = Out_UnSubAck
-    lambda 4 In_Disconnect = Out_ConnectionClosed
-    lambda 4 In_DisconnectTCP = Out_ConnectionClosed
-    lambda 7 In_Connect = Out_Empty
-    lambda 7 In_PublishQoS0 = Out_Empty
-    lambda 7 In_PublishQoS1 = Out_PubAck
-    lambda 7 In_PublishRetain = Out_Pub_my_topic_retained_retained_message___PubAck
-    lambda 7 In_DeleteRetained = Out_Pub_my_topic_retained____PubAck
-    lambda 7 In_Subscribe = Out_SubAck__Pub_my_topic_retained_retained_message
-    lambda 7 In_UnSubScribe = Out_UnSubAck
-    lambda 7 In_SubscribeRetained = Out_SubAck__Pub_my_topic_retained_retained_message
-    lambda 7 In_UnSubScribeRetained = Out_UnSubAck
-    lambda 7 In_Disconnect = Out_ConnectionClosed
-    lambda 7 In_DisconnectTCP = Out_ConnectionClosed
-    lambda 8 In_Connect = Out_Empty
-    lambda 8 In_PublishQoS0 = Out_Pub_my_topic_messageQos0
-    lambda 8 In_PublishQoS1 = Out_Pub_my_topic_messageQos1___PubAck
-    lambda 8 In_PublishRetain = Out_Pub_my_topic_retained_retained_message___Pub_my_topic_retained_retained_message___PubAck
-    lambda 8 In_DeleteRetained = Out_Pub_my_topic_retained____Pub_my_topic_retained____PubAck
-    lambda 8 In_Subscribe = Out_SubAck
-    lambda 8 In_UnSubScribe = Out_UnSubAck
-    lambda 8 In_SubscribeRetained = Out_SubAck
-    lambda 8 In_UnSubScribeRetained = Out_UnSubAck
-    lambda 8 In_Disconnect = Out_ConnectionClosed
-    lambda 8 In_DisconnectTCP = Out_ConnectionClosed
-    lambda _ _ = error "haal-gen: undefined transition"
+    deltaTable =
+        "\1\0\0\0\0\0\0\0\0\0\0\
+        \\1\1\1\2\1\3\1\4\1\5\5\
+        \\2\2\2\2\1\6\2\7\2\5\5\
+        \\3\3\3\6\3\3\1\8\3\5\5\
+        \\4\4\4\7\4\8\4\4\1\5\5\
+        \\5\5\5\5\5\5\5\5\5\5\5\
+        \\6\6\6\6\3\6\2\9\6\5\5\
+        \\7\7\7\7\4\9\7\7\2\5\5\
+        \\8\8\8\9\8\8\4\8\3\5\5\
+        \\9\9\9\9\8\9\7\9\6\5\5"
+    lambdaTable =
+        "\0\1\1\1\1\1\1\1\1\1\1\
+        \\2\2\3\3\3\4\5\4\5\1\1\
+        \\2\2\3\3\3\6\5\6\5\1\1\
+        \\2\7\8\9\10\4\5\4\5\1\1\
+        \\2\2\3\9\10\4\5\4\5\1\1\
+        \\1\1\1\1\1\1\1\1\1\1\1\
+        \\2\7\8\9\10\6\5\6\5\1\1\
+        \\2\2\3\9\10\6\5\6\5\1\1\
+        \\2\7\8\11\12\4\5\4\5\1\1\
+        \\2\7\8\11\12\6\5\6\5\1\1"
diff --git a/src/Haal/Models/MQTT/HbmqttTwoClient.hs b/src/Haal/Models/MQTT/HbmqttTwoClient.hs
--- a/src/Haal/Models/MQTT/HbmqttTwoClient.hs
+++ b/src/Haal/Models/MQTT/HbmqttTwoClient.hs
@@ -5,8 +5,7 @@
     , hbmqttTwoClient
     ) where
 
-import qualified Data.Set as Set
-import Haal.Automaton.MealyAutomaton (MealyAutomaton, mkMealyAutomaton)
+import Haal.Automaton.MealyAutomaton (MealyAutomaton, mkMealyAutomatonTable)
 
 data HbmqttTwoClientInput
     = In_ConnectC2
@@ -50,170 +49,112 @@
     | Out_Pub_c1_my_topic_messageQos1___c1_PubAck__c2_ConnectionClosed_client_close
     deriving (Show, Eq, Ord, Enum, Bounded)
 
+{- Transitions (state  input -> next state / output):
+    0     In_ConnectC2          -> 1 / Out_C1_ConnectionClosed_client_close___c2_ConnAck
+          In_ConnectC1WithWill  -> 2 / Out_C1_ConnAck__c2_ConnectionClosed_client_close
+          In_PublishQoS0C2      -> 0 / Out_C1_ConnectionClosed_client_close___c2_ConnectionClosed_client_close
+          In_PublishQoS1C1      -> 0 / Out_C1_ConnectionClosed_client_close___c2_ConnectionClosed_client_close
+          In_SubscribeC1        -> 0 / Out_C1_ConnectionClosed_client_close___c2_ConnectionClosed_client_close
+          In_UnSubScribeC1      -> 0 / Out_C1_ConnectionClosed_client_close___c2_ConnectionClosed_client_close
+          In_SubscribeC2        -> 0 / Out_C1_ConnectionClosed_client_close___c2_ConnectionClosed_client_close
+          In_UnSubScribeC2      -> 0 / Out_C1_ConnectionClosed_client_close___c2_ConnectionClosed_client_close
+          In_DisconnectTCPC1    -> 0 / Out_C1_ConnectionClosed_client_close___c2_ConnectionClosed_client_close
+    1     In_ConnectC2          -> 1 / Out_C1_ConnectionClosed_client_close___Empty
+          In_ConnectC1WithWill  -> 3 / Out_C1_ConnAck__Empty
+          In_PublishQoS0C2      -> 1 / Out_C1_ConnectionClosed_client_close___Empty
+          In_PublishQoS1C1      -> 1 / Out_C1_ConnectionClosed_client_close___Empty
+          In_SubscribeC1        -> 1 / Out_C1_ConnectionClosed_client_close___Empty
+          In_UnSubScribeC1      -> 1 / Out_C1_ConnectionClosed_client_close___Empty
+          In_SubscribeC2        -> 7 / Out_C1_ConnectionClosed_client_close___c2_SubAck
+          In_UnSubScribeC2      -> 1 / Out_C1_ConnectionClosed_client_close___c2_UnSubAck
+          In_DisconnectTCPC1    -> 1 / Out_C1_ConnectionClosed_client_close___Empty
+    2     In_ConnectC2          -> 3 / Out_Empty__c2_ConnAck
+          In_ConnectC1WithWill  -> 2 / Out_Empty__c2_ConnectionClosed_client_close
+          In_PublishQoS0C2      -> 2 / Out_Empty__c2_ConnectionClosed_client_close
+          In_PublishQoS1C1      -> 2 / Out_C1_PubAck__c2_ConnectionClosed_client_close
+          In_SubscribeC1        -> 4 / Out_C1_SubAck__c2_ConnectionClosed_client_close
+          In_UnSubScribeC1      -> 2 / Out_C1_UnSubAck__c2_ConnectionClosed_client_close
+          In_SubscribeC2        -> 2 / Out_Empty__c2_ConnectionClosed_client_close
+          In_UnSubScribeC2      -> 2 / Out_Empty__c2_ConnectionClosed_client_close
+          In_DisconnectTCPC1    -> 0 / Out_C1_ConnectionClosed_client_close___c2_ConnectionClosed_client_close
+    3     In_ConnectC2          -> 3 / Out_Empty__Empty
+          In_ConnectC1WithWill  -> 3 / Out_Empty__Empty
+          In_PublishQoS0C2      -> 3 / Out_Empty__Empty
+          In_PublishQoS1C1      -> 3 / Out_C1_PubAck__Empty
+          In_SubscribeC1        -> 5 / Out_C1_SubAck__Empty
+          In_UnSubScribeC1      -> 3 / Out_C1_UnSubAck__Empty
+          In_SubscribeC2        -> 6 / Out_Empty__c2_SubAck
+          In_UnSubScribeC2      -> 3 / Out_Empty__c2_UnSubAck
+          In_DisconnectTCPC1    -> 1 / Out_C1_ConnectionClosed_client_close___Empty
+    4     In_ConnectC2          -> 5 / Out_Empty__c2_ConnAck
+          In_ConnectC1WithWill  -> 4 / Out_Empty__c2_ConnectionClosed_client_close
+          In_PublishQoS0C2      -> 4 / Out_Empty__c2_ConnectionClosed_client_close
+          In_PublishQoS1C1      -> 4 / Out_Pub_c1_my_topic_messageQos1___c1_PubAck__c2_ConnectionClosed_client_close
+          In_SubscribeC1        -> 4 / Out_C1_SubAck__c2_ConnectionClosed_client_close
+          In_UnSubScribeC1      -> 2 / Out_C1_UnSubAck__c2_ConnectionClosed_client_close
+          In_SubscribeC2        -> 4 / Out_Empty__c2_ConnectionClosed_client_close
+          In_UnSubScribeC2      -> 4 / Out_Empty__c2_ConnectionClosed_client_close
+          In_DisconnectTCPC1    -> 0 / Out_C1_ConnectionClosed_client_close___c2_ConnectionClosed_client_close
+    5     In_ConnectC2          -> 5 / Out_Empty__Empty
+          In_ConnectC1WithWill  -> 5 / Out_Empty__Empty
+          In_PublishQoS0C2      -> 5 / Out_Pub_c1_my_topic_messageQos0___Empty
+          In_PublishQoS1C1      -> 5 / Out_Pub_c1_my_topic_messageQos1___c1_PubAck__Empty
+          In_SubscribeC1        -> 5 / Out_C1_SubAck__Empty
+          In_UnSubScribeC1      -> 3 / Out_C1_UnSubAck__Empty
+          In_SubscribeC2        -> 8 / Out_Empty__c2_SubAck
+          In_UnSubScribeC2      -> 5 / Out_Empty__c2_UnSubAck
+          In_DisconnectTCPC1    -> 1 / Out_C1_ConnectionClosed_client_close___Empty
+    6     In_ConnectC2          -> 6 / Out_Empty__Empty
+          In_ConnectC1WithWill  -> 6 / Out_Empty__Empty
+          In_PublishQoS0C2      -> 6 / Out_Empty__Pub_c2_my_topic_messageQos0
+          In_PublishQoS1C1      -> 6 / Out_C1_PubAck__Pub_c2_my_topic_messageQos1
+          In_SubscribeC1        -> 8 / Out_C1_SubAck__Empty
+          In_UnSubScribeC1      -> 6 / Out_C1_UnSubAck__Empty
+          In_SubscribeC2        -> 6 / Out_Empty__c2_SubAck
+          In_UnSubScribeC2      -> 3 / Out_Empty__c2_UnSubAck
+          In_DisconnectTCPC1    -> 7 / Out_C1_ConnectionClosed_client_close___Pub_c2_my_topic_bye
+    7     In_ConnectC2          -> 7 / Out_C1_ConnectionClosed_client_close___Empty
+          In_ConnectC1WithWill  -> 6 / Out_C1_ConnAck__Empty
+          In_PublishQoS0C2      -> 7 / Out_C1_ConnectionClosed_client_close___Pub_c2_my_topic_messageQos0
+          In_PublishQoS1C1      -> 7 / Out_C1_ConnectionClosed_client_close___Empty
+          In_SubscribeC1        -> 7 / Out_C1_ConnectionClosed_client_close___Empty
+          In_UnSubScribeC1      -> 7 / Out_C1_ConnectionClosed_client_close___Empty
+          In_SubscribeC2        -> 7 / Out_C1_ConnectionClosed_client_close___c2_SubAck
+          In_UnSubScribeC2      -> 1 / Out_C1_ConnectionClosed_client_close___c2_UnSubAck
+          In_DisconnectTCPC1    -> 7 / Out_C1_ConnectionClosed_client_close___Empty
+    8     In_ConnectC2          -> 8 / Out_Empty__Empty
+          In_ConnectC1WithWill  -> 8 / Out_Empty__Empty
+          In_PublishQoS0C2      -> 8 / Out_Pub_c1_my_topic_messageQos0___Pub_c2_my_topic_messageQos0
+          In_PublishQoS1C1      -> 8 / Out_Pub_c1_my_topic_messageQos1___c1_PubAck__Pub_c2_my_topic_messageQos1
+          In_SubscribeC1        -> 8 / Out_C1_SubAck__Empty
+          In_UnSubScribeC1      -> 6 / Out_C1_UnSubAck__Empty
+          In_SubscribeC2        -> 8 / Out_Empty__c2_SubAck
+          In_UnSubScribeC2      -> 5 / Out_Empty__c2_UnSubAck
+          In_DisconnectTCPC1    -> 7 / Out_C1_ConnectionClosed_client_close___Pub_c2_my_topic_bye
+-}
 hbmqttTwoClient :: MealyAutomaton Int HbmqttTwoClientInput HbmqttTwoClientOutput
-hbmqttTwoClient = mkMealyAutomaton delta lambda (Set.fromList [0..8]) 0
+hbmqttTwoClient =
+    case mkMealyAutomatonTable 9 0 deltaTable lambdaTable of
+        Right m -> m
+        Left err -> error ("haal-gen: invalid transition table: " ++ err)
   where
-    delta 0 In_ConnectC2 = 1
-    delta 0 In_ConnectC1WithWill = 2
-    delta 0 In_PublishQoS0C2 = 0
-    delta 0 In_PublishQoS1C1 = 0
-    delta 0 In_SubscribeC1 = 0
-    delta 0 In_UnSubScribeC1 = 0
-    delta 0 In_SubscribeC2 = 0
-    delta 0 In_UnSubScribeC2 = 0
-    delta 0 In_DisconnectTCPC1 = 0
-    delta 2 In_ConnectC2 = 3
-    delta 2 In_ConnectC1WithWill = 2
-    delta 2 In_PublishQoS0C2 = 2
-    delta 2 In_PublishQoS1C1 = 2
-    delta 2 In_SubscribeC1 = 4
-    delta 2 In_UnSubScribeC1 = 2
-    delta 2 In_SubscribeC2 = 2
-    delta 2 In_UnSubScribeC2 = 2
-    delta 2 In_DisconnectTCPC1 = 0
-    delta 3 In_ConnectC2 = 3
-    delta 3 In_ConnectC1WithWill = 3
-    delta 3 In_PublishQoS0C2 = 3
-    delta 3 In_PublishQoS1C1 = 3
-    delta 3 In_SubscribeC1 = 5
-    delta 3 In_UnSubScribeC1 = 3
-    delta 3 In_SubscribeC2 = 6
-    delta 3 In_UnSubScribeC2 = 3
-    delta 3 In_DisconnectTCPC1 = 1
-    delta 1 In_ConnectC2 = 1
-    delta 1 In_ConnectC1WithWill = 3
-    delta 1 In_PublishQoS0C2 = 1
-    delta 1 In_PublishQoS1C1 = 1
-    delta 1 In_SubscribeC1 = 1
-    delta 1 In_UnSubScribeC1 = 1
-    delta 1 In_SubscribeC2 = 7
-    delta 1 In_UnSubScribeC2 = 1
-    delta 1 In_DisconnectTCPC1 = 1
-    delta 5 In_ConnectC2 = 5
-    delta 5 In_ConnectC1WithWill = 5
-    delta 5 In_PublishQoS0C2 = 5
-    delta 5 In_PublishQoS1C1 = 5
-    delta 5 In_SubscribeC1 = 5
-    delta 5 In_UnSubScribeC1 = 3
-    delta 5 In_SubscribeC2 = 8
-    delta 5 In_UnSubScribeC2 = 5
-    delta 5 In_DisconnectTCPC1 = 1
-    delta 8 In_ConnectC2 = 8
-    delta 8 In_ConnectC1WithWill = 8
-    delta 8 In_PublishQoS0C2 = 8
-    delta 8 In_PublishQoS1C1 = 8
-    delta 8 In_SubscribeC1 = 8
-    delta 8 In_UnSubScribeC1 = 6
-    delta 8 In_SubscribeC2 = 8
-    delta 8 In_UnSubScribeC2 = 5
-    delta 8 In_DisconnectTCPC1 = 7
-    delta 6 In_ConnectC2 = 6
-    delta 6 In_ConnectC1WithWill = 6
-    delta 6 In_PublishQoS0C2 = 6
-    delta 6 In_PublishQoS1C1 = 6
-    delta 6 In_SubscribeC1 = 8
-    delta 6 In_UnSubScribeC1 = 6
-    delta 6 In_SubscribeC2 = 6
-    delta 6 In_UnSubScribeC2 = 3
-    delta 6 In_DisconnectTCPC1 = 7
-    delta 7 In_ConnectC2 = 7
-    delta 7 In_ConnectC1WithWill = 6
-    delta 7 In_PublishQoS0C2 = 7
-    delta 7 In_PublishQoS1C1 = 7
-    delta 7 In_SubscribeC1 = 7
-    delta 7 In_UnSubScribeC1 = 7
-    delta 7 In_SubscribeC2 = 7
-    delta 7 In_UnSubScribeC2 = 1
-    delta 7 In_DisconnectTCPC1 = 7
-    delta 4 In_ConnectC2 = 5
-    delta 4 In_ConnectC1WithWill = 4
-    delta 4 In_PublishQoS0C2 = 4
-    delta 4 In_PublishQoS1C1 = 4
-    delta 4 In_SubscribeC1 = 4
-    delta 4 In_UnSubScribeC1 = 2
-    delta 4 In_SubscribeC2 = 4
-    delta 4 In_UnSubScribeC2 = 4
-    delta 4 In_DisconnectTCPC1 = 0
-    delta _ _ = error "haal-gen: undefined transition"
-    lambda 0 In_ConnectC2 = Out_C1_ConnectionClosed_client_close___c2_ConnAck
-    lambda 0 In_ConnectC1WithWill = Out_C1_ConnAck__c2_ConnectionClosed_client_close
-    lambda 0 In_PublishQoS0C2 = Out_C1_ConnectionClosed_client_close___c2_ConnectionClosed_client_close
-    lambda 0 In_PublishQoS1C1 = Out_C1_ConnectionClosed_client_close___c2_ConnectionClosed_client_close
-    lambda 0 In_SubscribeC1 = Out_C1_ConnectionClosed_client_close___c2_ConnectionClosed_client_close
-    lambda 0 In_UnSubScribeC1 = Out_C1_ConnectionClosed_client_close___c2_ConnectionClosed_client_close
-    lambda 0 In_SubscribeC2 = Out_C1_ConnectionClosed_client_close___c2_ConnectionClosed_client_close
-    lambda 0 In_UnSubScribeC2 = Out_C1_ConnectionClosed_client_close___c2_ConnectionClosed_client_close
-    lambda 0 In_DisconnectTCPC1 = Out_C1_ConnectionClosed_client_close___c2_ConnectionClosed_client_close
-    lambda 2 In_ConnectC2 = Out_Empty__c2_ConnAck
-    lambda 2 In_ConnectC1WithWill = Out_Empty__c2_ConnectionClosed_client_close
-    lambda 2 In_PublishQoS0C2 = Out_Empty__c2_ConnectionClosed_client_close
-    lambda 2 In_PublishQoS1C1 = Out_C1_PubAck__c2_ConnectionClosed_client_close
-    lambda 2 In_SubscribeC1 = Out_C1_SubAck__c2_ConnectionClosed_client_close
-    lambda 2 In_UnSubScribeC1 = Out_C1_UnSubAck__c2_ConnectionClosed_client_close
-    lambda 2 In_SubscribeC2 = Out_Empty__c2_ConnectionClosed_client_close
-    lambda 2 In_UnSubScribeC2 = Out_Empty__c2_ConnectionClosed_client_close
-    lambda 2 In_DisconnectTCPC1 = Out_C1_ConnectionClosed_client_close___c2_ConnectionClosed_client_close
-    lambda 3 In_ConnectC2 = Out_Empty__Empty
-    lambda 3 In_ConnectC1WithWill = Out_Empty__Empty
-    lambda 3 In_PublishQoS0C2 = Out_Empty__Empty
-    lambda 3 In_PublishQoS1C1 = Out_C1_PubAck__Empty
-    lambda 3 In_SubscribeC1 = Out_C1_SubAck__Empty
-    lambda 3 In_UnSubScribeC1 = Out_C1_UnSubAck__Empty
-    lambda 3 In_SubscribeC2 = Out_Empty__c2_SubAck
-    lambda 3 In_UnSubScribeC2 = Out_Empty__c2_UnSubAck
-    lambda 3 In_DisconnectTCPC1 = Out_C1_ConnectionClosed_client_close___Empty
-    lambda 1 In_ConnectC2 = Out_C1_ConnectionClosed_client_close___Empty
-    lambda 1 In_ConnectC1WithWill = Out_C1_ConnAck__Empty
-    lambda 1 In_PublishQoS0C2 = Out_C1_ConnectionClosed_client_close___Empty
-    lambda 1 In_PublishQoS1C1 = Out_C1_ConnectionClosed_client_close___Empty
-    lambda 1 In_SubscribeC1 = Out_C1_ConnectionClosed_client_close___Empty
-    lambda 1 In_UnSubScribeC1 = Out_C1_ConnectionClosed_client_close___Empty
-    lambda 1 In_SubscribeC2 = Out_C1_ConnectionClosed_client_close___c2_SubAck
-    lambda 1 In_UnSubScribeC2 = Out_C1_ConnectionClosed_client_close___c2_UnSubAck
-    lambda 1 In_DisconnectTCPC1 = Out_C1_ConnectionClosed_client_close___Empty
-    lambda 5 In_ConnectC2 = Out_Empty__Empty
-    lambda 5 In_ConnectC1WithWill = Out_Empty__Empty
-    lambda 5 In_PublishQoS0C2 = Out_Pub_c1_my_topic_messageQos0___Empty
-    lambda 5 In_PublishQoS1C1 = Out_Pub_c1_my_topic_messageQos1___c1_PubAck__Empty
-    lambda 5 In_SubscribeC1 = Out_C1_SubAck__Empty
-    lambda 5 In_UnSubScribeC1 = Out_C1_UnSubAck__Empty
-    lambda 5 In_SubscribeC2 = Out_Empty__c2_SubAck
-    lambda 5 In_UnSubScribeC2 = Out_Empty__c2_UnSubAck
-    lambda 5 In_DisconnectTCPC1 = Out_C1_ConnectionClosed_client_close___Empty
-    lambda 8 In_ConnectC2 = Out_Empty__Empty
-    lambda 8 In_ConnectC1WithWill = Out_Empty__Empty
-    lambda 8 In_PublishQoS0C2 = Out_Pub_c1_my_topic_messageQos0___Pub_c2_my_topic_messageQos0
-    lambda 8 In_PublishQoS1C1 = Out_Pub_c1_my_topic_messageQos1___c1_PubAck__Pub_c2_my_topic_messageQos1
-    lambda 8 In_SubscribeC1 = Out_C1_SubAck__Empty
-    lambda 8 In_UnSubScribeC1 = Out_C1_UnSubAck__Empty
-    lambda 8 In_SubscribeC2 = Out_Empty__c2_SubAck
-    lambda 8 In_UnSubScribeC2 = Out_Empty__c2_UnSubAck
-    lambda 8 In_DisconnectTCPC1 = Out_C1_ConnectionClosed_client_close___Pub_c2_my_topic_bye
-    lambda 6 In_ConnectC2 = Out_Empty__Empty
-    lambda 6 In_ConnectC1WithWill = Out_Empty__Empty
-    lambda 6 In_PublishQoS0C2 = Out_Empty__Pub_c2_my_topic_messageQos0
-    lambda 6 In_PublishQoS1C1 = Out_C1_PubAck__Pub_c2_my_topic_messageQos1
-    lambda 6 In_SubscribeC1 = Out_C1_SubAck__Empty
-    lambda 6 In_UnSubScribeC1 = Out_C1_UnSubAck__Empty
-    lambda 6 In_SubscribeC2 = Out_Empty__c2_SubAck
-    lambda 6 In_UnSubScribeC2 = Out_Empty__c2_UnSubAck
-    lambda 6 In_DisconnectTCPC1 = Out_C1_ConnectionClosed_client_close___Pub_c2_my_topic_bye
-    lambda 7 In_ConnectC2 = Out_C1_ConnectionClosed_client_close___Empty
-    lambda 7 In_ConnectC1WithWill = Out_C1_ConnAck__Empty
-    lambda 7 In_PublishQoS0C2 = Out_C1_ConnectionClosed_client_close___Pub_c2_my_topic_messageQos0
-    lambda 7 In_PublishQoS1C1 = Out_C1_ConnectionClosed_client_close___Empty
-    lambda 7 In_SubscribeC1 = Out_C1_ConnectionClosed_client_close___Empty
-    lambda 7 In_UnSubScribeC1 = Out_C1_ConnectionClosed_client_close___Empty
-    lambda 7 In_SubscribeC2 = Out_C1_ConnectionClosed_client_close___c2_SubAck
-    lambda 7 In_UnSubScribeC2 = Out_C1_ConnectionClosed_client_close___c2_UnSubAck
-    lambda 7 In_DisconnectTCPC1 = Out_C1_ConnectionClosed_client_close___Empty
-    lambda 4 In_ConnectC2 = Out_Empty__c2_ConnAck
-    lambda 4 In_ConnectC1WithWill = Out_Empty__c2_ConnectionClosed_client_close
-    lambda 4 In_PublishQoS0C2 = Out_Empty__c2_ConnectionClosed_client_close
-    lambda 4 In_PublishQoS1C1 = Out_Pub_c1_my_topic_messageQos1___c1_PubAck__c2_ConnectionClosed_client_close
-    lambda 4 In_SubscribeC1 = Out_C1_SubAck__c2_ConnectionClosed_client_close
-    lambda 4 In_UnSubScribeC1 = Out_C1_UnSubAck__c2_ConnectionClosed_client_close
-    lambda 4 In_SubscribeC2 = Out_Empty__c2_ConnectionClosed_client_close
-    lambda 4 In_UnSubScribeC2 = Out_Empty__c2_ConnectionClosed_client_close
-    lambda 4 In_DisconnectTCPC1 = Out_C1_ConnectionClosed_client_close___c2_ConnectionClosed_client_close
-    lambda _ _ = error "haal-gen: undefined transition"
+    deltaTable =
+        "\1\2\0\0\0\0\0\0\0\
+        \\1\3\1\1\1\1\7\1\1\
+        \\3\2\2\2\4\2\2\2\0\
+        \\3\3\3\3\5\3\6\3\1\
+        \\5\4\4\4\4\2\4\4\0\
+        \\5\5\5\5\5\3\8\5\1\
+        \\6\6\6\6\8\6\6\3\7\
+        \\7\6\7\7\7\7\7\1\7\
+        \\8\8\8\8\8\6\8\5\7"
+    lambdaTable =
+        "\0\1\2\2\2\2\2\2\2\
+        \\14\15\14\14\14\14\16\17\14\
+        \\3\4\4\5\6\7\4\4\2\
+        \\8\8\8\9\10\11\12\13\14\
+        \\3\4\4\26\6\7\4\4\2\
+        \\8\8\18\19\10\11\12\13\14\
+        \\8\8\23\24\10\11\12\13\22\
+        \\14\15\25\14\14\14\16\17\14\
+        \\8\8\20\21\10\11\12\13\22"
diff --git a/src/Haal/Models/MQTT/HbmqttTwoClientWillRetain.hs b/src/Haal/Models/MQTT/HbmqttTwoClientWillRetain.hs
--- a/src/Haal/Models/MQTT/HbmqttTwoClientWillRetain.hs
+++ b/src/Haal/Models/MQTT/HbmqttTwoClientWillRetain.hs
@@ -5,8 +5,7 @@
     , hbmqttTwoClientWillRetain
     ) where
 
-import qualified Data.Set as Set
-import Haal.Automaton.MealyAutomaton (MealyAutomaton, mkMealyAutomaton)
+import Haal.Automaton.MealyAutomaton (MealyAutomaton, mkMealyAutomatonTable)
 
 data HbmqttTwoClientWillRetainInput
     = In_ConnectC2
@@ -45,314 +44,200 @@
     | Out_Empty__c2_SubAck__Pub_c2_my_topic_bye
     deriving (Show, Eq, Ord, Enum, Bounded)
 
+{- Transitions (state  input -> next state / output):
+    0     In_ConnectC2                -> 1 / Out_C1_ConnectionClosed__c2_ConnAck
+          In_ConnectC1WithWill        -> 2 / Out_C1_ConnAck__c2_ConnectionClosed
+          In_ConnectC1WithWillRetain  -> 3 / Out_C1_ConnAck__c2_ConnectionClosed
+          In_DeleteRetainedC1         -> 0 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_DeleteRetainedC2         -> 0 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_SubscribeC2              -> 0 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_UnSubScribeC2            -> 0 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_DisconnectTCPC1          -> 0 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_DisconnectC1             -> 0 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+    1     In_ConnectC2                -> 1 / Out_C1_ConnectionClosed__Empty
+          In_ConnectC1WithWill        -> 4 / Out_C1_ConnAck__Empty
+          In_ConnectC1WithWillRetain  -> 6 / Out_C1_ConnAck__Empty
+          In_DeleteRetainedC1         -> 1 / Out_C1_ConnectionClosed__Empty
+          In_DeleteRetainedC2         -> 1 / Out_C1_ConnectionClosed__c2_PubAck
+          In_SubscribeC2              -> 7 / Out_C1_ConnectionClosed__c2_SubAck
+          In_UnSubScribeC2            -> 1 / Out_C1_ConnectionClosed__c2_UnSubAck
+          In_DisconnectTCPC1          -> 1 / Out_C1_ConnectionClosed__Empty
+          In_DisconnectC1             -> 1 / Out_C1_ConnectionClosed__Empty
+    2     In_ConnectC2                -> 4 / Out_Empty__c2_ConnAck
+          In_ConnectC1WithWill        -> 2 / Out_Empty__c2_ConnectionClosed
+          In_ConnectC1WithWillRetain  -> 2 / Out_Empty__c2_ConnectionClosed
+          In_DeleteRetainedC1         -> 2 / Out_C1_PubAck__c2_ConnectionClosed
+          In_DeleteRetainedC2         -> 2 / Out_Empty__c2_ConnectionClosed
+          In_SubscribeC2              -> 2 / Out_Empty__c2_ConnectionClosed
+          In_UnSubScribeC2            -> 2 / Out_Empty__c2_ConnectionClosed
+          In_DisconnectTCPC1          -> 0 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_DisconnectC1             -> 0 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+    3     In_ConnectC2                -> 6 / Out_Empty__c2_ConnAck
+          In_ConnectC1WithWill        -> 3 / Out_Empty__c2_ConnectionClosed
+          In_ConnectC1WithWillRetain  -> 3 / Out_Empty__c2_ConnectionClosed
+          In_DeleteRetainedC1         -> 3 / Out_C1_PubAck__c2_ConnectionClosed
+          In_DeleteRetainedC2         -> 3 / Out_Empty__c2_ConnectionClosed
+          In_SubscribeC2              -> 3 / Out_Empty__c2_ConnectionClosed
+          In_UnSubScribeC2            -> 3 / Out_Empty__c2_ConnectionClosed
+          In_DisconnectTCPC1          -> 14 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_DisconnectC1             -> 0 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+    4     In_ConnectC2                -> 4 / Out_Empty__Empty
+          In_ConnectC1WithWill        -> 4 / Out_Empty__Empty
+          In_ConnectC1WithWillRetain  -> 4 / Out_Empty__Empty
+          In_DeleteRetainedC1         -> 4 / Out_C1_PubAck__Empty
+          In_DeleteRetainedC2         -> 4 / Out_Empty__c2_PubAck
+          In_SubscribeC2              -> 5 / Out_Empty__c2_SubAck
+          In_UnSubScribeC2            -> 4 / Out_Empty__c2_UnSubAck
+          In_DisconnectTCPC1          -> 1 / Out_C1_ConnectionClosed__Empty
+          In_DisconnectC1             -> 1 / Out_C1_ConnectionClosed__Empty
+    5     In_ConnectC2                -> 5 / Out_Empty__Empty
+          In_ConnectC1WithWill        -> 5 / Out_Empty__Empty
+          In_ConnectC1WithWillRetain  -> 5 / Out_Empty__Empty
+          In_DeleteRetainedC1         -> 5 / Out_C1_PubAck__Pub_c2_my_topic
+          In_DeleteRetainedC2         -> 5 / Out_Empty__Pub_c2_my_topic____c2_PubAck
+          In_SubscribeC2              -> 5 / Out_Empty__c2_SubAck
+          In_UnSubScribeC2            -> 4 / Out_Empty__c2_UnSubAck
+          In_DisconnectTCPC1          -> 7 / Out_C1_ConnectionClosed__Pub_c2_my_topic_bye
+          In_DisconnectC1             -> 7 / Out_C1_ConnectionClosed__Empty
+    6     In_ConnectC2                -> 6 / Out_Empty__Empty
+          In_ConnectC1WithWill        -> 6 / Out_Empty__Empty
+          In_ConnectC1WithWillRetain  -> 6 / Out_Empty__Empty
+          In_DeleteRetainedC1         -> 6 / Out_C1_PubAck__Empty
+          In_DeleteRetainedC2         -> 6 / Out_Empty__c2_PubAck
+          In_SubscribeC2              -> 8 / Out_Empty__c2_SubAck
+          In_UnSubScribeC2            -> 6 / Out_Empty__c2_UnSubAck
+          In_DisconnectTCPC1          -> 9 / Out_C1_ConnectionClosed__Empty
+          In_DisconnectC1             -> 1 / Out_C1_ConnectionClosed__Empty
+    7     In_ConnectC2                -> 7 / Out_C1_ConnectionClosed__Empty
+          In_ConnectC1WithWill        -> 5 / Out_C1_ConnAck__Empty
+          In_ConnectC1WithWillRetain  -> 8 / Out_C1_ConnAck__Empty
+          In_DeleteRetainedC1         -> 7 / Out_C1_ConnectionClosed__Empty
+          In_DeleteRetainedC2         -> 7 / Out_C1_ConnectionClosed__Pub_c2_my_topic____c2_PubAck
+          In_SubscribeC2              -> 7 / Out_C1_ConnectionClosed__c2_SubAck
+          In_UnSubScribeC2            -> 1 / Out_C1_ConnectionClosed__c2_UnSubAck
+          In_DisconnectTCPC1          -> 7 / Out_C1_ConnectionClosed__Empty
+          In_DisconnectC1             -> 7 / Out_C1_ConnectionClosed__Empty
+    8     In_ConnectC2                -> 8 / Out_Empty__Empty
+          In_ConnectC1WithWill        -> 8 / Out_Empty__Empty
+          In_ConnectC1WithWillRetain  -> 8 / Out_Empty__Empty
+          In_DeleteRetainedC1         -> 8 / Out_C1_PubAck__Pub_c2_my_topic
+          In_DeleteRetainedC2         -> 8 / Out_Empty__Pub_c2_my_topic____c2_PubAck
+          In_SubscribeC2              -> 8 / Out_Empty__c2_SubAck
+          In_UnSubScribeC2            -> 6 / Out_Empty__c2_UnSubAck
+          In_DisconnectTCPC1          -> 12 / Out_C1_ConnectionClosed__Pub_c2_my_topic_bye
+          In_DisconnectC1             -> 7 / Out_C1_ConnectionClosed__Empty
+    9     In_ConnectC2                -> 9 / Out_C1_ConnectionClosed__Empty
+          In_ConnectC1WithWill        -> 10 / Out_C1_ConnAck__Empty
+          In_ConnectC1WithWillRetain  -> 11 / Out_C1_ConnAck__Empty
+          In_DeleteRetainedC1         -> 9 / Out_C1_ConnectionClosed__Empty
+          In_DeleteRetainedC2         -> 1 / Out_C1_ConnectionClosed__c2_PubAck
+          In_SubscribeC2              -> 12 / Out_C1_ConnectionClosed__c2_SubAck__Pub_c2_my_topic_bye
+          In_UnSubScribeC2            -> 9 / Out_C1_ConnectionClosed__c2_UnSubAck
+          In_DisconnectTCPC1          -> 9 / Out_C1_ConnectionClosed__Empty
+          In_DisconnectC1             -> 9 / Out_C1_ConnectionClosed__Empty
+    10    In_ConnectC2                -> 10 / Out_Empty__Empty
+          In_ConnectC1WithWill        -> 10 / Out_Empty__Empty
+          In_ConnectC1WithWillRetain  -> 10 / Out_Empty__Empty
+          In_DeleteRetainedC1         -> 4 / Out_C1_PubAck__Empty
+          In_DeleteRetainedC2         -> 4 / Out_Empty__c2_PubAck
+          In_SubscribeC2              -> 13 / Out_Empty__c2_SubAck__Pub_c2_my_topic_bye
+          In_UnSubScribeC2            -> 10 / Out_Empty__c2_UnSubAck
+          In_DisconnectTCPC1          -> 9 / Out_C1_ConnectionClosed__Empty
+          In_DisconnectC1             -> 9 / Out_C1_ConnectionClosed__Empty
+    11    In_ConnectC2                -> 11 / Out_Empty__Empty
+          In_ConnectC1WithWill        -> 11 / Out_Empty__Empty
+          In_ConnectC1WithWillRetain  -> 11 / Out_Empty__Empty
+          In_DeleteRetainedC1         -> 6 / Out_C1_PubAck__Empty
+          In_DeleteRetainedC2         -> 6 / Out_Empty__c2_PubAck
+          In_SubscribeC2              -> 13 / Out_Empty__c2_SubAck__Pub_c2_my_topic_bye
+          In_UnSubScribeC2            -> 11 / Out_Empty__c2_UnSubAck
+          In_DisconnectTCPC1          -> 9 / Out_C1_ConnectionClosed__Empty
+          In_DisconnectC1             -> 9 / Out_C1_ConnectionClosed__Empty
+    12    In_ConnectC2                -> 12 / Out_C1_ConnectionClosed__Empty
+          In_ConnectC1WithWill        -> 13 / Out_C1_ConnAck__Empty
+          In_ConnectC1WithWillRetain  -> 13 / Out_C1_ConnAck__Empty
+          In_DeleteRetainedC1         -> 12 / Out_C1_ConnectionClosed__Empty
+          In_DeleteRetainedC2         -> 7 / Out_C1_ConnectionClosed__Pub_c2_my_topic____c2_PubAck
+          In_SubscribeC2              -> 12 / Out_C1_ConnectionClosed__c2_SubAck__Pub_c2_my_topic_bye
+          In_UnSubScribeC2            -> 9 / Out_C1_ConnectionClosed__c2_UnSubAck
+          In_DisconnectTCPC1          -> 12 / Out_C1_ConnectionClosed__Empty
+          In_DisconnectC1             -> 12 / Out_C1_ConnectionClosed__Empty
+    13    In_ConnectC2                -> 13 / Out_Empty__Empty
+          In_ConnectC1WithWill        -> 13 / Out_Empty__Empty
+          In_ConnectC1WithWillRetain  -> 13 / Out_Empty__Empty
+          In_DeleteRetainedC1         -> 5 / Out_C1_PubAck__Pub_c2_my_topic
+          In_DeleteRetainedC2         -> 5 / Out_Empty__Pub_c2_my_topic____c2_PubAck
+          In_SubscribeC2              -> 13 / Out_Empty__c2_SubAck__Pub_c2_my_topic_bye
+          In_UnSubScribeC2            -> 10 / Out_Empty__c2_UnSubAck
+          In_DisconnectTCPC1          -> 12 / Out_C1_ConnectionClosed__Pub_c2_my_topic_bye
+          In_DisconnectC1             -> 12 / Out_C1_ConnectionClosed__Empty
+    14    In_ConnectC2                -> 9 / Out_C1_ConnectionClosed__c2_ConnAck
+          In_ConnectC1WithWill        -> 15 / Out_C1_ConnAck__c2_ConnectionClosed
+          In_ConnectC1WithWillRetain  -> 16 / Out_C1_ConnAck__c2_ConnectionClosed
+          In_DeleteRetainedC1         -> 14 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_DeleteRetainedC2         -> 14 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_SubscribeC2              -> 14 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_UnSubScribeC2            -> 14 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_DisconnectTCPC1          -> 14 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_DisconnectC1             -> 14 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+    15    In_ConnectC2                -> 10 / Out_Empty__c2_ConnAck
+          In_ConnectC1WithWill        -> 15 / Out_Empty__c2_ConnectionClosed
+          In_ConnectC1WithWillRetain  -> 15 / Out_Empty__c2_ConnectionClosed
+          In_DeleteRetainedC1         -> 2 / Out_C1_PubAck__c2_ConnectionClosed
+          In_DeleteRetainedC2         -> 15 / Out_Empty__c2_ConnectionClosed
+          In_SubscribeC2              -> 15 / Out_Empty__c2_ConnectionClosed
+          In_UnSubScribeC2            -> 15 / Out_Empty__c2_ConnectionClosed
+          In_DisconnectTCPC1          -> 14 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_DisconnectC1             -> 14 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+    16    In_ConnectC2                -> 11 / Out_Empty__c2_ConnAck
+          In_ConnectC1WithWill        -> 16 / Out_Empty__c2_ConnectionClosed
+          In_ConnectC1WithWillRetain  -> 16 / Out_Empty__c2_ConnectionClosed
+          In_DeleteRetainedC1         -> 3 / Out_C1_PubAck__c2_ConnectionClosed
+          In_DeleteRetainedC2         -> 16 / Out_Empty__c2_ConnectionClosed
+          In_SubscribeC2              -> 16 / Out_Empty__c2_ConnectionClosed
+          In_UnSubScribeC2            -> 16 / Out_Empty__c2_ConnectionClosed
+          In_DisconnectTCPC1          -> 14 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_DisconnectC1             -> 14 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+-}
 hbmqttTwoClientWillRetain :: MealyAutomaton Int HbmqttTwoClientWillRetainInput HbmqttTwoClientWillRetainOutput
-hbmqttTwoClientWillRetain = mkMealyAutomaton delta lambda (Set.fromList [0..16]) 0
+hbmqttTwoClientWillRetain =
+    case mkMealyAutomatonTable 17 0 deltaTable lambdaTable of
+        Right m -> m
+        Left err -> error ("haal-gen: invalid transition table: " ++ err)
   where
-    delta 0 In_ConnectC2 = 1
-    delta 0 In_ConnectC1WithWill = 2
-    delta 0 In_ConnectC1WithWillRetain = 3
-    delta 0 In_DeleteRetainedC1 = 0
-    delta 0 In_DeleteRetainedC2 = 0
-    delta 0 In_SubscribeC2 = 0
-    delta 0 In_UnSubScribeC2 = 0
-    delta 0 In_DisconnectTCPC1 = 0
-    delta 0 In_DisconnectC1 = 0
-    delta 2 In_ConnectC2 = 4
-    delta 2 In_ConnectC1WithWill = 2
-    delta 2 In_ConnectC1WithWillRetain = 2
-    delta 2 In_DeleteRetainedC1 = 2
-    delta 2 In_DeleteRetainedC2 = 2
-    delta 2 In_SubscribeC2 = 2
-    delta 2 In_UnSubScribeC2 = 2
-    delta 2 In_DisconnectTCPC1 = 0
-    delta 2 In_DisconnectC1 = 0
-    delta 4 In_ConnectC2 = 4
-    delta 4 In_ConnectC1WithWill = 4
-    delta 4 In_ConnectC1WithWillRetain = 4
-    delta 4 In_DeleteRetainedC1 = 4
-    delta 4 In_DeleteRetainedC2 = 4
-    delta 4 In_SubscribeC2 = 5
-    delta 4 In_UnSubScribeC2 = 4
-    delta 4 In_DisconnectTCPC1 = 1
-    delta 4 In_DisconnectC1 = 1
-    delta 1 In_ConnectC2 = 1
-    delta 1 In_ConnectC1WithWill = 4
-    delta 1 In_ConnectC1WithWillRetain = 6
-    delta 1 In_DeleteRetainedC1 = 1
-    delta 1 In_DeleteRetainedC2 = 1
-    delta 1 In_SubscribeC2 = 7
-    delta 1 In_UnSubScribeC2 = 1
-    delta 1 In_DisconnectTCPC1 = 1
-    delta 1 In_DisconnectC1 = 1
-    delta 6 In_ConnectC2 = 6
-    delta 6 In_ConnectC1WithWill = 6
-    delta 6 In_ConnectC1WithWillRetain = 6
-    delta 6 In_DeleteRetainedC1 = 6
-    delta 6 In_DeleteRetainedC2 = 6
-    delta 6 In_SubscribeC2 = 8
-    delta 6 In_UnSubScribeC2 = 6
-    delta 6 In_DisconnectTCPC1 = 9
-    delta 6 In_DisconnectC1 = 1
-    delta 9 In_ConnectC2 = 9
-    delta 9 In_ConnectC1WithWill = 10
-    delta 9 In_ConnectC1WithWillRetain = 11
-    delta 9 In_DeleteRetainedC1 = 9
-    delta 9 In_DeleteRetainedC2 = 1
-    delta 9 In_SubscribeC2 = 12
-    delta 9 In_UnSubScribeC2 = 9
-    delta 9 In_DisconnectTCPC1 = 9
-    delta 9 In_DisconnectC1 = 9
-    delta 8 In_ConnectC2 = 8
-    delta 8 In_ConnectC1WithWill = 8
-    delta 8 In_ConnectC1WithWillRetain = 8
-    delta 8 In_DeleteRetainedC1 = 8
-    delta 8 In_DeleteRetainedC2 = 8
-    delta 8 In_SubscribeC2 = 8
-    delta 8 In_UnSubScribeC2 = 6
-    delta 8 In_DisconnectTCPC1 = 12
-    delta 8 In_DisconnectC1 = 7
-    delta 5 In_ConnectC2 = 5
-    delta 5 In_ConnectC1WithWill = 5
-    delta 5 In_ConnectC1WithWillRetain = 5
-    delta 5 In_DeleteRetainedC1 = 5
-    delta 5 In_DeleteRetainedC2 = 5
-    delta 5 In_SubscribeC2 = 5
-    delta 5 In_UnSubScribeC2 = 4
-    delta 5 In_DisconnectTCPC1 = 7
-    delta 5 In_DisconnectC1 = 7
-    delta 7 In_ConnectC2 = 7
-    delta 7 In_ConnectC1WithWill = 5
-    delta 7 In_ConnectC1WithWillRetain = 8
-    delta 7 In_DeleteRetainedC1 = 7
-    delta 7 In_DeleteRetainedC2 = 7
-    delta 7 In_SubscribeC2 = 7
-    delta 7 In_UnSubScribeC2 = 1
-    delta 7 In_DisconnectTCPC1 = 7
-    delta 7 In_DisconnectC1 = 7
-    delta 12 In_ConnectC2 = 12
-    delta 12 In_ConnectC1WithWill = 13
-    delta 12 In_ConnectC1WithWillRetain = 13
-    delta 12 In_DeleteRetainedC1 = 12
-    delta 12 In_DeleteRetainedC2 = 7
-    delta 12 In_SubscribeC2 = 12
-    delta 12 In_UnSubScribeC2 = 9
-    delta 12 In_DisconnectTCPC1 = 12
-    delta 12 In_DisconnectC1 = 12
-    delta 3 In_ConnectC2 = 6
-    delta 3 In_ConnectC1WithWill = 3
-    delta 3 In_ConnectC1WithWillRetain = 3
-    delta 3 In_DeleteRetainedC1 = 3
-    delta 3 In_DeleteRetainedC2 = 3
-    delta 3 In_SubscribeC2 = 3
-    delta 3 In_UnSubScribeC2 = 3
-    delta 3 In_DisconnectTCPC1 = 14
-    delta 3 In_DisconnectC1 = 0
-    delta 14 In_ConnectC2 = 9
-    delta 14 In_ConnectC1WithWill = 15
-    delta 14 In_ConnectC1WithWillRetain = 16
-    delta 14 In_DeleteRetainedC1 = 14
-    delta 14 In_DeleteRetainedC2 = 14
-    delta 14 In_SubscribeC2 = 14
-    delta 14 In_UnSubScribeC2 = 14
-    delta 14 In_DisconnectTCPC1 = 14
-    delta 14 In_DisconnectC1 = 14
-    delta 13 In_ConnectC2 = 13
-    delta 13 In_ConnectC1WithWill = 13
-    delta 13 In_ConnectC1WithWillRetain = 13
-    delta 13 In_DeleteRetainedC1 = 5
-    delta 13 In_DeleteRetainedC2 = 5
-    delta 13 In_SubscribeC2 = 13
-    delta 13 In_UnSubScribeC2 = 10
-    delta 13 In_DisconnectTCPC1 = 12
-    delta 13 In_DisconnectC1 = 12
-    delta 11 In_ConnectC2 = 11
-    delta 11 In_ConnectC1WithWill = 11
-    delta 11 In_ConnectC1WithWillRetain = 11
-    delta 11 In_DeleteRetainedC1 = 6
-    delta 11 In_DeleteRetainedC2 = 6
-    delta 11 In_SubscribeC2 = 13
-    delta 11 In_UnSubScribeC2 = 11
-    delta 11 In_DisconnectTCPC1 = 9
-    delta 11 In_DisconnectC1 = 9
-    delta 16 In_ConnectC2 = 11
-    delta 16 In_ConnectC1WithWill = 16
-    delta 16 In_ConnectC1WithWillRetain = 16
-    delta 16 In_DeleteRetainedC1 = 3
-    delta 16 In_DeleteRetainedC2 = 16
-    delta 16 In_SubscribeC2 = 16
-    delta 16 In_UnSubScribeC2 = 16
-    delta 16 In_DisconnectTCPC1 = 14
-    delta 16 In_DisconnectC1 = 14
-    delta 10 In_ConnectC2 = 10
-    delta 10 In_ConnectC1WithWill = 10
-    delta 10 In_ConnectC1WithWillRetain = 10
-    delta 10 In_DeleteRetainedC1 = 4
-    delta 10 In_DeleteRetainedC2 = 4
-    delta 10 In_SubscribeC2 = 13
-    delta 10 In_UnSubScribeC2 = 10
-    delta 10 In_DisconnectTCPC1 = 9
-    delta 10 In_DisconnectC1 = 9
-    delta 15 In_ConnectC2 = 10
-    delta 15 In_ConnectC1WithWill = 15
-    delta 15 In_ConnectC1WithWillRetain = 15
-    delta 15 In_DeleteRetainedC1 = 2
-    delta 15 In_DeleteRetainedC2 = 15
-    delta 15 In_SubscribeC2 = 15
-    delta 15 In_UnSubScribeC2 = 15
-    delta 15 In_DisconnectTCPC1 = 14
-    delta 15 In_DisconnectC1 = 14
-    delta _ _ = error "haal-gen: undefined transition"
-    lambda 0 In_ConnectC2 = Out_C1_ConnectionClosed__c2_ConnAck
-    lambda 0 In_ConnectC1WithWill = Out_C1_ConnAck__c2_ConnectionClosed
-    lambda 0 In_ConnectC1WithWillRetain = Out_C1_ConnAck__c2_ConnectionClosed
-    lambda 0 In_DeleteRetainedC1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 0 In_DeleteRetainedC2 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 0 In_SubscribeC2 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 0 In_UnSubScribeC2 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 0 In_DisconnectTCPC1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 0 In_DisconnectC1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 2 In_ConnectC2 = Out_Empty__c2_ConnAck
-    lambda 2 In_ConnectC1WithWill = Out_Empty__c2_ConnectionClosed
-    lambda 2 In_ConnectC1WithWillRetain = Out_Empty__c2_ConnectionClosed
-    lambda 2 In_DeleteRetainedC1 = Out_C1_PubAck__c2_ConnectionClosed
-    lambda 2 In_DeleteRetainedC2 = Out_Empty__c2_ConnectionClosed
-    lambda 2 In_SubscribeC2 = Out_Empty__c2_ConnectionClosed
-    lambda 2 In_UnSubScribeC2 = Out_Empty__c2_ConnectionClosed
-    lambda 2 In_DisconnectTCPC1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 2 In_DisconnectC1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 4 In_ConnectC2 = Out_Empty__Empty
-    lambda 4 In_ConnectC1WithWill = Out_Empty__Empty
-    lambda 4 In_ConnectC1WithWillRetain = Out_Empty__Empty
-    lambda 4 In_DeleteRetainedC1 = Out_C1_PubAck__Empty
-    lambda 4 In_DeleteRetainedC2 = Out_Empty__c2_PubAck
-    lambda 4 In_SubscribeC2 = Out_Empty__c2_SubAck
-    lambda 4 In_UnSubScribeC2 = Out_Empty__c2_UnSubAck
-    lambda 4 In_DisconnectTCPC1 = Out_C1_ConnectionClosed__Empty
-    lambda 4 In_DisconnectC1 = Out_C1_ConnectionClosed__Empty
-    lambda 1 In_ConnectC2 = Out_C1_ConnectionClosed__Empty
-    lambda 1 In_ConnectC1WithWill = Out_C1_ConnAck__Empty
-    lambda 1 In_ConnectC1WithWillRetain = Out_C1_ConnAck__Empty
-    lambda 1 In_DeleteRetainedC1 = Out_C1_ConnectionClosed__Empty
-    lambda 1 In_DeleteRetainedC2 = Out_C1_ConnectionClosed__c2_PubAck
-    lambda 1 In_SubscribeC2 = Out_C1_ConnectionClosed__c2_SubAck
-    lambda 1 In_UnSubScribeC2 = Out_C1_ConnectionClosed__c2_UnSubAck
-    lambda 1 In_DisconnectTCPC1 = Out_C1_ConnectionClosed__Empty
-    lambda 1 In_DisconnectC1 = Out_C1_ConnectionClosed__Empty
-    lambda 6 In_ConnectC2 = Out_Empty__Empty
-    lambda 6 In_ConnectC1WithWill = Out_Empty__Empty
-    lambda 6 In_ConnectC1WithWillRetain = Out_Empty__Empty
-    lambda 6 In_DeleteRetainedC1 = Out_C1_PubAck__Empty
-    lambda 6 In_DeleteRetainedC2 = Out_Empty__c2_PubAck
-    lambda 6 In_SubscribeC2 = Out_Empty__c2_SubAck
-    lambda 6 In_UnSubScribeC2 = Out_Empty__c2_UnSubAck
-    lambda 6 In_DisconnectTCPC1 = Out_C1_ConnectionClosed__Empty
-    lambda 6 In_DisconnectC1 = Out_C1_ConnectionClosed__Empty
-    lambda 9 In_ConnectC2 = Out_C1_ConnectionClosed__Empty
-    lambda 9 In_ConnectC1WithWill = Out_C1_ConnAck__Empty
-    lambda 9 In_ConnectC1WithWillRetain = Out_C1_ConnAck__Empty
-    lambda 9 In_DeleteRetainedC1 = Out_C1_ConnectionClosed__Empty
-    lambda 9 In_DeleteRetainedC2 = Out_C1_ConnectionClosed__c2_PubAck
-    lambda 9 In_SubscribeC2 = Out_C1_ConnectionClosed__c2_SubAck__Pub_c2_my_topic_bye
-    lambda 9 In_UnSubScribeC2 = Out_C1_ConnectionClosed__c2_UnSubAck
-    lambda 9 In_DisconnectTCPC1 = Out_C1_ConnectionClosed__Empty
-    lambda 9 In_DisconnectC1 = Out_C1_ConnectionClosed__Empty
-    lambda 8 In_ConnectC2 = Out_Empty__Empty
-    lambda 8 In_ConnectC1WithWill = Out_Empty__Empty
-    lambda 8 In_ConnectC1WithWillRetain = Out_Empty__Empty
-    lambda 8 In_DeleteRetainedC1 = Out_C1_PubAck__Pub_c2_my_topic
-    lambda 8 In_DeleteRetainedC2 = Out_Empty__Pub_c2_my_topic____c2_PubAck
-    lambda 8 In_SubscribeC2 = Out_Empty__c2_SubAck
-    lambda 8 In_UnSubScribeC2 = Out_Empty__c2_UnSubAck
-    lambda 8 In_DisconnectTCPC1 = Out_C1_ConnectionClosed__Pub_c2_my_topic_bye
-    lambda 8 In_DisconnectC1 = Out_C1_ConnectionClosed__Empty
-    lambda 5 In_ConnectC2 = Out_Empty__Empty
-    lambda 5 In_ConnectC1WithWill = Out_Empty__Empty
-    lambda 5 In_ConnectC1WithWillRetain = Out_Empty__Empty
-    lambda 5 In_DeleteRetainedC1 = Out_C1_PubAck__Pub_c2_my_topic
-    lambda 5 In_DeleteRetainedC2 = Out_Empty__Pub_c2_my_topic____c2_PubAck
-    lambda 5 In_SubscribeC2 = Out_Empty__c2_SubAck
-    lambda 5 In_UnSubScribeC2 = Out_Empty__c2_UnSubAck
-    lambda 5 In_DisconnectTCPC1 = Out_C1_ConnectionClosed__Pub_c2_my_topic_bye
-    lambda 5 In_DisconnectC1 = Out_C1_ConnectionClosed__Empty
-    lambda 7 In_ConnectC2 = Out_C1_ConnectionClosed__Empty
-    lambda 7 In_ConnectC1WithWill = Out_C1_ConnAck__Empty
-    lambda 7 In_ConnectC1WithWillRetain = Out_C1_ConnAck__Empty
-    lambda 7 In_DeleteRetainedC1 = Out_C1_ConnectionClosed__Empty
-    lambda 7 In_DeleteRetainedC2 = Out_C1_ConnectionClosed__Pub_c2_my_topic____c2_PubAck
-    lambda 7 In_SubscribeC2 = Out_C1_ConnectionClosed__c2_SubAck
-    lambda 7 In_UnSubScribeC2 = Out_C1_ConnectionClosed__c2_UnSubAck
-    lambda 7 In_DisconnectTCPC1 = Out_C1_ConnectionClosed__Empty
-    lambda 7 In_DisconnectC1 = Out_C1_ConnectionClosed__Empty
-    lambda 12 In_ConnectC2 = Out_C1_ConnectionClosed__Empty
-    lambda 12 In_ConnectC1WithWill = Out_C1_ConnAck__Empty
-    lambda 12 In_ConnectC1WithWillRetain = Out_C1_ConnAck__Empty
-    lambda 12 In_DeleteRetainedC1 = Out_C1_ConnectionClosed__Empty
-    lambda 12 In_DeleteRetainedC2 = Out_C1_ConnectionClosed__Pub_c2_my_topic____c2_PubAck
-    lambda 12 In_SubscribeC2 = Out_C1_ConnectionClosed__c2_SubAck__Pub_c2_my_topic_bye
-    lambda 12 In_UnSubScribeC2 = Out_C1_ConnectionClosed__c2_UnSubAck
-    lambda 12 In_DisconnectTCPC1 = Out_C1_ConnectionClosed__Empty
-    lambda 12 In_DisconnectC1 = Out_C1_ConnectionClosed__Empty
-    lambda 3 In_ConnectC2 = Out_Empty__c2_ConnAck
-    lambda 3 In_ConnectC1WithWill = Out_Empty__c2_ConnectionClosed
-    lambda 3 In_ConnectC1WithWillRetain = Out_Empty__c2_ConnectionClosed
-    lambda 3 In_DeleteRetainedC1 = Out_C1_PubAck__c2_ConnectionClosed
-    lambda 3 In_DeleteRetainedC2 = Out_Empty__c2_ConnectionClosed
-    lambda 3 In_SubscribeC2 = Out_Empty__c2_ConnectionClosed
-    lambda 3 In_UnSubScribeC2 = Out_Empty__c2_ConnectionClosed
-    lambda 3 In_DisconnectTCPC1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 3 In_DisconnectC1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 14 In_ConnectC2 = Out_C1_ConnectionClosed__c2_ConnAck
-    lambda 14 In_ConnectC1WithWill = Out_C1_ConnAck__c2_ConnectionClosed
-    lambda 14 In_ConnectC1WithWillRetain = Out_C1_ConnAck__c2_ConnectionClosed
-    lambda 14 In_DeleteRetainedC1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 14 In_DeleteRetainedC2 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 14 In_SubscribeC2 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 14 In_UnSubScribeC2 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 14 In_DisconnectTCPC1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 14 In_DisconnectC1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 13 In_ConnectC2 = Out_Empty__Empty
-    lambda 13 In_ConnectC1WithWill = Out_Empty__Empty
-    lambda 13 In_ConnectC1WithWillRetain = Out_Empty__Empty
-    lambda 13 In_DeleteRetainedC1 = Out_C1_PubAck__Pub_c2_my_topic
-    lambda 13 In_DeleteRetainedC2 = Out_Empty__Pub_c2_my_topic____c2_PubAck
-    lambda 13 In_SubscribeC2 = Out_Empty__c2_SubAck__Pub_c2_my_topic_bye
-    lambda 13 In_UnSubScribeC2 = Out_Empty__c2_UnSubAck
-    lambda 13 In_DisconnectTCPC1 = Out_C1_ConnectionClosed__Pub_c2_my_topic_bye
-    lambda 13 In_DisconnectC1 = Out_C1_ConnectionClosed__Empty
-    lambda 11 In_ConnectC2 = Out_Empty__Empty
-    lambda 11 In_ConnectC1WithWill = Out_Empty__Empty
-    lambda 11 In_ConnectC1WithWillRetain = Out_Empty__Empty
-    lambda 11 In_DeleteRetainedC1 = Out_C1_PubAck__Empty
-    lambda 11 In_DeleteRetainedC2 = Out_Empty__c2_PubAck
-    lambda 11 In_SubscribeC2 = Out_Empty__c2_SubAck__Pub_c2_my_topic_bye
-    lambda 11 In_UnSubScribeC2 = Out_Empty__c2_UnSubAck
-    lambda 11 In_DisconnectTCPC1 = Out_C1_ConnectionClosed__Empty
-    lambda 11 In_DisconnectC1 = Out_C1_ConnectionClosed__Empty
-    lambda 16 In_ConnectC2 = Out_Empty__c2_ConnAck
-    lambda 16 In_ConnectC1WithWill = Out_Empty__c2_ConnectionClosed
-    lambda 16 In_ConnectC1WithWillRetain = Out_Empty__c2_ConnectionClosed
-    lambda 16 In_DeleteRetainedC1 = Out_C1_PubAck__c2_ConnectionClosed
-    lambda 16 In_DeleteRetainedC2 = Out_Empty__c2_ConnectionClosed
-    lambda 16 In_SubscribeC2 = Out_Empty__c2_ConnectionClosed
-    lambda 16 In_UnSubScribeC2 = Out_Empty__c2_ConnectionClosed
-    lambda 16 In_DisconnectTCPC1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 16 In_DisconnectC1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 10 In_ConnectC2 = Out_Empty__Empty
-    lambda 10 In_ConnectC1WithWill = Out_Empty__Empty
-    lambda 10 In_ConnectC1WithWillRetain = Out_Empty__Empty
-    lambda 10 In_DeleteRetainedC1 = Out_C1_PubAck__Empty
-    lambda 10 In_DeleteRetainedC2 = Out_Empty__c2_PubAck
-    lambda 10 In_SubscribeC2 = Out_Empty__c2_SubAck__Pub_c2_my_topic_bye
-    lambda 10 In_UnSubScribeC2 = Out_Empty__c2_UnSubAck
-    lambda 10 In_DisconnectTCPC1 = Out_C1_ConnectionClosed__Empty
-    lambda 10 In_DisconnectC1 = Out_C1_ConnectionClosed__Empty
-    lambda 15 In_ConnectC2 = Out_Empty__c2_ConnAck
-    lambda 15 In_ConnectC1WithWill = Out_Empty__c2_ConnectionClosed
-    lambda 15 In_ConnectC1WithWillRetain = Out_Empty__c2_ConnectionClosed
-    lambda 15 In_DeleteRetainedC1 = Out_C1_PubAck__c2_ConnectionClosed
-    lambda 15 In_DeleteRetainedC2 = Out_Empty__c2_ConnectionClosed
-    lambda 15 In_SubscribeC2 = Out_Empty__c2_ConnectionClosed
-    lambda 15 In_UnSubScribeC2 = Out_Empty__c2_ConnectionClosed
-    lambda 15 In_DisconnectTCPC1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 15 In_DisconnectC1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda _ _ = error "haal-gen: undefined transition"
+    deltaTable =
+        "\1\2\3\0\0\0\0\0\0\
+        \\1\4\6\1\1\7\1\1\1\
+        \\4\2\2\2\2\2\2\0\0\
+        \\6\3\3\3\3\3\3\14\0\
+        \\4\4\4\4\4\5\4\1\1\
+        \\5\5\5\5\5\5\4\7\7\
+        \\6\6\6\6\6\8\6\9\1\
+        \\7\5\8\7\7\7\1\7\7\
+        \\8\8\8\8\8\8\6\12\7\
+        \\9\10\11\9\1\12\9\9\9\
+        \\10\10\10\4\4\13\10\9\9\
+        \\11\11\11\6\6\13\11\9\9\
+        \\12\13\13\12\7\12\9\12\12\
+        \\13\13\13\5\5\13\10\12\12\
+        \\9\15\16\14\14\14\14\14\14\
+        \\10\15\15\2\15\15\15\14\14\
+        \\11\16\16\3\16\16\16\14\14"
+    lambdaTable =
+        "\0\1\1\2\2\2\2\2\2\
+        \\11\12\12\11\13\14\15\11\11\
+        \\3\4\4\5\4\4\4\2\2\
+        \\3\4\4\5\4\4\4\2\2\
+        \\6\6\6\7\8\9\10\11\11\
+        \\6\6\6\17\18\9\10\19\11\
+        \\6\6\6\7\8\9\10\11\11\
+        \\11\12\12\11\20\14\15\11\11\
+        \\6\6\6\17\18\9\10\19\11\
+        \\11\12\12\11\13\16\15\11\11\
+        \\6\6\6\7\8\21\10\11\11\
+        \\6\6\6\7\8\21\10\11\11\
+        \\11\12\12\11\20\16\15\11\11\
+        \\6\6\6\17\18\21\10\19\11\
+        \\0\1\1\2\2\2\2\2\2\
+        \\3\4\4\5\4\4\4\2\2\
+        \\3\4\4\5\4\4\4\2\2"
diff --git a/src/Haal/Models/MQTT/MosquittoInvalid.hs b/src/Haal/Models/MQTT/MosquittoInvalid.hs
--- a/src/Haal/Models/MQTT/MosquittoInvalid.hs
+++ b/src/Haal/Models/MQTT/MosquittoInvalid.hs
@@ -5,8 +5,7 @@
     , mosquittoInvalid
     ) where
 
-import qualified Data.Set as Set
-import Haal.Automaton.MealyAutomaton (MealyAutomaton, mkMealyAutomaton)
+import Haal.Automaton.MealyAutomaton (MealyAutomaton, mkMealyAutomatonTable)
 
 data MosquittoInvalidInput
     = In_Connect
@@ -32,74 +31,52 @@
     | Out_Pub_my_topic_messageQos0
     deriving (Show, Eq, Ord, Enum, Bounded)
 
+{- Transitions (state  input -> next state / output):
+    0     In_Connect               -> 1 / Out_ConnAckPacket_false_0
+          In_ConnectNonClean       -> 0 / Out_ConnectionClosed__ConnAckPacket_false_2
+          In_PublishQoS0Dup        -> 0 / Out_ConnectionClosed
+          In_PublishQoSMinus1      -> 0 / Out_ConnectionClosed
+          In_PublishWildCard       -> 0 / Out_ConnectionClosed
+          In_SubscribeWildMatch    -> 0 / Out_ConnectionClosed
+          In_UnSubscribeWildMatch  -> 0 / Out_ConnectionClosed
+          In_Subscribe             -> 0 / Out_ConnectionClosed
+          In_SubscribeMinus1       -> 0 / Out_ConnectionClosed
+          In_UnSubScribe           -> 0 / Out_ConnectionClosed
+          In_Disconnect            -> 0 / Out_ConnectionClosed
+    1     In_Connect               -> 0 / Out_ConnectionClosed
+          In_ConnectNonClean       -> 0 / Out_ConnectionClosed
+          In_PublishQoS0Dup        -> 1 / Out_Empty
+          In_PublishQoSMinus1      -> 0 / Out_ConnectionClosed
+          In_PublishWildCard       -> 0 / Out_ConnectionClosed
+          In_SubscribeWildMatch    -> 1 / Out_SubAck
+          In_UnSubscribeWildMatch  -> 1 / Out_UnSubAck
+          In_Subscribe             -> 2 / Out_SubAck
+          In_SubscribeMinus1       -> 0 / Out_ConnectionClosed
+          In_UnSubScribe           -> 1 / Out_UnSubAck
+          In_Disconnect            -> 0 / Out_ConnectionClosed
+    2     In_Connect               -> 0 / Out_ConnectionClosed
+          In_ConnectNonClean       -> 0 / Out_ConnectionClosed
+          In_PublishQoS0Dup        -> 2 / Out_Pub_my_topic_messageQos0
+          In_PublishQoSMinus1      -> 0 / Out_ConnectionClosed
+          In_PublishWildCard       -> 0 / Out_ConnectionClosed
+          In_SubscribeWildMatch    -> 2 / Out_SubAck
+          In_UnSubscribeWildMatch  -> 2 / Out_UnSubAck
+          In_Subscribe             -> 2 / Out_SubAck
+          In_SubscribeMinus1       -> 0 / Out_ConnectionClosed
+          In_UnSubScribe           -> 1 / Out_UnSubAck
+          In_Disconnect            -> 0 / Out_ConnectionClosed
+-}
 mosquittoInvalid :: MealyAutomaton Int MosquittoInvalidInput MosquittoInvalidOutput
-mosquittoInvalid = mkMealyAutomaton delta lambda (Set.fromList [0..2]) 0
+mosquittoInvalid =
+    case mkMealyAutomatonTable 3 0 deltaTable lambdaTable of
+        Right m -> m
+        Left err -> error ("haal-gen: invalid transition table: " ++ err)
   where
-    delta 0 In_Connect = 1
-    delta 0 In_ConnectNonClean = 0
-    delta 0 In_PublishQoS0Dup = 0
-    delta 0 In_PublishQoSMinus1 = 0
-    delta 0 In_PublishWildCard = 0
-    delta 0 In_SubscribeWildMatch = 0
-    delta 0 In_UnSubscribeWildMatch = 0
-    delta 0 In_Subscribe = 0
-    delta 0 In_SubscribeMinus1 = 0
-    delta 0 In_UnSubScribe = 0
-    delta 0 In_Disconnect = 0
-    delta 1 In_Connect = 0
-    delta 1 In_ConnectNonClean = 0
-    delta 1 In_PublishQoS0Dup = 1
-    delta 1 In_PublishQoSMinus1 = 0
-    delta 1 In_PublishWildCard = 0
-    delta 1 In_SubscribeWildMatch = 1
-    delta 1 In_UnSubscribeWildMatch = 1
-    delta 1 In_Subscribe = 2
-    delta 1 In_SubscribeMinus1 = 0
-    delta 1 In_UnSubScribe = 1
-    delta 1 In_Disconnect = 0
-    delta 2 In_Connect = 0
-    delta 2 In_ConnectNonClean = 0
-    delta 2 In_PublishQoS0Dup = 2
-    delta 2 In_PublishQoSMinus1 = 0
-    delta 2 In_PublishWildCard = 0
-    delta 2 In_SubscribeWildMatch = 2
-    delta 2 In_UnSubscribeWildMatch = 2
-    delta 2 In_Subscribe = 2
-    delta 2 In_SubscribeMinus1 = 0
-    delta 2 In_UnSubScribe = 1
-    delta 2 In_Disconnect = 0
-    delta _ _ = error "haal-gen: undefined transition"
-    lambda 0 In_Connect = Out_ConnAckPacket_false_0
-    lambda 0 In_ConnectNonClean = Out_ConnectionClosed__ConnAckPacket_false_2
-    lambda 0 In_PublishQoS0Dup = Out_ConnectionClosed
-    lambda 0 In_PublishQoSMinus1 = Out_ConnectionClosed
-    lambda 0 In_PublishWildCard = Out_ConnectionClosed
-    lambda 0 In_SubscribeWildMatch = Out_ConnectionClosed
-    lambda 0 In_UnSubscribeWildMatch = Out_ConnectionClosed
-    lambda 0 In_Subscribe = Out_ConnectionClosed
-    lambda 0 In_SubscribeMinus1 = Out_ConnectionClosed
-    lambda 0 In_UnSubScribe = Out_ConnectionClosed
-    lambda 0 In_Disconnect = Out_ConnectionClosed
-    lambda 1 In_Connect = Out_ConnectionClosed
-    lambda 1 In_ConnectNonClean = Out_ConnectionClosed
-    lambda 1 In_PublishQoS0Dup = Out_Empty
-    lambda 1 In_PublishQoSMinus1 = Out_ConnectionClosed
-    lambda 1 In_PublishWildCard = Out_ConnectionClosed
-    lambda 1 In_SubscribeWildMatch = Out_SubAck
-    lambda 1 In_UnSubscribeWildMatch = Out_UnSubAck
-    lambda 1 In_Subscribe = Out_SubAck
-    lambda 1 In_SubscribeMinus1 = Out_ConnectionClosed
-    lambda 1 In_UnSubScribe = Out_UnSubAck
-    lambda 1 In_Disconnect = Out_ConnectionClosed
-    lambda 2 In_Connect = Out_ConnectionClosed
-    lambda 2 In_ConnectNonClean = Out_ConnectionClosed
-    lambda 2 In_PublishQoS0Dup = Out_Pub_my_topic_messageQos0
-    lambda 2 In_PublishQoSMinus1 = Out_ConnectionClosed
-    lambda 2 In_PublishWildCard = Out_ConnectionClosed
-    lambda 2 In_SubscribeWildMatch = Out_SubAck
-    lambda 2 In_UnSubscribeWildMatch = Out_UnSubAck
-    lambda 2 In_Subscribe = Out_SubAck
-    lambda 2 In_SubscribeMinus1 = Out_ConnectionClosed
-    lambda 2 In_UnSubScribe = Out_UnSubAck
-    lambda 2 In_Disconnect = Out_ConnectionClosed
-    lambda _ _ = error "haal-gen: undefined transition"
+    deltaTable =
+        "\1\0\0\0\0\0\0\0\0\0\0\
+        \\0\0\1\0\0\1\1\2\0\1\0\
+        \\0\0\2\0\0\2\2\2\0\1\0"
+    lambdaTable =
+        "\0\1\2\2\2\2\2\2\2\2\2\
+        \\2\2\3\2\2\4\5\4\2\5\2\
+        \\2\2\6\2\2\4\5\4\2\5\2"
diff --git a/src/Haal/Models/MQTT/MosquittoMosquitto.hs b/src/Haal/Models/MQTT/MosquittoMosquitto.hs
--- a/src/Haal/Models/MQTT/MosquittoMosquitto.hs
+++ b/src/Haal/Models/MQTT/MosquittoMosquitto.hs
@@ -5,8 +5,7 @@
     , mosquittoMosquitto
     ) where
 
-import qualified Data.Set as Set
-import Haal.Automaton.MealyAutomaton (MealyAutomaton, mkMealyAutomaton)
+import Haal.Automaton.MealyAutomaton (MealyAutomaton, mkMealyAutomatonTable)
 
 data MosquittoMosquittoInput
     = In_Connect
@@ -28,50 +27,40 @@
     | Out_PublishPacket__PubAckPacket
     deriving (Show, Eq, Ord, Enum, Bounded)
 
+{- Transitions (state  input -> next state / output):
+    0     In_Connect        -> 1 / Out_ConnAckPacket
+          In_Publish        -> 0 / Out_ConnectionClosed
+          In_Subscribe      -> 0 / Out_ConnectionClosed
+          In_UnSubScribe    -> 0 / Out_ConnectionClosed
+          In_Ping           -> 0 / Out_ConnectionClosed
+          In_Disconnect     -> 0 / Out_ConnectionClosed
+          In_DisconnectTCP  -> 0 / Out_ConnectionClosed
+    1     In_Connect        -> 0 / Out_ConnectionClosed
+          In_Publish        -> 1 / Out_PubAckPacket
+          In_Subscribe      -> 2 / Out_SubAckPacket
+          In_UnSubScribe    -> 1 / Out_UnSubAckPacket
+          In_Ping           -> 1 / Out_PingRespPacket
+          In_Disconnect     -> 0 / Out_ConnectionClosed
+          In_DisconnectTCP  -> 0 / Out_ConnectionClosed
+    2     In_Connect        -> 0 / Out_ConnectionClosed
+          In_Publish        -> 2 / Out_PublishPacket__PubAckPacket
+          In_Subscribe      -> 2 / Out_SubAckPacket
+          In_UnSubScribe    -> 1 / Out_UnSubAckPacket
+          In_Ping           -> 2 / Out_PingRespPacket
+          In_Disconnect     -> 0 / Out_ConnectionClosed
+          In_DisconnectTCP  -> 0 / Out_ConnectionClosed
+-}
 mosquittoMosquitto :: MealyAutomaton Int MosquittoMosquittoInput MosquittoMosquittoOutput
-mosquittoMosquitto = mkMealyAutomaton delta lambda (Set.fromList [0..2]) 0
+mosquittoMosquitto =
+    case mkMealyAutomatonTable 3 0 deltaTable lambdaTable of
+        Right m -> m
+        Left err -> error ("haal-gen: invalid transition table: " ++ err)
   where
-    delta 0 In_Connect = 1
-    delta 0 In_Publish = 0
-    delta 0 In_Subscribe = 0
-    delta 0 In_UnSubScribe = 0
-    delta 0 In_Ping = 0
-    delta 0 In_Disconnect = 0
-    delta 0 In_DisconnectTCP = 0
-    delta 1 In_Connect = 0
-    delta 1 In_Publish = 1
-    delta 1 In_Subscribe = 2
-    delta 1 In_UnSubScribe = 1
-    delta 1 In_Ping = 1
-    delta 1 In_Disconnect = 0
-    delta 1 In_DisconnectTCP = 0
-    delta 2 In_Connect = 0
-    delta 2 In_Publish = 2
-    delta 2 In_Subscribe = 2
-    delta 2 In_UnSubScribe = 1
-    delta 2 In_Ping = 2
-    delta 2 In_Disconnect = 0
-    delta 2 In_DisconnectTCP = 0
-    delta _ _ = error "haal-gen: undefined transition"
-    lambda 0 In_Connect = Out_ConnAckPacket
-    lambda 0 In_Publish = Out_ConnectionClosed
-    lambda 0 In_Subscribe = Out_ConnectionClosed
-    lambda 0 In_UnSubScribe = Out_ConnectionClosed
-    lambda 0 In_Ping = Out_ConnectionClosed
-    lambda 0 In_Disconnect = Out_ConnectionClosed
-    lambda 0 In_DisconnectTCP = Out_ConnectionClosed
-    lambda 1 In_Connect = Out_ConnectionClosed
-    lambda 1 In_Publish = Out_PubAckPacket
-    lambda 1 In_Subscribe = Out_SubAckPacket
-    lambda 1 In_UnSubScribe = Out_UnSubAckPacket
-    lambda 1 In_Ping = Out_PingRespPacket
-    lambda 1 In_Disconnect = Out_ConnectionClosed
-    lambda 1 In_DisconnectTCP = Out_ConnectionClosed
-    lambda 2 In_Connect = Out_ConnectionClosed
-    lambda 2 In_Publish = Out_PublishPacket__PubAckPacket
-    lambda 2 In_Subscribe = Out_SubAckPacket
-    lambda 2 In_UnSubScribe = Out_UnSubAckPacket
-    lambda 2 In_Ping = Out_PingRespPacket
-    lambda 2 In_Disconnect = Out_ConnectionClosed
-    lambda 2 In_DisconnectTCP = Out_ConnectionClosed
-    lambda _ _ = error "haal-gen: undefined transition"
+    deltaTable =
+        "\1\0\0\0\0\0\0\
+        \\0\1\2\1\1\0\0\
+        \\0\2\2\1\2\0\0"
+    lambdaTable =
+        "\0\1\1\1\1\1\1\
+        \\1\2\3\4\5\1\1\
+        \\1\6\3\4\5\1\1"
diff --git a/src/Haal/Models/MQTT/MosquittoNonClean.hs b/src/Haal/Models/MQTT/MosquittoNonClean.hs
--- a/src/Haal/Models/MQTT/MosquittoNonClean.hs
+++ b/src/Haal/Models/MQTT/MosquittoNonClean.hs
@@ -5,8 +5,7 @@
     , mosquittoNonClean
     ) where
 
-import qualified Data.Set as Set
-import Haal.Automaton.MealyAutomaton (MealyAutomaton, mkMealyAutomaton)
+import Haal.Automaton.MealyAutomaton (MealyAutomaton, mkMealyAutomatonTable)
 
 data MosquittoNonCleanInput
     = In_ConnectC2
@@ -38,152 +37,109 @@
     | Out_C1_ConnectionClosed__c2_Pub_my_topic_messageQos1_1___c2_Pub_my_topic_messageQos1_1___c2_ConnAck
     deriving (Show, Eq, Ord, Enum, Bounded)
 
+{- Transitions (state  input -> next state / output):
+    0     In_ConnectC2        -> 1 / Out_C1_ConnectionClosed__c2_ConnAck
+          In_ConnectC1        -> 2 / Out_C1_ConnAck__c2_ConnectionClosed
+          In_PublishQoS1C1    -> 0 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_SubscribeC2QoS1  -> 0 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_UnSubscribeC2    -> 0 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_DisconnectC2     -> 0 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+    1     In_ConnectC2        -> 0 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_ConnectC1        -> 3 / Out_C1_ConnAck__Empty
+          In_PublishQoS1C1    -> 1 / Out_C1_ConnectionClosed__Empty
+          In_SubscribeC2QoS1  -> 4 / Out_C1_ConnectionClosed__c2_SubAck
+          In_UnSubscribeC2    -> 1 / Out_C1_ConnectionClosed__c2_UnSubAck
+          In_DisconnectC2     -> 0 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+    2     In_ConnectC2        -> 3 / Out_Empty__c2_ConnAck
+          In_ConnectC1        -> 0 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_PublishQoS1C1    -> 2 / Out_C1_PubAck__c2_ConnectionClosed
+          In_SubscribeC2QoS1  -> 2 / Out_Empty__c2_ConnectionClosed
+          In_UnSubscribeC2    -> 2 / Out_Empty__c2_ConnectionClosed
+          In_DisconnectC2     -> 2 / Out_Empty__c2_ConnectionClosed
+    3     In_ConnectC2        -> 2 / Out_Empty__c2_ConnectionClosed
+          In_ConnectC1        -> 1 / Out_C1_ConnectionClosed__Empty
+          In_PublishQoS1C1    -> 3 / Out_C1_PubAck__Empty
+          In_SubscribeC2QoS1  -> 5 / Out_Empty__c2_SubAck
+          In_UnSubscribeC2    -> 3 / Out_Empty__c2_UnSubAck
+          In_DisconnectC2     -> 2 / Out_Empty__c2_ConnectionClosed
+    4     In_ConnectC2        -> 7 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_ConnectC1        -> 5 / Out_C1_ConnAck__Empty
+          In_PublishQoS1C1    -> 4 / Out_C1_ConnectionClosed__Empty
+          In_SubscribeC2QoS1  -> 4 / Out_C1_ConnectionClosed__c2_SubAck
+          In_UnSubscribeC2    -> 1 / Out_C1_ConnectionClosed__c2_UnSubAck
+          In_DisconnectC2     -> 7 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+    5     In_ConnectC2        -> 6 / Out_Empty__c2_ConnectionClosed
+          In_ConnectC1        -> 4 / Out_C1_ConnectionClosed__Empty
+          In_PublishQoS1C1    -> 5 / Out_C1_PubAck__c2_Pub_my_topic_messageQos1_1
+          In_SubscribeC2QoS1  -> 5 / Out_Empty__c2_SubAck
+          In_UnSubscribeC2    -> 3 / Out_Empty__c2_UnSubAck
+          In_DisconnectC2     -> 6 / Out_Empty__c2_ConnectionClosed
+    6     In_ConnectC2        -> 5 / Out_Empty__c2_ConnAck
+          In_ConnectC1        -> 7 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_PublishQoS1C1    -> 8 / Out_C1_PubAck__c2_ConnectionClosed
+          In_SubscribeC2QoS1  -> 6 / Out_Empty__c2_ConnectionClosed
+          In_UnSubscribeC2    -> 6 / Out_Empty__c2_ConnectionClosed
+          In_DisconnectC2     -> 6 / Out_Empty__c2_ConnectionClosed
+    7     In_ConnectC2        -> 4 / Out_C1_ConnectionClosed__c2_ConnAck
+          In_ConnectC1        -> 6 / Out_C1_ConnAck__c2_ConnectionClosed
+          In_PublishQoS1C1    -> 7 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_SubscribeC2QoS1  -> 7 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_UnSubscribeC2    -> 7 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_DisconnectC2     -> 7 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+    8     In_ConnectC2        -> 5 / Out_Empty__c2_Pub_my_topic_messageQos1_1___c2_ConnAck
+          In_ConnectC1        -> 9 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_PublishQoS1C1    -> 10 / Out_C1_PubAck__c2_ConnectionClosed
+          In_SubscribeC2QoS1  -> 8 / Out_Empty__c2_ConnectionClosed
+          In_UnSubscribeC2    -> 8 / Out_Empty__c2_ConnectionClosed
+          In_DisconnectC2     -> 8 / Out_Empty__c2_ConnectionClosed
+    9     In_ConnectC2        -> 4 / Out_C1_ConnectionClosed__c2_Pub_my_topic_messageQos1_1___c2_ConnAck
+          In_ConnectC1        -> 8 / Out_C1_ConnAck__c2_ConnectionClosed
+          In_PublishQoS1C1    -> 9 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_SubscribeC2QoS1  -> 9 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_UnSubscribeC2    -> 9 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_DisconnectC2     -> 9 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+    10    In_ConnectC2        -> 5 / Out_Empty__c2_Pub_my_topic_messageQos1_1___c2_Pub_my_topic_messageQos1_1___c2_ConnAck
+          In_ConnectC1        -> 11 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_PublishQoS1C1    -> 10 / Out_C1_PubAck__c2_ConnectionClosed
+          In_SubscribeC2QoS1  -> 10 / Out_Empty__c2_ConnectionClosed
+          In_UnSubscribeC2    -> 10 / Out_Empty__c2_ConnectionClosed
+          In_DisconnectC2     -> 10 / Out_Empty__c2_ConnectionClosed
+    11    In_ConnectC2        -> 4 / Out_C1_ConnectionClosed__c2_Pub_my_topic_messageQos1_1___c2_Pub_my_topic_messageQos1_1___c2_ConnAck
+          In_ConnectC1        -> 10 / Out_C1_ConnAck__c2_ConnectionClosed
+          In_PublishQoS1C1    -> 11 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_SubscribeC2QoS1  -> 11 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_UnSubscribeC2    -> 11 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_DisconnectC2     -> 11 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+-}
 mosquittoNonClean :: MealyAutomaton Int MosquittoNonCleanInput MosquittoNonCleanOutput
-mosquittoNonClean = mkMealyAutomaton delta lambda (Set.fromList [0..11]) 0
+mosquittoNonClean =
+    case mkMealyAutomatonTable 12 0 deltaTable lambdaTable of
+        Right m -> m
+        Left err -> error ("haal-gen: invalid transition table: " ++ err)
   where
-    delta 0 In_ConnectC2 = 1
-    delta 0 In_ConnectC1 = 2
-    delta 0 In_PublishQoS1C1 = 0
-    delta 0 In_SubscribeC2QoS1 = 0
-    delta 0 In_UnSubscribeC2 = 0
-    delta 0 In_DisconnectC2 = 0
-    delta 2 In_ConnectC2 = 3
-    delta 2 In_ConnectC1 = 0
-    delta 2 In_PublishQoS1C1 = 2
-    delta 2 In_SubscribeC2QoS1 = 2
-    delta 2 In_UnSubscribeC2 = 2
-    delta 2 In_DisconnectC2 = 2
-    delta 1 In_ConnectC2 = 0
-    delta 1 In_ConnectC1 = 3
-    delta 1 In_PublishQoS1C1 = 1
-    delta 1 In_SubscribeC2QoS1 = 4
-    delta 1 In_UnSubscribeC2 = 1
-    delta 1 In_DisconnectC2 = 0
-    delta 3 In_ConnectC2 = 2
-    delta 3 In_ConnectC1 = 1
-    delta 3 In_PublishQoS1C1 = 3
-    delta 3 In_SubscribeC2QoS1 = 5
-    delta 3 In_UnSubscribeC2 = 3
-    delta 3 In_DisconnectC2 = 2
-    delta 5 In_ConnectC2 = 6
-    delta 5 In_ConnectC1 = 4
-    delta 5 In_PublishQoS1C1 = 5
-    delta 5 In_SubscribeC2QoS1 = 5
-    delta 5 In_UnSubscribeC2 = 3
-    delta 5 In_DisconnectC2 = 6
-    delta 6 In_ConnectC2 = 5
-    delta 6 In_ConnectC1 = 7
-    delta 6 In_PublishQoS1C1 = 8
-    delta 6 In_SubscribeC2QoS1 = 6
-    delta 6 In_UnSubscribeC2 = 6
-    delta 6 In_DisconnectC2 = 6
-    delta 8 In_ConnectC2 = 5
-    delta 8 In_ConnectC1 = 9
-    delta 8 In_PublishQoS1C1 = 10
-    delta 8 In_SubscribeC2QoS1 = 8
-    delta 8 In_UnSubscribeC2 = 8
-    delta 8 In_DisconnectC2 = 8
-    delta 9 In_ConnectC2 = 4
-    delta 9 In_ConnectC1 = 8
-    delta 9 In_PublishQoS1C1 = 9
-    delta 9 In_SubscribeC2QoS1 = 9
-    delta 9 In_UnSubscribeC2 = 9
-    delta 9 In_DisconnectC2 = 9
-    delta 10 In_ConnectC2 = 5
-    delta 10 In_ConnectC1 = 11
-    delta 10 In_PublishQoS1C1 = 10
-    delta 10 In_SubscribeC2QoS1 = 10
-    delta 10 In_UnSubscribeC2 = 10
-    delta 10 In_DisconnectC2 = 10
-    delta 11 In_ConnectC2 = 4
-    delta 11 In_ConnectC1 = 10
-    delta 11 In_PublishQoS1C1 = 11
-    delta 11 In_SubscribeC2QoS1 = 11
-    delta 11 In_UnSubscribeC2 = 11
-    delta 11 In_DisconnectC2 = 11
-    delta 7 In_ConnectC2 = 4
-    delta 7 In_ConnectC1 = 6
-    delta 7 In_PublishQoS1C1 = 7
-    delta 7 In_SubscribeC2QoS1 = 7
-    delta 7 In_UnSubscribeC2 = 7
-    delta 7 In_DisconnectC2 = 7
-    delta 4 In_ConnectC2 = 7
-    delta 4 In_ConnectC1 = 5
-    delta 4 In_PublishQoS1C1 = 4
-    delta 4 In_SubscribeC2QoS1 = 4
-    delta 4 In_UnSubscribeC2 = 1
-    delta 4 In_DisconnectC2 = 7
-    delta _ _ = error "haal-gen: undefined transition"
-    lambda 0 In_ConnectC2 = Out_C1_ConnectionClosed__c2_ConnAck
-    lambda 0 In_ConnectC1 = Out_C1_ConnAck__c2_ConnectionClosed
-    lambda 0 In_PublishQoS1C1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 0 In_SubscribeC2QoS1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 0 In_UnSubscribeC2 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 0 In_DisconnectC2 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 2 In_ConnectC2 = Out_Empty__c2_ConnAck
-    lambda 2 In_ConnectC1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 2 In_PublishQoS1C1 = Out_C1_PubAck__c2_ConnectionClosed
-    lambda 2 In_SubscribeC2QoS1 = Out_Empty__c2_ConnectionClosed
-    lambda 2 In_UnSubscribeC2 = Out_Empty__c2_ConnectionClosed
-    lambda 2 In_DisconnectC2 = Out_Empty__c2_ConnectionClosed
-    lambda 1 In_ConnectC2 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 1 In_ConnectC1 = Out_C1_ConnAck__Empty
-    lambda 1 In_PublishQoS1C1 = Out_C1_ConnectionClosed__Empty
-    lambda 1 In_SubscribeC2QoS1 = Out_C1_ConnectionClosed__c2_SubAck
-    lambda 1 In_UnSubscribeC2 = Out_C1_ConnectionClosed__c2_UnSubAck
-    lambda 1 In_DisconnectC2 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 3 In_ConnectC2 = Out_Empty__c2_ConnectionClosed
-    lambda 3 In_ConnectC1 = Out_C1_ConnectionClosed__Empty
-    lambda 3 In_PublishQoS1C1 = Out_C1_PubAck__Empty
-    lambda 3 In_SubscribeC2QoS1 = Out_Empty__c2_SubAck
-    lambda 3 In_UnSubscribeC2 = Out_Empty__c2_UnSubAck
-    lambda 3 In_DisconnectC2 = Out_Empty__c2_ConnectionClosed
-    lambda 5 In_ConnectC2 = Out_Empty__c2_ConnectionClosed
-    lambda 5 In_ConnectC1 = Out_C1_ConnectionClosed__Empty
-    lambda 5 In_PublishQoS1C1 = Out_C1_PubAck__c2_Pub_my_topic_messageQos1_1
-    lambda 5 In_SubscribeC2QoS1 = Out_Empty__c2_SubAck
-    lambda 5 In_UnSubscribeC2 = Out_Empty__c2_UnSubAck
-    lambda 5 In_DisconnectC2 = Out_Empty__c2_ConnectionClosed
-    lambda 6 In_ConnectC2 = Out_Empty__c2_ConnAck
-    lambda 6 In_ConnectC1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 6 In_PublishQoS1C1 = Out_C1_PubAck__c2_ConnectionClosed
-    lambda 6 In_SubscribeC2QoS1 = Out_Empty__c2_ConnectionClosed
-    lambda 6 In_UnSubscribeC2 = Out_Empty__c2_ConnectionClosed
-    lambda 6 In_DisconnectC2 = Out_Empty__c2_ConnectionClosed
-    lambda 8 In_ConnectC2 = Out_Empty__c2_Pub_my_topic_messageQos1_1___c2_ConnAck
-    lambda 8 In_ConnectC1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 8 In_PublishQoS1C1 = Out_C1_PubAck__c2_ConnectionClosed
-    lambda 8 In_SubscribeC2QoS1 = Out_Empty__c2_ConnectionClosed
-    lambda 8 In_UnSubscribeC2 = Out_Empty__c2_ConnectionClosed
-    lambda 8 In_DisconnectC2 = Out_Empty__c2_ConnectionClosed
-    lambda 9 In_ConnectC2 = Out_C1_ConnectionClosed__c2_Pub_my_topic_messageQos1_1___c2_ConnAck
-    lambda 9 In_ConnectC1 = Out_C1_ConnAck__c2_ConnectionClosed
-    lambda 9 In_PublishQoS1C1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 9 In_SubscribeC2QoS1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 9 In_UnSubscribeC2 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 9 In_DisconnectC2 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 10 In_ConnectC2 = Out_Empty__c2_Pub_my_topic_messageQos1_1___c2_Pub_my_topic_messageQos1_1___c2_ConnAck
-    lambda 10 In_ConnectC1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 10 In_PublishQoS1C1 = Out_C1_PubAck__c2_ConnectionClosed
-    lambda 10 In_SubscribeC2QoS1 = Out_Empty__c2_ConnectionClosed
-    lambda 10 In_UnSubscribeC2 = Out_Empty__c2_ConnectionClosed
-    lambda 10 In_DisconnectC2 = Out_Empty__c2_ConnectionClosed
-    lambda 11 In_ConnectC2 = Out_C1_ConnectionClosed__c2_Pub_my_topic_messageQos1_1___c2_Pub_my_topic_messageQos1_1___c2_ConnAck
-    lambda 11 In_ConnectC1 = Out_C1_ConnAck__c2_ConnectionClosed
-    lambda 11 In_PublishQoS1C1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 11 In_SubscribeC2QoS1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 11 In_UnSubscribeC2 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 11 In_DisconnectC2 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 7 In_ConnectC2 = Out_C1_ConnectionClosed__c2_ConnAck
-    lambda 7 In_ConnectC1 = Out_C1_ConnAck__c2_ConnectionClosed
-    lambda 7 In_PublishQoS1C1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 7 In_SubscribeC2QoS1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 7 In_UnSubscribeC2 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 7 In_DisconnectC2 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 4 In_ConnectC2 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 4 In_ConnectC1 = Out_C1_ConnAck__Empty
-    lambda 4 In_PublishQoS1C1 = Out_C1_ConnectionClosed__Empty
-    lambda 4 In_SubscribeC2QoS1 = Out_C1_ConnectionClosed__c2_SubAck
-    lambda 4 In_UnSubscribeC2 = Out_C1_ConnectionClosed__c2_UnSubAck
-    lambda 4 In_DisconnectC2 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda _ _ = error "haal-gen: undefined transition"
+    deltaTable =
+        "\1\2\0\0\0\0\
+        \\0\3\1\4\1\0\
+        \\3\0\2\2\2\2\
+        \\2\1\3\5\3\2\
+        \\7\5\4\4\1\7\
+        \\6\4\5\5\3\6\
+        \\5\7\8\6\6\6\
+        \\4\6\7\7\7\7\
+        \\5\9\10\8\8\8\
+        \\4\8\9\9\9\9\
+        \\5\11\10\10\10\10\
+        \\4\10\11\11\11\11"
+    lambdaTable =
+        "\0\1\2\2\2\2\
+        \\2\6\7\8\9\2\
+        \\3\2\4\5\5\5\
+        \\5\7\10\11\12\5\
+        \\2\6\7\8\9\2\
+        \\5\7\13\11\12\5\
+        \\3\2\4\5\5\5\
+        \\0\1\2\2\2\2\
+        \\14\2\4\5\5\5\
+        \\15\1\2\2\2\2\
+        \\16\2\4\5\5\5\
+        \\17\1\2\2\2\2"
diff --git a/src/Haal/Models/MQTT/MosquittoSingleClient.hs b/src/Haal/Models/MQTT/MosquittoSingleClient.hs
--- a/src/Haal/Models/MQTT/MosquittoSingleClient.hs
+++ b/src/Haal/Models/MQTT/MosquittoSingleClient.hs
@@ -5,8 +5,7 @@
     , mosquittoSingleClient
     ) where
 
-import qualified Data.Set as Set
-import Haal.Automaton.MealyAutomaton (MealyAutomaton, mkMealyAutomaton)
+import Haal.Automaton.MealyAutomaton (MealyAutomaton, mkMealyAutomatonTable)
 
 data MosquittoSingleClientInput
     = In_Connect
@@ -36,228 +35,143 @@
     | Out_Pub_my_topic_retained____PubAck
     deriving (Show, Eq, Ord, Enum, Bounded)
 
+{- Transitions (state  input -> next state / output):
+    0     In_Connect              -> 1 / Out_ConnAck
+          In_PublishQoS0          -> 0 / Out_ConnectionClosed
+          In_PublishQoS1          -> 0 / Out_ConnectionClosed
+          In_PublishRetain        -> 0 / Out_ConnectionClosed
+          In_DeleteRetained       -> 0 / Out_ConnectionClosed
+          In_Subscribe            -> 0 / Out_ConnectionClosed
+          In_UnSubScribe          -> 0 / Out_ConnectionClosed
+          In_SubscribeRetained    -> 0 / Out_ConnectionClosed
+          In_UnSubScribeRetained  -> 0 / Out_ConnectionClosed
+          In_Disconnect           -> 0 / Out_ConnectionClosed
+          In_DisconnectTCP        -> 0 / Out_ConnectionClosed
+    1     In_Connect              -> 2 / Out_ConnectionClosed
+          In_PublishQoS0          -> 1 / Out_Empty
+          In_PublishQoS1          -> 1 / Out_PubAck
+          In_PublishRetain        -> 3 / Out_PubAck
+          In_DeleteRetained       -> 1 / Out_PubAck
+          In_Subscribe            -> 4 / Out_SubAck
+          In_UnSubScribe          -> 1 / Out_UnSubAck
+          In_SubscribeRetained    -> 5 / Out_SubAck
+          In_UnSubScribeRetained  -> 1 / Out_UnSubAck
+          In_Disconnect           -> 2 / Out_ConnectionClosed
+          In_DisconnectTCP        -> 2 / Out_ConnectionClosed
+    2     In_Connect              -> 2 / Out_ConnectionClosed
+          In_PublishQoS0          -> 2 / Out_ConnectionClosed
+          In_PublishQoS1          -> 2 / Out_ConnectionClosed
+          In_PublishRetain        -> 2 / Out_ConnectionClosed
+          In_DeleteRetained       -> 2 / Out_ConnectionClosed
+          In_Subscribe            -> 2 / Out_ConnectionClosed
+          In_UnSubScribe          -> 2 / Out_ConnectionClosed
+          In_SubscribeRetained    -> 2 / Out_ConnectionClosed
+          In_UnSubScribeRetained  -> 2 / Out_ConnectionClosed
+          In_Disconnect           -> 2 / Out_ConnectionClosed
+          In_DisconnectTCP        -> 2 / Out_ConnectionClosed
+    3     In_Connect              -> 2 / Out_ConnectionClosed
+          In_PublishQoS0          -> 3 / Out_Empty
+          In_PublishQoS1          -> 3 / Out_PubAck
+          In_PublishRetain        -> 3 / Out_PubAck
+          In_DeleteRetained       -> 1 / Out_PubAck
+          In_Subscribe            -> 6 / Out_SubAck
+          In_UnSubScribe          -> 3 / Out_UnSubAck
+          In_SubscribeRetained    -> 8 / Out_SubAck__Pub_my_topic_retained_retained_message
+          In_UnSubScribeRetained  -> 3 / Out_UnSubAck
+          In_Disconnect           -> 2 / Out_ConnectionClosed
+          In_DisconnectTCP        -> 2 / Out_ConnectionClosed
+    4     In_Connect              -> 2 / Out_ConnectionClosed
+          In_PublishQoS0          -> 4 / Out_Pub_my_topic_messageQos0
+          In_PublishQoS1          -> 4 / Out_Pub_my_topic_messageQos1___PubAck
+          In_PublishRetain        -> 6 / Out_PubAck
+          In_DeleteRetained       -> 4 / Out_PubAck
+          In_Subscribe            -> 4 / Out_SubAck
+          In_UnSubScribe          -> 1 / Out_UnSubAck
+          In_SubscribeRetained    -> 7 / Out_SubAck
+          In_UnSubScribeRetained  -> 4 / Out_UnSubAck
+          In_Disconnect           -> 2 / Out_ConnectionClosed
+          In_DisconnectTCP        -> 2 / Out_ConnectionClosed
+    5     In_Connect              -> 2 / Out_ConnectionClosed
+          In_PublishQoS0          -> 5 / Out_Empty
+          In_PublishQoS1          -> 5 / Out_PubAck
+          In_PublishRetain        -> 8 / Out_Pub_my_topic_retained_retained_message___PubAck
+          In_DeleteRetained       -> 5 / Out_Pub_my_topic_retained____PubAck
+          In_Subscribe            -> 7 / Out_SubAck
+          In_UnSubScribe          -> 5 / Out_UnSubAck
+          In_SubscribeRetained    -> 5 / Out_SubAck
+          In_UnSubScribeRetained  -> 1 / Out_UnSubAck
+          In_Disconnect           -> 2 / Out_ConnectionClosed
+          In_DisconnectTCP        -> 2 / Out_ConnectionClosed
+    6     In_Connect              -> 2 / Out_ConnectionClosed
+          In_PublishQoS0          -> 6 / Out_Pub_my_topic_messageQos0
+          In_PublishQoS1          -> 6 / Out_Pub_my_topic_messageQos1___PubAck
+          In_PublishRetain        -> 6 / Out_PubAck
+          In_DeleteRetained       -> 4 / Out_PubAck
+          In_Subscribe            -> 6 / Out_SubAck
+          In_UnSubScribe          -> 3 / Out_UnSubAck
+          In_SubscribeRetained    -> 9 / Out_SubAck__Pub_my_topic_retained_retained_message
+          In_UnSubScribeRetained  -> 6 / Out_UnSubAck
+          In_Disconnect           -> 2 / Out_ConnectionClosed
+          In_DisconnectTCP        -> 2 / Out_ConnectionClosed
+    7     In_Connect              -> 2 / Out_ConnectionClosed
+          In_PublishQoS0          -> 7 / Out_Pub_my_topic_messageQos0
+          In_PublishQoS1          -> 7 / Out_Pub_my_topic_messageQos1___PubAck
+          In_PublishRetain        -> 9 / Out_Pub_my_topic_retained_retained_message___PubAck
+          In_DeleteRetained       -> 7 / Out_Pub_my_topic_retained____PubAck
+          In_Subscribe            -> 7 / Out_SubAck
+          In_UnSubScribe          -> 5 / Out_UnSubAck
+          In_SubscribeRetained    -> 7 / Out_SubAck
+          In_UnSubScribeRetained  -> 4 / Out_UnSubAck
+          In_Disconnect           -> 2 / Out_ConnectionClosed
+          In_DisconnectTCP        -> 2 / Out_ConnectionClosed
+    8     In_Connect              -> 2 / Out_ConnectionClosed
+          In_PublishQoS0          -> 8 / Out_Empty
+          In_PublishQoS1          -> 8 / Out_PubAck
+          In_PublishRetain        -> 8 / Out_Pub_my_topic_retained_retained_message___PubAck
+          In_DeleteRetained       -> 5 / Out_Pub_my_topic_retained____PubAck
+          In_Subscribe            -> 9 / Out_SubAck
+          In_UnSubScribe          -> 8 / Out_UnSubAck
+          In_SubscribeRetained    -> 8 / Out_SubAck__Pub_my_topic_retained_retained_message
+          In_UnSubScribeRetained  -> 3 / Out_UnSubAck
+          In_Disconnect           -> 2 / Out_ConnectionClosed
+          In_DisconnectTCP        -> 2 / Out_ConnectionClosed
+    9     In_Connect              -> 2 / Out_ConnectionClosed
+          In_PublishQoS0          -> 9 / Out_Pub_my_topic_messageQos0
+          In_PublishQoS1          -> 9 / Out_Pub_my_topic_messageQos1___PubAck
+          In_PublishRetain        -> 9 / Out_Pub_my_topic_retained_retained_message___PubAck
+          In_DeleteRetained       -> 7 / Out_Pub_my_topic_retained____PubAck
+          In_Subscribe            -> 9 / Out_SubAck
+          In_UnSubScribe          -> 8 / Out_UnSubAck
+          In_SubscribeRetained    -> 9 / Out_SubAck__Pub_my_topic_retained_retained_message
+          In_UnSubScribeRetained  -> 6 / Out_UnSubAck
+          In_Disconnect           -> 2 / Out_ConnectionClosed
+          In_DisconnectTCP        -> 2 / Out_ConnectionClosed
+-}
 mosquittoSingleClient :: MealyAutomaton Int MosquittoSingleClientInput MosquittoSingleClientOutput
-mosquittoSingleClient = mkMealyAutomaton delta lambda (Set.fromList [0..9]) 0
+mosquittoSingleClient =
+    case mkMealyAutomatonTable 10 0 deltaTable lambdaTable of
+        Right m -> m
+        Left err -> error ("haal-gen: invalid transition table: " ++ err)
   where
-    delta 0 In_Connect = 1
-    delta 0 In_PublishQoS0 = 0
-    delta 0 In_PublishQoS1 = 0
-    delta 0 In_PublishRetain = 0
-    delta 0 In_DeleteRetained = 0
-    delta 0 In_Subscribe = 0
-    delta 0 In_UnSubScribe = 0
-    delta 0 In_SubscribeRetained = 0
-    delta 0 In_UnSubScribeRetained = 0
-    delta 0 In_Disconnect = 0
-    delta 0 In_DisconnectTCP = 0
-    delta 1 In_Connect = 2
-    delta 1 In_PublishQoS0 = 1
-    delta 1 In_PublishQoS1 = 1
-    delta 1 In_PublishRetain = 3
-    delta 1 In_DeleteRetained = 1
-    delta 1 In_Subscribe = 4
-    delta 1 In_UnSubScribe = 1
-    delta 1 In_SubscribeRetained = 5
-    delta 1 In_UnSubScribeRetained = 1
-    delta 1 In_Disconnect = 2
-    delta 1 In_DisconnectTCP = 2
-    delta 2 In_Connect = 2
-    delta 2 In_PublishQoS0 = 2
-    delta 2 In_PublishQoS1 = 2
-    delta 2 In_PublishRetain = 2
-    delta 2 In_DeleteRetained = 2
-    delta 2 In_Subscribe = 2
-    delta 2 In_UnSubScribe = 2
-    delta 2 In_SubscribeRetained = 2
-    delta 2 In_UnSubScribeRetained = 2
-    delta 2 In_Disconnect = 2
-    delta 2 In_DisconnectTCP = 2
-    delta 4 In_Connect = 2
-    delta 4 In_PublishQoS0 = 4
-    delta 4 In_PublishQoS1 = 4
-    delta 4 In_PublishRetain = 6
-    delta 4 In_DeleteRetained = 4
-    delta 4 In_Subscribe = 4
-    delta 4 In_UnSubScribe = 1
-    delta 4 In_SubscribeRetained = 7
-    delta 4 In_UnSubScribeRetained = 4
-    delta 4 In_Disconnect = 2
-    delta 4 In_DisconnectTCP = 2
-    delta 3 In_Connect = 2
-    delta 3 In_PublishQoS0 = 3
-    delta 3 In_PublishQoS1 = 3
-    delta 3 In_PublishRetain = 3
-    delta 3 In_DeleteRetained = 1
-    delta 3 In_Subscribe = 6
-    delta 3 In_UnSubScribe = 3
-    delta 3 In_SubscribeRetained = 8
-    delta 3 In_UnSubScribeRetained = 3
-    delta 3 In_Disconnect = 2
-    delta 3 In_DisconnectTCP = 2
-    delta 5 In_Connect = 2
-    delta 5 In_PublishQoS0 = 5
-    delta 5 In_PublishQoS1 = 5
-    delta 5 In_PublishRetain = 8
-    delta 5 In_DeleteRetained = 5
-    delta 5 In_Subscribe = 7
-    delta 5 In_UnSubScribe = 5
-    delta 5 In_SubscribeRetained = 5
-    delta 5 In_UnSubScribeRetained = 1
-    delta 5 In_Disconnect = 2
-    delta 5 In_DisconnectTCP = 2
-    delta 7 In_Connect = 2
-    delta 7 In_PublishQoS0 = 7
-    delta 7 In_PublishQoS1 = 7
-    delta 7 In_PublishRetain = 9
-    delta 7 In_DeleteRetained = 7
-    delta 7 In_Subscribe = 7
-    delta 7 In_UnSubScribe = 5
-    delta 7 In_SubscribeRetained = 7
-    delta 7 In_UnSubScribeRetained = 4
-    delta 7 In_Disconnect = 2
-    delta 7 In_DisconnectTCP = 2
-    delta 6 In_Connect = 2
-    delta 6 In_PublishQoS0 = 6
-    delta 6 In_PublishQoS1 = 6
-    delta 6 In_PublishRetain = 6
-    delta 6 In_DeleteRetained = 4
-    delta 6 In_Subscribe = 6
-    delta 6 In_UnSubScribe = 3
-    delta 6 In_SubscribeRetained = 9
-    delta 6 In_UnSubScribeRetained = 6
-    delta 6 In_Disconnect = 2
-    delta 6 In_DisconnectTCP = 2
-    delta 8 In_Connect = 2
-    delta 8 In_PublishQoS0 = 8
-    delta 8 In_PublishQoS1 = 8
-    delta 8 In_PublishRetain = 8
-    delta 8 In_DeleteRetained = 5
-    delta 8 In_Subscribe = 9
-    delta 8 In_UnSubScribe = 8
-    delta 8 In_SubscribeRetained = 8
-    delta 8 In_UnSubScribeRetained = 3
-    delta 8 In_Disconnect = 2
-    delta 8 In_DisconnectTCP = 2
-    delta 9 In_Connect = 2
-    delta 9 In_PublishQoS0 = 9
-    delta 9 In_PublishQoS1 = 9
-    delta 9 In_PublishRetain = 9
-    delta 9 In_DeleteRetained = 7
-    delta 9 In_Subscribe = 9
-    delta 9 In_UnSubScribe = 8
-    delta 9 In_SubscribeRetained = 9
-    delta 9 In_UnSubScribeRetained = 6
-    delta 9 In_Disconnect = 2
-    delta 9 In_DisconnectTCP = 2
-    delta _ _ = error "haal-gen: undefined transition"
-    lambda 0 In_Connect = Out_ConnAck
-    lambda 0 In_PublishQoS0 = Out_ConnectionClosed
-    lambda 0 In_PublishQoS1 = Out_ConnectionClosed
-    lambda 0 In_PublishRetain = Out_ConnectionClosed
-    lambda 0 In_DeleteRetained = Out_ConnectionClosed
-    lambda 0 In_Subscribe = Out_ConnectionClosed
-    lambda 0 In_UnSubScribe = Out_ConnectionClosed
-    lambda 0 In_SubscribeRetained = Out_ConnectionClosed
-    lambda 0 In_UnSubScribeRetained = Out_ConnectionClosed
-    lambda 0 In_Disconnect = Out_ConnectionClosed
-    lambda 0 In_DisconnectTCP = Out_ConnectionClosed
-    lambda 1 In_Connect = Out_ConnectionClosed
-    lambda 1 In_PublishQoS0 = Out_Empty
-    lambda 1 In_PublishQoS1 = Out_PubAck
-    lambda 1 In_PublishRetain = Out_PubAck
-    lambda 1 In_DeleteRetained = Out_PubAck
-    lambda 1 In_Subscribe = Out_SubAck
-    lambda 1 In_UnSubScribe = Out_UnSubAck
-    lambda 1 In_SubscribeRetained = Out_SubAck
-    lambda 1 In_UnSubScribeRetained = Out_UnSubAck
-    lambda 1 In_Disconnect = Out_ConnectionClosed
-    lambda 1 In_DisconnectTCP = Out_ConnectionClosed
-    lambda 2 In_Connect = Out_ConnectionClosed
-    lambda 2 In_PublishQoS0 = Out_ConnectionClosed
-    lambda 2 In_PublishQoS1 = Out_ConnectionClosed
-    lambda 2 In_PublishRetain = Out_ConnectionClosed
-    lambda 2 In_DeleteRetained = Out_ConnectionClosed
-    lambda 2 In_Subscribe = Out_ConnectionClosed
-    lambda 2 In_UnSubScribe = Out_ConnectionClosed
-    lambda 2 In_SubscribeRetained = Out_ConnectionClosed
-    lambda 2 In_UnSubScribeRetained = Out_ConnectionClosed
-    lambda 2 In_Disconnect = Out_ConnectionClosed
-    lambda 2 In_DisconnectTCP = Out_ConnectionClosed
-    lambda 4 In_Connect = Out_ConnectionClosed
-    lambda 4 In_PublishQoS0 = Out_Pub_my_topic_messageQos0
-    lambda 4 In_PublishQoS1 = Out_Pub_my_topic_messageQos1___PubAck
-    lambda 4 In_PublishRetain = Out_PubAck
-    lambda 4 In_DeleteRetained = Out_PubAck
-    lambda 4 In_Subscribe = Out_SubAck
-    lambda 4 In_UnSubScribe = Out_UnSubAck
-    lambda 4 In_SubscribeRetained = Out_SubAck
-    lambda 4 In_UnSubScribeRetained = Out_UnSubAck
-    lambda 4 In_Disconnect = Out_ConnectionClosed
-    lambda 4 In_DisconnectTCP = Out_ConnectionClosed
-    lambda 3 In_Connect = Out_ConnectionClosed
-    lambda 3 In_PublishQoS0 = Out_Empty
-    lambda 3 In_PublishQoS1 = Out_PubAck
-    lambda 3 In_PublishRetain = Out_PubAck
-    lambda 3 In_DeleteRetained = Out_PubAck
-    lambda 3 In_Subscribe = Out_SubAck
-    lambda 3 In_UnSubScribe = Out_UnSubAck
-    lambda 3 In_SubscribeRetained = Out_SubAck__Pub_my_topic_retained_retained_message
-    lambda 3 In_UnSubScribeRetained = Out_UnSubAck
-    lambda 3 In_Disconnect = Out_ConnectionClosed
-    lambda 3 In_DisconnectTCP = Out_ConnectionClosed
-    lambda 5 In_Connect = Out_ConnectionClosed
-    lambda 5 In_PublishQoS0 = Out_Empty
-    lambda 5 In_PublishQoS1 = Out_PubAck
-    lambda 5 In_PublishRetain = Out_Pub_my_topic_retained_retained_message___PubAck
-    lambda 5 In_DeleteRetained = Out_Pub_my_topic_retained____PubAck
-    lambda 5 In_Subscribe = Out_SubAck
-    lambda 5 In_UnSubScribe = Out_UnSubAck
-    lambda 5 In_SubscribeRetained = Out_SubAck
-    lambda 5 In_UnSubScribeRetained = Out_UnSubAck
-    lambda 5 In_Disconnect = Out_ConnectionClosed
-    lambda 5 In_DisconnectTCP = Out_ConnectionClosed
-    lambda 7 In_Connect = Out_ConnectionClosed
-    lambda 7 In_PublishQoS0 = Out_Pub_my_topic_messageQos0
-    lambda 7 In_PublishQoS1 = Out_Pub_my_topic_messageQos1___PubAck
-    lambda 7 In_PublishRetain = Out_Pub_my_topic_retained_retained_message___PubAck
-    lambda 7 In_DeleteRetained = Out_Pub_my_topic_retained____PubAck
-    lambda 7 In_Subscribe = Out_SubAck
-    lambda 7 In_UnSubScribe = Out_UnSubAck
-    lambda 7 In_SubscribeRetained = Out_SubAck
-    lambda 7 In_UnSubScribeRetained = Out_UnSubAck
-    lambda 7 In_Disconnect = Out_ConnectionClosed
-    lambda 7 In_DisconnectTCP = Out_ConnectionClosed
-    lambda 6 In_Connect = Out_ConnectionClosed
-    lambda 6 In_PublishQoS0 = Out_Pub_my_topic_messageQos0
-    lambda 6 In_PublishQoS1 = Out_Pub_my_topic_messageQos1___PubAck
-    lambda 6 In_PublishRetain = Out_PubAck
-    lambda 6 In_DeleteRetained = Out_PubAck
-    lambda 6 In_Subscribe = Out_SubAck
-    lambda 6 In_UnSubScribe = Out_UnSubAck
-    lambda 6 In_SubscribeRetained = Out_SubAck__Pub_my_topic_retained_retained_message
-    lambda 6 In_UnSubScribeRetained = Out_UnSubAck
-    lambda 6 In_Disconnect = Out_ConnectionClosed
-    lambda 6 In_DisconnectTCP = Out_ConnectionClosed
-    lambda 8 In_Connect = Out_ConnectionClosed
-    lambda 8 In_PublishQoS0 = Out_Empty
-    lambda 8 In_PublishQoS1 = Out_PubAck
-    lambda 8 In_PublishRetain = Out_Pub_my_topic_retained_retained_message___PubAck
-    lambda 8 In_DeleteRetained = Out_Pub_my_topic_retained____PubAck
-    lambda 8 In_Subscribe = Out_SubAck
-    lambda 8 In_UnSubScribe = Out_UnSubAck
-    lambda 8 In_SubscribeRetained = Out_SubAck__Pub_my_topic_retained_retained_message
-    lambda 8 In_UnSubScribeRetained = Out_UnSubAck
-    lambda 8 In_Disconnect = Out_ConnectionClosed
-    lambda 8 In_DisconnectTCP = Out_ConnectionClosed
-    lambda 9 In_Connect = Out_ConnectionClosed
-    lambda 9 In_PublishQoS0 = Out_Pub_my_topic_messageQos0
-    lambda 9 In_PublishQoS1 = Out_Pub_my_topic_messageQos1___PubAck
-    lambda 9 In_PublishRetain = Out_Pub_my_topic_retained_retained_message___PubAck
-    lambda 9 In_DeleteRetained = Out_Pub_my_topic_retained____PubAck
-    lambda 9 In_Subscribe = Out_SubAck
-    lambda 9 In_UnSubScribe = Out_UnSubAck
-    lambda 9 In_SubscribeRetained = Out_SubAck__Pub_my_topic_retained_retained_message
-    lambda 9 In_UnSubScribeRetained = Out_UnSubAck
-    lambda 9 In_Disconnect = Out_ConnectionClosed
-    lambda 9 In_DisconnectTCP = Out_ConnectionClosed
-    lambda _ _ = error "haal-gen: undefined transition"
+    deltaTable =
+        "\1\0\0\0\0\0\0\0\0\0\0\
+        \\2\1\1\3\1\4\1\5\1\2\2\
+        \\2\2\2\2\2\2\2\2\2\2\2\
+        \\2\3\3\3\1\6\3\8\3\2\2\
+        \\2\4\4\6\4\4\1\7\4\2\2\
+        \\2\5\5\8\5\7\5\5\1\2\2\
+        \\2\6\6\6\4\6\3\9\6\2\2\
+        \\2\7\7\9\7\7\5\7\4\2\2\
+        \\2\8\8\8\5\9\8\8\3\2\2\
+        \\2\9\9\9\7\9\8\9\6\2\2"
+    lambdaTable =
+        "\0\1\1\1\1\1\1\1\1\1\1\
+        \\1\2\3\3\3\4\5\4\5\1\1\
+        \\1\1\1\1\1\1\1\1\1\1\1\
+        \\1\2\3\3\3\4\5\8\5\1\1\
+        \\1\6\7\3\3\4\5\4\5\1\1\
+        \\1\2\3\9\10\4\5\4\5\1\1\
+        \\1\6\7\3\3\4\5\8\5\1\1\
+        \\1\6\7\9\10\4\5\4\5\1\1\
+        \\1\2\3\9\10\4\5\8\5\1\1\
+        \\1\6\7\9\10\4\5\8\5\1\1"
diff --git a/src/Haal/Models/MQTT/MosquittoTwoClient.hs b/src/Haal/Models/MQTT/MosquittoTwoClient.hs
--- a/src/Haal/Models/MQTT/MosquittoTwoClient.hs
+++ b/src/Haal/Models/MQTT/MosquittoTwoClient.hs
@@ -5,8 +5,7 @@
     , mosquittoTwoClient
     ) where
 
-import qualified Data.Set as Set
-import Haal.Automaton.MealyAutomaton (MealyAutomaton, mkMealyAutomaton)
+import Haal.Automaton.MealyAutomaton (MealyAutomaton, mkMealyAutomatonTable)
 
 data MosquittoTwoClientInput
     = In_ConnectC2
@@ -65,296 +64,189 @@
     | Out_Pub_c1_my_topic_messageQos1___c1_PubAck__c2_ConnectionClosed_eof_stream
     deriving (Show, Eq, Ord, Enum, Bounded)
 
+{- Transitions (state  input -> next state / output):
+    0     In_ConnectC2          -> 1 / Out_C1_ConnectionClosed_client_close___c2_ConnAck
+          In_ConnectC1WithWill  -> 2 / Out_C1_ConnAck__c2_ConnectionClosed_client_close
+          In_PublishQoS0C2      -> 0 / Out_C1_ConnectionClosed_client_close___c2_ConnectionClosed_client_close
+          In_PublishQoS1C1      -> 0 / Out_C1_ConnectionClosed_client_close___c2_ConnectionClosed_client_close
+          In_SubscribeC1        -> 0 / Out_C1_ConnectionClosed_client_close___c2_ConnectionClosed_client_close
+          In_UnSubScribeC1      -> 0 / Out_C1_ConnectionClosed_client_close___c2_ConnectionClosed_client_close
+          In_SubscribeC2        -> 0 / Out_C1_ConnectionClosed_client_close___c2_ConnectionClosed_client_close
+          In_UnSubScribeC2      -> 0 / Out_C1_ConnectionClosed_client_close___c2_ConnectionClosed_client_close
+          In_DisconnectTCPC1    -> 0 / Out_C1_ConnectionClosed_client_close___c2_ConnectionClosed_client_close
+    1     In_ConnectC2          -> 10 / Out_C1_ConnectionClosed_client_close___c2_ConnectionClosed_eof_stream
+          In_ConnectC1WithWill  -> 3 / Out_C1_ConnAck__Empty
+          In_PublishQoS0C2      -> 1 / Out_C1_ConnectionClosed_client_close___Empty
+          In_PublishQoS1C1      -> 1 / Out_C1_ConnectionClosed_client_close___Empty
+          In_SubscribeC1        -> 1 / Out_C1_ConnectionClosed_client_close___Empty
+          In_UnSubScribeC1      -> 1 / Out_C1_ConnectionClosed_client_close___Empty
+          In_SubscribeC2        -> 11 / Out_C1_ConnectionClosed_client_close___c2_SubAck
+          In_UnSubScribeC2      -> 1 / Out_C1_ConnectionClosed_client_close___c2_UnSubAck
+          In_DisconnectTCPC1    -> 1 / Out_C1_ConnectionClosed_client_close___Empty
+    2     In_ConnectC2          -> 3 / Out_Empty__c2_ConnAck
+          In_ConnectC1WithWill  -> 4 / Out_C1_ConnectionClosed_eof_stream___c2_ConnectionClosed_client_close
+          In_PublishQoS0C2      -> 2 / Out_Empty__c2_ConnectionClosed_client_close
+          In_PublishQoS1C1      -> 2 / Out_C1_PubAck__c2_ConnectionClosed_client_close
+          In_SubscribeC1        -> 5 / Out_C1_SubAck__c2_ConnectionClosed_client_close
+          In_UnSubScribeC1      -> 2 / Out_C1_UnSubAck__c2_ConnectionClosed_client_close
+          In_SubscribeC2        -> 2 / Out_Empty__c2_ConnectionClosed_client_close
+          In_UnSubScribeC2      -> 2 / Out_Empty__c2_ConnectionClosed_client_close
+          In_DisconnectTCPC1    -> 0 / Out_C1_ConnectionClosed_client_close___c2_ConnectionClosed_client_close
+    3     In_ConnectC2          -> 6 / Out_Empty__c2_ConnectionClosed_eof_stream
+          In_ConnectC1WithWill  -> 7 / Out_C1_ConnectionClosed_eof_stream___Empty
+          In_PublishQoS0C2      -> 3 / Out_Empty__Empty
+          In_PublishQoS1C1      -> 3 / Out_C1_PubAck__Empty
+          In_SubscribeC1        -> 8 / Out_C1_SubAck__Empty
+          In_UnSubScribeC1      -> 3 / Out_C1_UnSubAck__Empty
+          In_SubscribeC2        -> 9 / Out_Empty__c2_SubAck
+          In_UnSubScribeC2      -> 3 / Out_Empty__c2_UnSubAck
+          In_DisconnectTCPC1    -> 1 / Out_C1_ConnectionClosed_client_close___Empty
+    4     In_ConnectC2          -> 7 / Out_C1_ConnectionClosed_eof_stream___c2_ConnAck
+          In_ConnectC1WithWill  -> 2 / Out_C1_ConnAck__c2_ConnectionClosed_client_close
+          In_PublishQoS0C2      -> 4 / Out_C1_ConnectionClosed_eof_stream___c2_ConnectionClosed_client_close
+          In_PublishQoS1C1      -> 4 / Out_C1_ConnectionClosed_eof_stream___c2_ConnectionClosed_client_close
+          In_SubscribeC1        -> 4 / Out_C1_ConnectionClosed_eof_stream___c2_ConnectionClosed_client_close
+          In_UnSubScribeC1      -> 4 / Out_C1_ConnectionClosed_eof_stream___c2_ConnectionClosed_client_close
+          In_SubscribeC2        -> 4 / Out_C1_ConnectionClosed_eof_stream___c2_ConnectionClosed_client_close
+          In_UnSubScribeC2      -> 4 / Out_C1_ConnectionClosed_eof_stream___c2_ConnectionClosed_client_close
+          In_DisconnectTCPC1    -> 0 / Out_C1_ConnectionClosed_client_close___c2_ConnectionClosed_client_close
+    5     In_ConnectC2          -> 8 / Out_Empty__c2_ConnAck
+          In_ConnectC1WithWill  -> 4 / Out_C1_ConnectionClosed_eof_stream___c2_ConnectionClosed_client_close
+          In_PublishQoS0C2      -> 5 / Out_Empty__c2_ConnectionClosed_client_close
+          In_PublishQoS1C1      -> 5 / Out_Pub_c1_my_topic_messageQos1___c1_PubAck__c2_ConnectionClosed_client_close
+          In_SubscribeC1        -> 5 / Out_C1_SubAck__c2_ConnectionClosed_client_close
+          In_UnSubScribeC1      -> 2 / Out_C1_UnSubAck__c2_ConnectionClosed_client_close
+          In_SubscribeC2        -> 5 / Out_Empty__c2_ConnectionClosed_client_close
+          In_UnSubScribeC2      -> 5 / Out_Empty__c2_ConnectionClosed_client_close
+          In_DisconnectTCPC1    -> 0 / Out_C1_ConnectionClosed_client_close___c2_ConnectionClosed_client_close
+    6     In_ConnectC2          -> 3 / Out_Empty__c2_ConnAck
+          In_ConnectC1WithWill  -> 12 / Out_C1_ConnectionClosed_eof_stream___c2_ConnectionClosed_eof_stream
+          In_PublishQoS0C2      -> 6 / Out_Empty__c2_ConnectionClosed_eof_stream
+          In_PublishQoS1C1      -> 6 / Out_C1_PubAck__c2_ConnectionClosed_eof_stream
+          In_SubscribeC1        -> 15 / Out_C1_SubAck__c2_ConnectionClosed_eof_stream
+          In_UnSubScribeC1      -> 6 / Out_C1_UnSubAck__c2_ConnectionClosed_eof_stream
+          In_SubscribeC2        -> 6 / Out_Empty__c2_ConnectionClosed_eof_stream
+          In_UnSubScribeC2      -> 6 / Out_Empty__c2_ConnectionClosed_eof_stream
+          In_DisconnectTCPC1    -> 10 / Out_C1_ConnectionClosed_client_close___c2_ConnectionClosed_eof_stream
+    7     In_ConnectC2          -> 12 / Out_C1_ConnectionClosed_eof_stream___c2_ConnectionClosed_eof_stream
+          In_ConnectC1WithWill  -> 3 / Out_C1_ConnAck__Empty
+          In_PublishQoS0C2      -> 7 / Out_C1_ConnectionClosed_eof_stream___Empty
+          In_PublishQoS1C1      -> 7 / Out_C1_ConnectionClosed_eof_stream___Empty
+          In_SubscribeC1        -> 7 / Out_C1_ConnectionClosed_eof_stream___Empty
+          In_UnSubScribeC1      -> 7 / Out_C1_ConnectionClosed_eof_stream___Empty
+          In_SubscribeC2        -> 13 / Out_C1_ConnectionClosed_eof_stream___c2_SubAck
+          In_UnSubScribeC2      -> 7 / Out_C1_ConnectionClosed_eof_stream___c2_UnSubAck
+          In_DisconnectTCPC1    -> 1 / Out_C1_ConnectionClosed_client_close___Empty
+    8     In_ConnectC2          -> 15 / Out_Empty__c2_ConnectionClosed_eof_stream
+          In_ConnectC1WithWill  -> 7 / Out_C1_ConnectionClosed_eof_stream___Empty
+          In_PublishQoS0C2      -> 8 / Out_Pub_c1_my_topic_messageQos0___Empty
+          In_PublishQoS1C1      -> 8 / Out_Pub_c1_my_topic_messageQos1___c1_PubAck__Empty
+          In_SubscribeC1        -> 8 / Out_C1_SubAck__Empty
+          In_UnSubScribeC1      -> 3 / Out_C1_UnSubAck__Empty
+          In_SubscribeC2        -> 14 / Out_Empty__c2_SubAck
+          In_UnSubScribeC2      -> 8 / Out_Empty__c2_UnSubAck
+          In_DisconnectTCPC1    -> 1 / Out_C1_ConnectionClosed_client_close___Empty
+    9     In_ConnectC2          -> 6 / Out_Empty__c2_ConnectionClosed_eof_stream
+          In_ConnectC1WithWill  -> 13 / Out_C1_ConnectionClosed_eof_stream___Pub_c2_my_topic_bye
+          In_PublishQoS0C2      -> 9 / Out_Empty__Pub_c2_my_topic_messageQos0
+          In_PublishQoS1C1      -> 9 / Out_C1_PubAck__Pub_c2_my_topic_messageQos1
+          In_SubscribeC1        -> 14 / Out_C1_SubAck__Empty
+          In_UnSubScribeC1      -> 9 / Out_C1_UnSubAck__Empty
+          In_SubscribeC2        -> 9 / Out_Empty__c2_SubAck
+          In_UnSubScribeC2      -> 3 / Out_Empty__c2_UnSubAck
+          In_DisconnectTCPC1    -> 11 / Out_C1_ConnectionClosed_client_close___Pub_c2_my_topic_bye
+    10    In_ConnectC2          -> 1 / Out_C1_ConnectionClosed_client_close___c2_ConnAck
+          In_ConnectC1WithWill  -> 6 / Out_C1_ConnAck__c2_ConnectionClosed_eof_stream
+          In_PublishQoS0C2      -> 10 / Out_C1_ConnectionClosed_client_close___c2_ConnectionClosed_eof_stream
+          In_PublishQoS1C1      -> 10 / Out_C1_ConnectionClosed_client_close___c2_ConnectionClosed_eof_stream
+          In_SubscribeC1        -> 10 / Out_C1_ConnectionClosed_client_close___c2_ConnectionClosed_eof_stream
+          In_UnSubScribeC1      -> 10 / Out_C1_ConnectionClosed_client_close___c2_ConnectionClosed_eof_stream
+          In_SubscribeC2        -> 10 / Out_C1_ConnectionClosed_client_close___c2_ConnectionClosed_eof_stream
+          In_UnSubScribeC2      -> 10 / Out_C1_ConnectionClosed_client_close___c2_ConnectionClosed_eof_stream
+          In_DisconnectTCPC1    -> 10 / Out_C1_ConnectionClosed_client_close___c2_ConnectionClosed_eof_stream
+    11    In_ConnectC2          -> 10 / Out_C1_ConnectionClosed_client_close___c2_ConnectionClosed_eof_stream
+          In_ConnectC1WithWill  -> 9 / Out_C1_ConnAck__Empty
+          In_PublishQoS0C2      -> 11 / Out_C1_ConnectionClosed_client_close___Pub_c2_my_topic_messageQos0
+          In_PublishQoS1C1      -> 11 / Out_C1_ConnectionClosed_client_close___Empty
+          In_SubscribeC1        -> 11 / Out_C1_ConnectionClosed_client_close___Empty
+          In_UnSubScribeC1      -> 11 / Out_C1_ConnectionClosed_client_close___Empty
+          In_SubscribeC2        -> 11 / Out_C1_ConnectionClosed_client_close___c2_SubAck
+          In_UnSubScribeC2      -> 1 / Out_C1_ConnectionClosed_client_close___c2_UnSubAck
+          In_DisconnectTCPC1    -> 11 / Out_C1_ConnectionClosed_client_close___Empty
+    12    In_ConnectC2          -> 7 / Out_C1_ConnectionClosed_eof_stream___c2_ConnAck
+          In_ConnectC1WithWill  -> 6 / Out_C1_ConnAck__c2_ConnectionClosed_eof_stream
+          In_PublishQoS0C2      -> 12 / Out_C1_ConnectionClosed_eof_stream___c2_ConnectionClosed_eof_stream
+          In_PublishQoS1C1      -> 12 / Out_C1_ConnectionClosed_eof_stream___c2_ConnectionClosed_eof_stream
+          In_SubscribeC1        -> 12 / Out_C1_ConnectionClosed_eof_stream___c2_ConnectionClosed_eof_stream
+          In_UnSubScribeC1      -> 12 / Out_C1_ConnectionClosed_eof_stream___c2_ConnectionClosed_eof_stream
+          In_SubscribeC2        -> 12 / Out_C1_ConnectionClosed_eof_stream___c2_ConnectionClosed_eof_stream
+          In_UnSubScribeC2      -> 12 / Out_C1_ConnectionClosed_eof_stream___c2_ConnectionClosed_eof_stream
+          In_DisconnectTCPC1    -> 10 / Out_C1_ConnectionClosed_client_close___c2_ConnectionClosed_eof_stream
+    13    In_ConnectC2          -> 12 / Out_C1_ConnectionClosed_eof_stream___c2_ConnectionClosed_eof_stream
+          In_ConnectC1WithWill  -> 9 / Out_C1_ConnAck__Empty
+          In_PublishQoS0C2      -> 13 / Out_C1_ConnectionClosed_eof_stream___Pub_c2_my_topic_messageQos0
+          In_PublishQoS1C1      -> 13 / Out_C1_ConnectionClosed_eof_stream___Empty
+          In_SubscribeC1        -> 13 / Out_C1_ConnectionClosed_eof_stream___Empty
+          In_UnSubScribeC1      -> 13 / Out_C1_ConnectionClosed_eof_stream___Empty
+          In_SubscribeC2        -> 13 / Out_C1_ConnectionClosed_eof_stream___c2_SubAck
+          In_UnSubScribeC2      -> 7 / Out_C1_ConnectionClosed_eof_stream___c2_UnSubAck
+          In_DisconnectTCPC1    -> 11 / Out_C1_ConnectionClosed_client_close___Empty
+    14    In_ConnectC2          -> 15 / Out_Empty__c2_ConnectionClosed_eof_stream
+          In_ConnectC1WithWill  -> 13 / Out_C1_ConnectionClosed_eof_stream___Pub_c2_my_topic_bye
+          In_PublishQoS0C2      -> 14 / Out_Pub_c1_my_topic_messageQos0___Pub_c2_my_topic_messageQos0
+          In_PublishQoS1C1      -> 14 / Out_Pub_c1_my_topic_messageQos1___c1_PubAck__Pub_c2_my_topic_messageQos1
+          In_SubscribeC1        -> 14 / Out_C1_SubAck__Empty
+          In_UnSubScribeC1      -> 9 / Out_C1_UnSubAck__Empty
+          In_SubscribeC2        -> 14 / Out_Empty__c2_SubAck
+          In_UnSubScribeC2      -> 8 / Out_Empty__c2_UnSubAck
+          In_DisconnectTCPC1    -> 11 / Out_C1_ConnectionClosed_client_close___Pub_c2_my_topic_bye
+    15    In_ConnectC2          -> 8 / Out_Empty__c2_ConnAck
+          In_ConnectC1WithWill  -> 12 / Out_C1_ConnectionClosed_eof_stream___c2_ConnectionClosed_eof_stream
+          In_PublishQoS0C2      -> 15 / Out_Empty__c2_ConnectionClosed_eof_stream
+          In_PublishQoS1C1      -> 15 / Out_Pub_c1_my_topic_messageQos1___c1_PubAck__c2_ConnectionClosed_eof_stream
+          In_SubscribeC1        -> 15 / Out_C1_SubAck__c2_ConnectionClosed_eof_stream
+          In_UnSubScribeC1      -> 6 / Out_C1_UnSubAck__c2_ConnectionClosed_eof_stream
+          In_SubscribeC2        -> 15 / Out_Empty__c2_ConnectionClosed_eof_stream
+          In_UnSubScribeC2      -> 15 / Out_Empty__c2_ConnectionClosed_eof_stream
+          In_DisconnectTCPC1    -> 10 / Out_C1_ConnectionClosed_client_close___c2_ConnectionClosed_eof_stream
+-}
 mosquittoTwoClient :: MealyAutomaton Int MosquittoTwoClientInput MosquittoTwoClientOutput
-mosquittoTwoClient = mkMealyAutomaton delta lambda (Set.fromList [0..15]) 0
+mosquittoTwoClient =
+    case mkMealyAutomatonTable 16 0 deltaTable lambdaTable of
+        Right m -> m
+        Left err -> error ("haal-gen: invalid transition table: " ++ err)
   where
-    delta 0 In_ConnectC2 = 1
-    delta 0 In_ConnectC1WithWill = 2
-    delta 0 In_PublishQoS0C2 = 0
-    delta 0 In_PublishQoS1C1 = 0
-    delta 0 In_SubscribeC1 = 0
-    delta 0 In_UnSubScribeC1 = 0
-    delta 0 In_SubscribeC2 = 0
-    delta 0 In_UnSubScribeC2 = 0
-    delta 0 In_DisconnectTCPC1 = 0
-    delta 2 In_ConnectC2 = 3
-    delta 2 In_ConnectC1WithWill = 4
-    delta 2 In_PublishQoS0C2 = 2
-    delta 2 In_PublishQoS1C1 = 2
-    delta 2 In_SubscribeC1 = 5
-    delta 2 In_UnSubScribeC1 = 2
-    delta 2 In_SubscribeC2 = 2
-    delta 2 In_UnSubScribeC2 = 2
-    delta 2 In_DisconnectTCPC1 = 0
-    delta 3 In_ConnectC2 = 6
-    delta 3 In_ConnectC1WithWill = 7
-    delta 3 In_PublishQoS0C2 = 3
-    delta 3 In_PublishQoS1C1 = 3
-    delta 3 In_SubscribeC1 = 8
-    delta 3 In_UnSubScribeC1 = 3
-    delta 3 In_SubscribeC2 = 9
-    delta 3 In_UnSubScribeC2 = 3
-    delta 3 In_DisconnectTCPC1 = 1
-    delta 1 In_ConnectC2 = 10
-    delta 1 In_ConnectC1WithWill = 3
-    delta 1 In_PublishQoS0C2 = 1
-    delta 1 In_PublishQoS1C1 = 1
-    delta 1 In_SubscribeC1 = 1
-    delta 1 In_UnSubScribeC1 = 1
-    delta 1 In_SubscribeC2 = 11
-    delta 1 In_UnSubScribeC2 = 1
-    delta 1 In_DisconnectTCPC1 = 1
-    delta 4 In_ConnectC2 = 7
-    delta 4 In_ConnectC1WithWill = 2
-    delta 4 In_PublishQoS0C2 = 4
-    delta 4 In_PublishQoS1C1 = 4
-    delta 4 In_SubscribeC1 = 4
-    delta 4 In_UnSubScribeC1 = 4
-    delta 4 In_SubscribeC2 = 4
-    delta 4 In_UnSubScribeC2 = 4
-    delta 4 In_DisconnectTCPC1 = 0
-    delta 7 In_ConnectC2 = 12
-    delta 7 In_ConnectC1WithWill = 3
-    delta 7 In_PublishQoS0C2 = 7
-    delta 7 In_PublishQoS1C1 = 7
-    delta 7 In_SubscribeC1 = 7
-    delta 7 In_UnSubScribeC1 = 7
-    delta 7 In_SubscribeC2 = 13
-    delta 7 In_UnSubScribeC2 = 7
-    delta 7 In_DisconnectTCPC1 = 1
-    delta 9 In_ConnectC2 = 6
-    delta 9 In_ConnectC1WithWill = 13
-    delta 9 In_PublishQoS0C2 = 9
-    delta 9 In_PublishQoS1C1 = 9
-    delta 9 In_SubscribeC1 = 14
-    delta 9 In_UnSubScribeC1 = 9
-    delta 9 In_SubscribeC2 = 9
-    delta 9 In_UnSubScribeC2 = 3
-    delta 9 In_DisconnectTCPC1 = 11
-    delta 13 In_ConnectC2 = 12
-    delta 13 In_ConnectC1WithWill = 9
-    delta 13 In_PublishQoS0C2 = 13
-    delta 13 In_PublishQoS1C1 = 13
-    delta 13 In_SubscribeC1 = 13
-    delta 13 In_UnSubScribeC1 = 13
-    delta 13 In_SubscribeC2 = 13
-    delta 13 In_UnSubScribeC2 = 7
-    delta 13 In_DisconnectTCPC1 = 11
-    delta 6 In_ConnectC2 = 3
-    delta 6 In_ConnectC1WithWill = 12
-    delta 6 In_PublishQoS0C2 = 6
-    delta 6 In_PublishQoS1C1 = 6
-    delta 6 In_SubscribeC1 = 15
-    delta 6 In_UnSubScribeC1 = 6
-    delta 6 In_SubscribeC2 = 6
-    delta 6 In_UnSubScribeC2 = 6
-    delta 6 In_DisconnectTCPC1 = 10
-    delta 10 In_ConnectC2 = 1
-    delta 10 In_ConnectC1WithWill = 6
-    delta 10 In_PublishQoS0C2 = 10
-    delta 10 In_PublishQoS1C1 = 10
-    delta 10 In_SubscribeC1 = 10
-    delta 10 In_UnSubScribeC1 = 10
-    delta 10 In_SubscribeC2 = 10
-    delta 10 In_UnSubScribeC2 = 10
-    delta 10 In_DisconnectTCPC1 = 10
-    delta 14 In_ConnectC2 = 15
-    delta 14 In_ConnectC1WithWill = 13
-    delta 14 In_PublishQoS0C2 = 14
-    delta 14 In_PublishQoS1C1 = 14
-    delta 14 In_SubscribeC1 = 14
-    delta 14 In_UnSubScribeC1 = 9
-    delta 14 In_SubscribeC2 = 14
-    delta 14 In_UnSubScribeC2 = 8
-    delta 14 In_DisconnectTCPC1 = 11
-    delta 8 In_ConnectC2 = 15
-    delta 8 In_ConnectC1WithWill = 7
-    delta 8 In_PublishQoS0C2 = 8
-    delta 8 In_PublishQoS1C1 = 8
-    delta 8 In_SubscribeC1 = 8
-    delta 8 In_UnSubScribeC1 = 3
-    delta 8 In_SubscribeC2 = 14
-    delta 8 In_UnSubScribeC2 = 8
-    delta 8 In_DisconnectTCPC1 = 1
-    delta 12 In_ConnectC2 = 7
-    delta 12 In_ConnectC1WithWill = 6
-    delta 12 In_PublishQoS0C2 = 12
-    delta 12 In_PublishQoS1C1 = 12
-    delta 12 In_SubscribeC1 = 12
-    delta 12 In_UnSubScribeC1 = 12
-    delta 12 In_SubscribeC2 = 12
-    delta 12 In_UnSubScribeC2 = 12
-    delta 12 In_DisconnectTCPC1 = 10
-    delta 11 In_ConnectC2 = 10
-    delta 11 In_ConnectC1WithWill = 9
-    delta 11 In_PublishQoS0C2 = 11
-    delta 11 In_PublishQoS1C1 = 11
-    delta 11 In_SubscribeC1 = 11
-    delta 11 In_UnSubScribeC1 = 11
-    delta 11 In_SubscribeC2 = 11
-    delta 11 In_UnSubScribeC2 = 1
-    delta 11 In_DisconnectTCPC1 = 11
-    delta 5 In_ConnectC2 = 8
-    delta 5 In_ConnectC1WithWill = 4
-    delta 5 In_PublishQoS0C2 = 5
-    delta 5 In_PublishQoS1C1 = 5
-    delta 5 In_SubscribeC1 = 5
-    delta 5 In_UnSubScribeC1 = 2
-    delta 5 In_SubscribeC2 = 5
-    delta 5 In_UnSubScribeC2 = 5
-    delta 5 In_DisconnectTCPC1 = 0
-    delta 15 In_ConnectC2 = 8
-    delta 15 In_ConnectC1WithWill = 12
-    delta 15 In_PublishQoS0C2 = 15
-    delta 15 In_PublishQoS1C1 = 15
-    delta 15 In_SubscribeC1 = 15
-    delta 15 In_UnSubScribeC1 = 6
-    delta 15 In_SubscribeC2 = 15
-    delta 15 In_UnSubScribeC2 = 15
-    delta 15 In_DisconnectTCPC1 = 10
-    delta _ _ = error "haal-gen: undefined transition"
-    lambda 0 In_ConnectC2 = Out_C1_ConnectionClosed_client_close___c2_ConnAck
-    lambda 0 In_ConnectC1WithWill = Out_C1_ConnAck__c2_ConnectionClosed_client_close
-    lambda 0 In_PublishQoS0C2 = Out_C1_ConnectionClosed_client_close___c2_ConnectionClosed_client_close
-    lambda 0 In_PublishQoS1C1 = Out_C1_ConnectionClosed_client_close___c2_ConnectionClosed_client_close
-    lambda 0 In_SubscribeC1 = Out_C1_ConnectionClosed_client_close___c2_ConnectionClosed_client_close
-    lambda 0 In_UnSubScribeC1 = Out_C1_ConnectionClosed_client_close___c2_ConnectionClosed_client_close
-    lambda 0 In_SubscribeC2 = Out_C1_ConnectionClosed_client_close___c2_ConnectionClosed_client_close
-    lambda 0 In_UnSubScribeC2 = Out_C1_ConnectionClosed_client_close___c2_ConnectionClosed_client_close
-    lambda 0 In_DisconnectTCPC1 = Out_C1_ConnectionClosed_client_close___c2_ConnectionClosed_client_close
-    lambda 2 In_ConnectC2 = Out_Empty__c2_ConnAck
-    lambda 2 In_ConnectC1WithWill = Out_C1_ConnectionClosed_eof_stream___c2_ConnectionClosed_client_close
-    lambda 2 In_PublishQoS0C2 = Out_Empty__c2_ConnectionClosed_client_close
-    lambda 2 In_PublishQoS1C1 = Out_C1_PubAck__c2_ConnectionClosed_client_close
-    lambda 2 In_SubscribeC1 = Out_C1_SubAck__c2_ConnectionClosed_client_close
-    lambda 2 In_UnSubScribeC1 = Out_C1_UnSubAck__c2_ConnectionClosed_client_close
-    lambda 2 In_SubscribeC2 = Out_Empty__c2_ConnectionClosed_client_close
-    lambda 2 In_UnSubScribeC2 = Out_Empty__c2_ConnectionClosed_client_close
-    lambda 2 In_DisconnectTCPC1 = Out_C1_ConnectionClosed_client_close___c2_ConnectionClosed_client_close
-    lambda 3 In_ConnectC2 = Out_Empty__c2_ConnectionClosed_eof_stream
-    lambda 3 In_ConnectC1WithWill = Out_C1_ConnectionClosed_eof_stream___Empty
-    lambda 3 In_PublishQoS0C2 = Out_Empty__Empty
-    lambda 3 In_PublishQoS1C1 = Out_C1_PubAck__Empty
-    lambda 3 In_SubscribeC1 = Out_C1_SubAck__Empty
-    lambda 3 In_UnSubScribeC1 = Out_C1_UnSubAck__Empty
-    lambda 3 In_SubscribeC2 = Out_Empty__c2_SubAck
-    lambda 3 In_UnSubScribeC2 = Out_Empty__c2_UnSubAck
-    lambda 3 In_DisconnectTCPC1 = Out_C1_ConnectionClosed_client_close___Empty
-    lambda 1 In_ConnectC2 = Out_C1_ConnectionClosed_client_close___c2_ConnectionClosed_eof_stream
-    lambda 1 In_ConnectC1WithWill = Out_C1_ConnAck__Empty
-    lambda 1 In_PublishQoS0C2 = Out_C1_ConnectionClosed_client_close___Empty
-    lambda 1 In_PublishQoS1C1 = Out_C1_ConnectionClosed_client_close___Empty
-    lambda 1 In_SubscribeC1 = Out_C1_ConnectionClosed_client_close___Empty
-    lambda 1 In_UnSubScribeC1 = Out_C1_ConnectionClosed_client_close___Empty
-    lambda 1 In_SubscribeC2 = Out_C1_ConnectionClosed_client_close___c2_SubAck
-    lambda 1 In_UnSubScribeC2 = Out_C1_ConnectionClosed_client_close___c2_UnSubAck
-    lambda 1 In_DisconnectTCPC1 = Out_C1_ConnectionClosed_client_close___Empty
-    lambda 4 In_ConnectC2 = Out_C1_ConnectionClosed_eof_stream___c2_ConnAck
-    lambda 4 In_ConnectC1WithWill = Out_C1_ConnAck__c2_ConnectionClosed_client_close
-    lambda 4 In_PublishQoS0C2 = Out_C1_ConnectionClosed_eof_stream___c2_ConnectionClosed_client_close
-    lambda 4 In_PublishQoS1C1 = Out_C1_ConnectionClosed_eof_stream___c2_ConnectionClosed_client_close
-    lambda 4 In_SubscribeC1 = Out_C1_ConnectionClosed_eof_stream___c2_ConnectionClosed_client_close
-    lambda 4 In_UnSubScribeC1 = Out_C1_ConnectionClosed_eof_stream___c2_ConnectionClosed_client_close
-    lambda 4 In_SubscribeC2 = Out_C1_ConnectionClosed_eof_stream___c2_ConnectionClosed_client_close
-    lambda 4 In_UnSubScribeC2 = Out_C1_ConnectionClosed_eof_stream___c2_ConnectionClosed_client_close
-    lambda 4 In_DisconnectTCPC1 = Out_C1_ConnectionClosed_client_close___c2_ConnectionClosed_client_close
-    lambda 7 In_ConnectC2 = Out_C1_ConnectionClosed_eof_stream___c2_ConnectionClosed_eof_stream
-    lambda 7 In_ConnectC1WithWill = Out_C1_ConnAck__Empty
-    lambda 7 In_PublishQoS0C2 = Out_C1_ConnectionClosed_eof_stream___Empty
-    lambda 7 In_PublishQoS1C1 = Out_C1_ConnectionClosed_eof_stream___Empty
-    lambda 7 In_SubscribeC1 = Out_C1_ConnectionClosed_eof_stream___Empty
-    lambda 7 In_UnSubScribeC1 = Out_C1_ConnectionClosed_eof_stream___Empty
-    lambda 7 In_SubscribeC2 = Out_C1_ConnectionClosed_eof_stream___c2_SubAck
-    lambda 7 In_UnSubScribeC2 = Out_C1_ConnectionClosed_eof_stream___c2_UnSubAck
-    lambda 7 In_DisconnectTCPC1 = Out_C1_ConnectionClosed_client_close___Empty
-    lambda 9 In_ConnectC2 = Out_Empty__c2_ConnectionClosed_eof_stream
-    lambda 9 In_ConnectC1WithWill = Out_C1_ConnectionClosed_eof_stream___Pub_c2_my_topic_bye
-    lambda 9 In_PublishQoS0C2 = Out_Empty__Pub_c2_my_topic_messageQos0
-    lambda 9 In_PublishQoS1C1 = Out_C1_PubAck__Pub_c2_my_topic_messageQos1
-    lambda 9 In_SubscribeC1 = Out_C1_SubAck__Empty
-    lambda 9 In_UnSubScribeC1 = Out_C1_UnSubAck__Empty
-    lambda 9 In_SubscribeC2 = Out_Empty__c2_SubAck
-    lambda 9 In_UnSubScribeC2 = Out_Empty__c2_UnSubAck
-    lambda 9 In_DisconnectTCPC1 = Out_C1_ConnectionClosed_client_close___Pub_c2_my_topic_bye
-    lambda 13 In_ConnectC2 = Out_C1_ConnectionClosed_eof_stream___c2_ConnectionClosed_eof_stream
-    lambda 13 In_ConnectC1WithWill = Out_C1_ConnAck__Empty
-    lambda 13 In_PublishQoS0C2 = Out_C1_ConnectionClosed_eof_stream___Pub_c2_my_topic_messageQos0
-    lambda 13 In_PublishQoS1C1 = Out_C1_ConnectionClosed_eof_stream___Empty
-    lambda 13 In_SubscribeC1 = Out_C1_ConnectionClosed_eof_stream___Empty
-    lambda 13 In_UnSubScribeC1 = Out_C1_ConnectionClosed_eof_stream___Empty
-    lambda 13 In_SubscribeC2 = Out_C1_ConnectionClosed_eof_stream___c2_SubAck
-    lambda 13 In_UnSubScribeC2 = Out_C1_ConnectionClosed_eof_stream___c2_UnSubAck
-    lambda 13 In_DisconnectTCPC1 = Out_C1_ConnectionClosed_client_close___Empty
-    lambda 6 In_ConnectC2 = Out_Empty__c2_ConnAck
-    lambda 6 In_ConnectC1WithWill = Out_C1_ConnectionClosed_eof_stream___c2_ConnectionClosed_eof_stream
-    lambda 6 In_PublishQoS0C2 = Out_Empty__c2_ConnectionClosed_eof_stream
-    lambda 6 In_PublishQoS1C1 = Out_C1_PubAck__c2_ConnectionClosed_eof_stream
-    lambda 6 In_SubscribeC1 = Out_C1_SubAck__c2_ConnectionClosed_eof_stream
-    lambda 6 In_UnSubScribeC1 = Out_C1_UnSubAck__c2_ConnectionClosed_eof_stream
-    lambda 6 In_SubscribeC2 = Out_Empty__c2_ConnectionClosed_eof_stream
-    lambda 6 In_UnSubScribeC2 = Out_Empty__c2_ConnectionClosed_eof_stream
-    lambda 6 In_DisconnectTCPC1 = Out_C1_ConnectionClosed_client_close___c2_ConnectionClosed_eof_stream
-    lambda 10 In_ConnectC2 = Out_C1_ConnectionClosed_client_close___c2_ConnAck
-    lambda 10 In_ConnectC1WithWill = Out_C1_ConnAck__c2_ConnectionClosed_eof_stream
-    lambda 10 In_PublishQoS0C2 = Out_C1_ConnectionClosed_client_close___c2_ConnectionClosed_eof_stream
-    lambda 10 In_PublishQoS1C1 = Out_C1_ConnectionClosed_client_close___c2_ConnectionClosed_eof_stream
-    lambda 10 In_SubscribeC1 = Out_C1_ConnectionClosed_client_close___c2_ConnectionClosed_eof_stream
-    lambda 10 In_UnSubScribeC1 = Out_C1_ConnectionClosed_client_close___c2_ConnectionClosed_eof_stream
-    lambda 10 In_SubscribeC2 = Out_C1_ConnectionClosed_client_close___c2_ConnectionClosed_eof_stream
-    lambda 10 In_UnSubScribeC2 = Out_C1_ConnectionClosed_client_close___c2_ConnectionClosed_eof_stream
-    lambda 10 In_DisconnectTCPC1 = Out_C1_ConnectionClosed_client_close___c2_ConnectionClosed_eof_stream
-    lambda 14 In_ConnectC2 = Out_Empty__c2_ConnectionClosed_eof_stream
-    lambda 14 In_ConnectC1WithWill = Out_C1_ConnectionClosed_eof_stream___Pub_c2_my_topic_bye
-    lambda 14 In_PublishQoS0C2 = Out_Pub_c1_my_topic_messageQos0___Pub_c2_my_topic_messageQos0
-    lambda 14 In_PublishQoS1C1 = Out_Pub_c1_my_topic_messageQos1___c1_PubAck__Pub_c2_my_topic_messageQos1
-    lambda 14 In_SubscribeC1 = Out_C1_SubAck__Empty
-    lambda 14 In_UnSubScribeC1 = Out_C1_UnSubAck__Empty
-    lambda 14 In_SubscribeC2 = Out_Empty__c2_SubAck
-    lambda 14 In_UnSubScribeC2 = Out_Empty__c2_UnSubAck
-    lambda 14 In_DisconnectTCPC1 = Out_C1_ConnectionClosed_client_close___Pub_c2_my_topic_bye
-    lambda 8 In_ConnectC2 = Out_Empty__c2_ConnectionClosed_eof_stream
-    lambda 8 In_ConnectC1WithWill = Out_C1_ConnectionClosed_eof_stream___Empty
-    lambda 8 In_PublishQoS0C2 = Out_Pub_c1_my_topic_messageQos0___Empty
-    lambda 8 In_PublishQoS1C1 = Out_Pub_c1_my_topic_messageQos1___c1_PubAck__Empty
-    lambda 8 In_SubscribeC1 = Out_C1_SubAck__Empty
-    lambda 8 In_UnSubScribeC1 = Out_C1_UnSubAck__Empty
-    lambda 8 In_SubscribeC2 = Out_Empty__c2_SubAck
-    lambda 8 In_UnSubScribeC2 = Out_Empty__c2_UnSubAck
-    lambda 8 In_DisconnectTCPC1 = Out_C1_ConnectionClosed_client_close___Empty
-    lambda 12 In_ConnectC2 = Out_C1_ConnectionClosed_eof_stream___c2_ConnAck
-    lambda 12 In_ConnectC1WithWill = Out_C1_ConnAck__c2_ConnectionClosed_eof_stream
-    lambda 12 In_PublishQoS0C2 = Out_C1_ConnectionClosed_eof_stream___c2_ConnectionClosed_eof_stream
-    lambda 12 In_PublishQoS1C1 = Out_C1_ConnectionClosed_eof_stream___c2_ConnectionClosed_eof_stream
-    lambda 12 In_SubscribeC1 = Out_C1_ConnectionClosed_eof_stream___c2_ConnectionClosed_eof_stream
-    lambda 12 In_UnSubScribeC1 = Out_C1_ConnectionClosed_eof_stream___c2_ConnectionClosed_eof_stream
-    lambda 12 In_SubscribeC2 = Out_C1_ConnectionClosed_eof_stream___c2_ConnectionClosed_eof_stream
-    lambda 12 In_UnSubScribeC2 = Out_C1_ConnectionClosed_eof_stream___c2_ConnectionClosed_eof_stream
-    lambda 12 In_DisconnectTCPC1 = Out_C1_ConnectionClosed_client_close___c2_ConnectionClosed_eof_stream
-    lambda 11 In_ConnectC2 = Out_C1_ConnectionClosed_client_close___c2_ConnectionClosed_eof_stream
-    lambda 11 In_ConnectC1WithWill = Out_C1_ConnAck__Empty
-    lambda 11 In_PublishQoS0C2 = Out_C1_ConnectionClosed_client_close___Pub_c2_my_topic_messageQos0
-    lambda 11 In_PublishQoS1C1 = Out_C1_ConnectionClosed_client_close___Empty
-    lambda 11 In_SubscribeC1 = Out_C1_ConnectionClosed_client_close___Empty
-    lambda 11 In_UnSubScribeC1 = Out_C1_ConnectionClosed_client_close___Empty
-    lambda 11 In_SubscribeC2 = Out_C1_ConnectionClosed_client_close___c2_SubAck
-    lambda 11 In_UnSubScribeC2 = Out_C1_ConnectionClosed_client_close___c2_UnSubAck
-    lambda 11 In_DisconnectTCPC1 = Out_C1_ConnectionClosed_client_close___Empty
-    lambda 5 In_ConnectC2 = Out_Empty__c2_ConnAck
-    lambda 5 In_ConnectC1WithWill = Out_C1_ConnectionClosed_eof_stream___c2_ConnectionClosed_client_close
-    lambda 5 In_PublishQoS0C2 = Out_Empty__c2_ConnectionClosed_client_close
-    lambda 5 In_PublishQoS1C1 = Out_Pub_c1_my_topic_messageQos1___c1_PubAck__c2_ConnectionClosed_client_close
-    lambda 5 In_SubscribeC1 = Out_C1_SubAck__c2_ConnectionClosed_client_close
-    lambda 5 In_UnSubScribeC1 = Out_C1_UnSubAck__c2_ConnectionClosed_client_close
-    lambda 5 In_SubscribeC2 = Out_Empty__c2_ConnectionClosed_client_close
-    lambda 5 In_UnSubScribeC2 = Out_Empty__c2_ConnectionClosed_client_close
-    lambda 5 In_DisconnectTCPC1 = Out_C1_ConnectionClosed_client_close___c2_ConnectionClosed_client_close
-    lambda 15 In_ConnectC2 = Out_Empty__c2_ConnAck
-    lambda 15 In_ConnectC1WithWill = Out_C1_ConnectionClosed_eof_stream___c2_ConnectionClosed_eof_stream
-    lambda 15 In_PublishQoS0C2 = Out_Empty__c2_ConnectionClosed_eof_stream
-    lambda 15 In_PublishQoS1C1 = Out_Pub_c1_my_topic_messageQos1___c1_PubAck__c2_ConnectionClosed_eof_stream
-    lambda 15 In_SubscribeC1 = Out_C1_SubAck__c2_ConnectionClosed_eof_stream
-    lambda 15 In_UnSubScribeC1 = Out_C1_UnSubAck__c2_ConnectionClosed_eof_stream
-    lambda 15 In_SubscribeC2 = Out_Empty__c2_ConnectionClosed_eof_stream
-    lambda 15 In_UnSubScribeC2 = Out_Empty__c2_ConnectionClosed_eof_stream
-    lambda 15 In_DisconnectTCPC1 = Out_C1_ConnectionClosed_client_close___c2_ConnectionClosed_eof_stream
-    lambda _ _ = error "haal-gen: undefined transition"
+    deltaTable =
+        "\1\2\0\0\0\0\0\0\0\
+        \\10\3\1\1\1\1\11\1\1\
+        \\3\4\2\2\5\2\2\2\0\
+        \\6\7\3\3\8\3\9\3\1\
+        \\7\2\4\4\4\4\4\4\0\
+        \\8\4\5\5\5\2\5\5\0\
+        \\3\12\6\6\15\6\6\6\10\
+        \\12\3\7\7\7\7\13\7\1\
+        \\15\7\8\8\8\3\14\8\1\
+        \\6\13\9\9\14\9\9\3\11\
+        \\1\6\10\10\10\10\10\10\10\
+        \\10\9\11\11\11\11\11\1\11\
+        \\7\6\12\12\12\12\12\12\10\
+        \\12\9\13\13\13\13\13\7\11\
+        \\15\13\14\14\14\9\14\8\11\
+        \\8\12\15\15\15\6\15\15\10"
+    lambdaTable =
+        "\0\1\2\2\2\2\2\2\2\
+        \\18\19\17\17\17\17\20\21\17\
+        \\3\4\5\6\7\8\5\5\2\
+        \\9\10\11\12\13\14\15\16\17\
+        \\22\1\4\4\4\4\4\4\2\
+        \\3\4\5\40\7\8\5\5\2\
+        \\3\23\9\31\32\33\9\9\18\
+        \\23\19\10\10\10\10\24\25\17\
+        \\9\10\37\38\13\14\15\16\17\
+        \\9\26\27\28\13\14\15\16\29\
+        \\0\34\18\18\18\18\18\18\18\
+        \\18\19\39\17\17\17\20\21\17\
+        \\22\34\23\23\23\23\23\23\18\
+        \\23\19\30\10\10\10\24\25\17\
+        \\9\26\35\36\13\14\15\16\29\
+        \\3\23\9\41\32\33\9\9\18"
diff --git a/src/Haal/Models/MQTT/MosquittoTwoClientSameId.hs b/src/Haal/Models/MQTT/MosquittoTwoClientSameId.hs
--- a/src/Haal/Models/MQTT/MosquittoTwoClientSameId.hs
+++ b/src/Haal/Models/MQTT/MosquittoTwoClientSameId.hs
@@ -5,8 +5,7 @@
     , mosquittoTwoClientSameId
     ) where
 
-import qualified Data.Set as Set
-import Haal.Automaton.MealyAutomaton (MealyAutomaton, mkMealyAutomaton)
+import Haal.Automaton.MealyAutomaton (MealyAutomaton, mkMealyAutomatonTable)
 
 data MosquittoTwoClientSameIdInput
     = In_ConnectC2
@@ -38,162 +37,104 @@
     | Out_C1_ConnectionClosed__Pub_c2_my_topic_i_am_C2_0_notdub
     deriving (Show, Eq, Ord, Enum, Bounded)
 
+{- Transitions (state  input -> next state / output):
+    0     In_ConnectC2          -> 1 / Out_C1_ConnectionClosed__ConnAckPacket_false_0
+          In_ConnectC1WithWill  -> 2 / Out_ConnAckPacket_false_0___c2_ConnectionClosed
+          In_PublishC1          -> 0 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_PublishC2          -> 0 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_SubscribeC1        -> 0 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_UnSubScribeC1      -> 0 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_SubscribeC2        -> 0 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_UnSubScribeC2      -> 0 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_DisconnectC2       -> 0 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_DisconnectTCPC1    -> 0 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_DisconnectC1       -> 0 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+    1     In_ConnectC2          -> 3 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_ConnectC1WithWill  -> 2 / Out_ConnAckPacket_false_0___c2_ConnectionClosed
+          In_PublishC1          -> 1 / Out_C1_ConnectionClosed__Empty
+          In_PublishC2          -> 1 / Out_C1_ConnectionClosed__Empty
+          In_SubscribeC1        -> 1 / Out_C1_ConnectionClosed__Empty
+          In_UnSubScribeC1      -> 1 / Out_C1_ConnectionClosed__Empty
+          In_SubscribeC2        -> 4 / Out_C1_ConnectionClosed__c2_SubAck
+          In_UnSubScribeC2      -> 1 / Out_C1_ConnectionClosed__c2_UnSubAck
+          In_DisconnectC2       -> 3 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_DisconnectTCPC1    -> 1 / Out_C1_ConnectionClosed__Empty
+          In_DisconnectC1       -> 1 / Out_C1_ConnectionClosed__Empty
+    2     In_ConnectC2          -> 1 / Out_C1_ConnectionClosed__ConnAckPacket_true_0
+          In_ConnectC1WithWill  -> 0 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_PublishC1          -> 2 / Out_C1_PubAck__c2_ConnectionClosed
+          In_PublishC2          -> 2 / Out_Empty__c2_ConnectionClosed
+          In_SubscribeC1        -> 5 / Out_C1_SubAck__c2_ConnectionClosed
+          In_UnSubScribeC1      -> 2 / Out_C1_UnSubAck__c2_ConnectionClosed
+          In_SubscribeC2        -> 2 / Out_Empty__c2_ConnectionClosed
+          In_UnSubScribeC2      -> 2 / Out_Empty__c2_ConnectionClosed
+          In_DisconnectC2       -> 2 / Out_Empty__c2_ConnectionClosed
+          In_DisconnectTCPC1    -> 0 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_DisconnectC1       -> 0 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+    3     In_ConnectC2          -> 1 / Out_C1_ConnectionClosed__ConnAckPacket_true_0
+          In_ConnectC1WithWill  -> 2 / Out_ConnAckPacket_false_0___c2_ConnectionClosed
+          In_PublishC1          -> 3 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_PublishC2          -> 3 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_SubscribeC1        -> 3 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_UnSubScribeC1      -> 3 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_SubscribeC2        -> 3 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_UnSubScribeC2      -> 3 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_DisconnectC2       -> 3 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_DisconnectTCPC1    -> 3 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_DisconnectC1       -> 3 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+    4     In_ConnectC2          -> 6 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_ConnectC1WithWill  -> 2 / Out_ConnAckPacket_false_0___c2_ConnectionClosed
+          In_PublishC1          -> 4 / Out_C1_ConnectionClosed__Empty
+          In_PublishC2          -> 4 / Out_C1_ConnectionClosed__Pub_c2_my_topic_i_am_C2_0_notdub
+          In_SubscribeC1        -> 4 / Out_C1_ConnectionClosed__Empty
+          In_UnSubScribeC1      -> 4 / Out_C1_ConnectionClosed__Empty
+          In_SubscribeC2        -> 4 / Out_C1_ConnectionClosed__c2_SubAck
+          In_UnSubScribeC2      -> 1 / Out_C1_ConnectionClosed__c2_UnSubAck
+          In_DisconnectC2       -> 6 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_DisconnectTCPC1    -> 4 / Out_C1_ConnectionClosed__Empty
+          In_DisconnectC1       -> 4 / Out_C1_ConnectionClosed__Empty
+    5     In_ConnectC2          -> 1 / Out_C1_ConnectionClosed__ConnAckPacket_true_0
+          In_ConnectC1WithWill  -> 0 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_PublishC1          -> 5 / Out_Pub_c1_my_topic_i_am_C1_0_notdub___c1_PubAck__c2_ConnectionClosed
+          In_PublishC2          -> 5 / Out_Empty__c2_ConnectionClosed
+          In_SubscribeC1        -> 5 / Out_C1_SubAck__c2_ConnectionClosed
+          In_UnSubScribeC1      -> 2 / Out_C1_UnSubAck__c2_ConnectionClosed
+          In_SubscribeC2        -> 5 / Out_Empty__c2_ConnectionClosed
+          In_UnSubScribeC2      -> 5 / Out_Empty__c2_ConnectionClosed
+          In_DisconnectC2       -> 5 / Out_Empty__c2_ConnectionClosed
+          In_DisconnectTCPC1    -> 0 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_DisconnectC1       -> 0 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+    6     In_ConnectC2          -> 4 / Out_C1_ConnectionClosed__ConnAckPacket_true_0
+          In_ConnectC1WithWill  -> 2 / Out_ConnAckPacket_false_0___c2_ConnectionClosed
+          In_PublishC1          -> 6 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_PublishC2          -> 6 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_SubscribeC1        -> 6 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_UnSubScribeC1      -> 6 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_SubscribeC2        -> 6 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_UnSubScribeC2      -> 6 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_DisconnectC2       -> 6 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_DisconnectTCPC1    -> 6 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_DisconnectC1       -> 6 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+-}
 mosquittoTwoClientSameId :: MealyAutomaton Int MosquittoTwoClientSameIdInput MosquittoTwoClientSameIdOutput
-mosquittoTwoClientSameId = mkMealyAutomaton delta lambda (Set.fromList [0..6]) 0
+mosquittoTwoClientSameId =
+    case mkMealyAutomatonTable 7 0 deltaTable lambdaTable of
+        Right m -> m
+        Left err -> error ("haal-gen: invalid transition table: " ++ err)
   where
-    delta 0 In_ConnectC2 = 1
-    delta 0 In_ConnectC1WithWill = 2
-    delta 0 In_PublishC1 = 0
-    delta 0 In_PublishC2 = 0
-    delta 0 In_SubscribeC1 = 0
-    delta 0 In_UnSubScribeC1 = 0
-    delta 0 In_SubscribeC2 = 0
-    delta 0 In_UnSubScribeC2 = 0
-    delta 0 In_DisconnectC2 = 0
-    delta 0 In_DisconnectTCPC1 = 0
-    delta 0 In_DisconnectC1 = 0
-    delta 1 In_ConnectC2 = 3
-    delta 1 In_ConnectC1WithWill = 2
-    delta 1 In_PublishC1 = 1
-    delta 1 In_PublishC2 = 1
-    delta 1 In_SubscribeC1 = 1
-    delta 1 In_UnSubScribeC1 = 1
-    delta 1 In_SubscribeC2 = 4
-    delta 1 In_UnSubScribeC2 = 1
-    delta 1 In_DisconnectC2 = 3
-    delta 1 In_DisconnectTCPC1 = 1
-    delta 1 In_DisconnectC1 = 1
-    delta 2 In_ConnectC2 = 1
-    delta 2 In_ConnectC1WithWill = 0
-    delta 2 In_PublishC1 = 2
-    delta 2 In_PublishC2 = 2
-    delta 2 In_SubscribeC1 = 5
-    delta 2 In_UnSubScribeC1 = 2
-    delta 2 In_SubscribeC2 = 2
-    delta 2 In_UnSubScribeC2 = 2
-    delta 2 In_DisconnectC2 = 2
-    delta 2 In_DisconnectTCPC1 = 0
-    delta 2 In_DisconnectC1 = 0
-    delta 3 In_ConnectC2 = 1
-    delta 3 In_ConnectC1WithWill = 2
-    delta 3 In_PublishC1 = 3
-    delta 3 In_PublishC2 = 3
-    delta 3 In_SubscribeC1 = 3
-    delta 3 In_UnSubScribeC1 = 3
-    delta 3 In_SubscribeC2 = 3
-    delta 3 In_UnSubScribeC2 = 3
-    delta 3 In_DisconnectC2 = 3
-    delta 3 In_DisconnectTCPC1 = 3
-    delta 3 In_DisconnectC1 = 3
-    delta 5 In_ConnectC2 = 1
-    delta 5 In_ConnectC1WithWill = 0
-    delta 5 In_PublishC1 = 5
-    delta 5 In_PublishC2 = 5
-    delta 5 In_SubscribeC1 = 5
-    delta 5 In_UnSubScribeC1 = 2
-    delta 5 In_SubscribeC2 = 5
-    delta 5 In_UnSubScribeC2 = 5
-    delta 5 In_DisconnectC2 = 5
-    delta 5 In_DisconnectTCPC1 = 0
-    delta 5 In_DisconnectC1 = 0
-    delta 4 In_ConnectC2 = 6
-    delta 4 In_ConnectC1WithWill = 2
-    delta 4 In_PublishC1 = 4
-    delta 4 In_PublishC2 = 4
-    delta 4 In_SubscribeC1 = 4
-    delta 4 In_UnSubScribeC1 = 4
-    delta 4 In_SubscribeC2 = 4
-    delta 4 In_UnSubScribeC2 = 1
-    delta 4 In_DisconnectC2 = 6
-    delta 4 In_DisconnectTCPC1 = 4
-    delta 4 In_DisconnectC1 = 4
-    delta 6 In_ConnectC2 = 4
-    delta 6 In_ConnectC1WithWill = 2
-    delta 6 In_PublishC1 = 6
-    delta 6 In_PublishC2 = 6
-    delta 6 In_SubscribeC1 = 6
-    delta 6 In_UnSubScribeC1 = 6
-    delta 6 In_SubscribeC2 = 6
-    delta 6 In_UnSubScribeC2 = 6
-    delta 6 In_DisconnectC2 = 6
-    delta 6 In_DisconnectTCPC1 = 6
-    delta 6 In_DisconnectC1 = 6
-    delta _ _ = error "haal-gen: undefined transition"
-    lambda 0 In_ConnectC2 = Out_C1_ConnectionClosed__ConnAckPacket_false_0
-    lambda 0 In_ConnectC1WithWill = Out_ConnAckPacket_false_0___c2_ConnectionClosed
-    lambda 0 In_PublishC1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 0 In_PublishC2 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 0 In_SubscribeC1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 0 In_UnSubScribeC1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 0 In_SubscribeC2 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 0 In_UnSubScribeC2 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 0 In_DisconnectC2 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 0 In_DisconnectTCPC1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 0 In_DisconnectC1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 1 In_ConnectC2 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 1 In_ConnectC1WithWill = Out_ConnAckPacket_false_0___c2_ConnectionClosed
-    lambda 1 In_PublishC1 = Out_C1_ConnectionClosed__Empty
-    lambda 1 In_PublishC2 = Out_C1_ConnectionClosed__Empty
-    lambda 1 In_SubscribeC1 = Out_C1_ConnectionClosed__Empty
-    lambda 1 In_UnSubScribeC1 = Out_C1_ConnectionClosed__Empty
-    lambda 1 In_SubscribeC2 = Out_C1_ConnectionClosed__c2_SubAck
-    lambda 1 In_UnSubScribeC2 = Out_C1_ConnectionClosed__c2_UnSubAck
-    lambda 1 In_DisconnectC2 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 1 In_DisconnectTCPC1 = Out_C1_ConnectionClosed__Empty
-    lambda 1 In_DisconnectC1 = Out_C1_ConnectionClosed__Empty
-    lambda 2 In_ConnectC2 = Out_C1_ConnectionClosed__ConnAckPacket_true_0
-    lambda 2 In_ConnectC1WithWill = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 2 In_PublishC1 = Out_C1_PubAck__c2_ConnectionClosed
-    lambda 2 In_PublishC2 = Out_Empty__c2_ConnectionClosed
-    lambda 2 In_SubscribeC1 = Out_C1_SubAck__c2_ConnectionClosed
-    lambda 2 In_UnSubScribeC1 = Out_C1_UnSubAck__c2_ConnectionClosed
-    lambda 2 In_SubscribeC2 = Out_Empty__c2_ConnectionClosed
-    lambda 2 In_UnSubScribeC2 = Out_Empty__c2_ConnectionClosed
-    lambda 2 In_DisconnectC2 = Out_Empty__c2_ConnectionClosed
-    lambda 2 In_DisconnectTCPC1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 2 In_DisconnectC1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 3 In_ConnectC2 = Out_C1_ConnectionClosed__ConnAckPacket_true_0
-    lambda 3 In_ConnectC1WithWill = Out_ConnAckPacket_false_0___c2_ConnectionClosed
-    lambda 3 In_PublishC1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 3 In_PublishC2 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 3 In_SubscribeC1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 3 In_UnSubScribeC1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 3 In_SubscribeC2 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 3 In_UnSubScribeC2 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 3 In_DisconnectC2 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 3 In_DisconnectTCPC1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 3 In_DisconnectC1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 5 In_ConnectC2 = Out_C1_ConnectionClosed__ConnAckPacket_true_0
-    lambda 5 In_ConnectC1WithWill = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 5 In_PublishC1 = Out_Pub_c1_my_topic_i_am_C1_0_notdub___c1_PubAck__c2_ConnectionClosed
-    lambda 5 In_PublishC2 = Out_Empty__c2_ConnectionClosed
-    lambda 5 In_SubscribeC1 = Out_C1_SubAck__c2_ConnectionClosed
-    lambda 5 In_UnSubScribeC1 = Out_C1_UnSubAck__c2_ConnectionClosed
-    lambda 5 In_SubscribeC2 = Out_Empty__c2_ConnectionClosed
-    lambda 5 In_UnSubScribeC2 = Out_Empty__c2_ConnectionClosed
-    lambda 5 In_DisconnectC2 = Out_Empty__c2_ConnectionClosed
-    lambda 5 In_DisconnectTCPC1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 5 In_DisconnectC1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 4 In_ConnectC2 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 4 In_ConnectC1WithWill = Out_ConnAckPacket_false_0___c2_ConnectionClosed
-    lambda 4 In_PublishC1 = Out_C1_ConnectionClosed__Empty
-    lambda 4 In_PublishC2 = Out_C1_ConnectionClosed__Pub_c2_my_topic_i_am_C2_0_notdub
-    lambda 4 In_SubscribeC1 = Out_C1_ConnectionClosed__Empty
-    lambda 4 In_UnSubScribeC1 = Out_C1_ConnectionClosed__Empty
-    lambda 4 In_SubscribeC2 = Out_C1_ConnectionClosed__c2_SubAck
-    lambda 4 In_UnSubScribeC2 = Out_C1_ConnectionClosed__c2_UnSubAck
-    lambda 4 In_DisconnectC2 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 4 In_DisconnectTCPC1 = Out_C1_ConnectionClosed__Empty
-    lambda 4 In_DisconnectC1 = Out_C1_ConnectionClosed__Empty
-    lambda 6 In_ConnectC2 = Out_C1_ConnectionClosed__ConnAckPacket_true_0
-    lambda 6 In_ConnectC1WithWill = Out_ConnAckPacket_false_0___c2_ConnectionClosed
-    lambda 6 In_PublishC1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 6 In_PublishC2 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 6 In_SubscribeC1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 6 In_UnSubScribeC1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 6 In_SubscribeC2 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 6 In_UnSubScribeC2 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 6 In_DisconnectC2 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 6 In_DisconnectTCPC1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 6 In_DisconnectC1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda _ _ = error "haal-gen: undefined transition"
+    deltaTable =
+        "\1\2\0\0\0\0\0\0\0\0\0\
+        \\3\2\1\1\1\1\4\1\3\1\1\
+        \\1\0\2\2\5\2\2\2\2\0\0\
+        \\1\2\3\3\3\3\3\3\3\3\3\
+        \\6\2\4\4\4\4\4\1\6\4\4\
+        \\1\0\5\5\5\2\5\5\5\0\0\
+        \\4\2\6\6\6\6\6\6\6\6\6"
+    lambdaTable =
+        "\0\1\2\2\2\2\2\2\2\2\2\
+        \\2\1\3\3\3\3\4\5\2\3\3\
+        \\6\2\7\8\9\10\8\8\8\2\2\
+        \\6\1\2\2\2\2\2\2\2\2\2\
+        \\2\1\3\12\3\3\4\5\2\3\3\
+        \\6\2\11\8\9\10\8\8\8\2\2\
+        \\6\1\2\2\2\2\2\2\2\2\2"
diff --git a/src/Haal/Models/MQTT/MosquittoTwoClientWillRetain.hs b/src/Haal/Models/MQTT/MosquittoTwoClientWillRetain.hs
--- a/src/Haal/Models/MQTT/MosquittoTwoClientWillRetain.hs
+++ b/src/Haal/Models/MQTT/MosquittoTwoClientWillRetain.hs
@@ -5,8 +5,7 @@
     , mosquittoTwoClientWillRetain
     ) where
 
-import qualified Data.Set as Set
-import Haal.Automaton.MealyAutomaton (MealyAutomaton, mkMealyAutomaton)
+import Haal.Automaton.MealyAutomaton (MealyAutomaton, mkMealyAutomatonTable)
 
 data MosquittoTwoClientWillRetainInput
     = In_ConnectC2
@@ -44,332 +43,211 @@
     | Out_Empty__c2_SubAck__Pub_c2_my_topic_bye
     deriving (Show, Eq, Ord, Enum, Bounded)
 
+{- Transitions (state  input -> next state / output):
+    0     In_ConnectC2                -> 1 / Out_C1_ConnectionClosed__c2_ConnAck
+          In_ConnectC1WithWill        -> 2 / Out_C1_ConnAck__c2_ConnectionClosed
+          In_ConnectC1WithWillRetain  -> 3 / Out_C1_ConnAck__c2_ConnectionClosed
+          In_DeleteRetainedC1         -> 0 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_DeleteRetainedC2         -> 0 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_SubscribeC2              -> 0 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_UnSubScribeC2            -> 0 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_DisconnectTCPC1          -> 0 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_DisconnectC1             -> 0 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+    1     In_ConnectC2                -> 0 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_ConnectC1WithWill        -> 4 / Out_C1_ConnAck__Empty
+          In_ConnectC1WithWillRetain  -> 5 / Out_C1_ConnAck__Empty
+          In_DeleteRetainedC1         -> 1 / Out_C1_ConnectionClosed__Empty
+          In_DeleteRetainedC2         -> 1 / Out_C1_ConnectionClosed__c2_PubAck
+          In_SubscribeC2              -> 6 / Out_C1_ConnectionClosed__c2_SubAck
+          In_UnSubScribeC2            -> 1 / Out_C1_ConnectionClosed__c2_UnSubAck
+          In_DisconnectTCPC1          -> 1 / Out_C1_ConnectionClosed__Empty
+          In_DisconnectC1             -> 1 / Out_C1_ConnectionClosed__Empty
+    2     In_ConnectC2                -> 4 / Out_Empty__c2_ConnAck
+          In_ConnectC1WithWill        -> 0 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_ConnectC1WithWillRetain  -> 0 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_DeleteRetainedC1         -> 2 / Out_C1_PubAck__c2_ConnectionClosed
+          In_DeleteRetainedC2         -> 2 / Out_Empty__c2_ConnectionClosed
+          In_SubscribeC2              -> 2 / Out_Empty__c2_ConnectionClosed
+          In_UnSubScribeC2            -> 2 / Out_Empty__c2_ConnectionClosed
+          In_DisconnectTCPC1          -> 0 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_DisconnectC1             -> 0 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+    3     In_ConnectC2                -> 5 / Out_Empty__c2_ConnAck
+          In_ConnectC1WithWill        -> 11 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_ConnectC1WithWillRetain  -> 11 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_DeleteRetainedC1         -> 3 / Out_C1_PubAck__c2_ConnectionClosed
+          In_DeleteRetainedC2         -> 3 / Out_Empty__c2_ConnectionClosed
+          In_SubscribeC2              -> 3 / Out_Empty__c2_ConnectionClosed
+          In_UnSubScribeC2            -> 3 / Out_Empty__c2_ConnectionClosed
+          In_DisconnectTCPC1          -> 11 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_DisconnectC1             -> 0 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+    4     In_ConnectC2                -> 2 / Out_Empty__c2_ConnectionClosed
+          In_ConnectC1WithWill        -> 1 / Out_C1_ConnectionClosed__Empty
+          In_ConnectC1WithWillRetain  -> 1 / Out_C1_ConnectionClosed__Empty
+          In_DeleteRetainedC1         -> 4 / Out_C1_PubAck__Empty
+          In_DeleteRetainedC2         -> 4 / Out_Empty__c2_PubAck
+          In_SubscribeC2              -> 7 / Out_Empty__c2_SubAck
+          In_UnSubScribeC2            -> 4 / Out_Empty__c2_UnSubAck
+          In_DisconnectTCPC1          -> 1 / Out_C1_ConnectionClosed__Empty
+          In_DisconnectC1             -> 1 / Out_C1_ConnectionClosed__Empty
+    5     In_ConnectC2                -> 3 / Out_Empty__c2_ConnectionClosed
+          In_ConnectC1WithWill        -> 10 / Out_C1_ConnectionClosed__Empty
+          In_ConnectC1WithWillRetain  -> 10 / Out_C1_ConnectionClosed__Empty
+          In_DeleteRetainedC1         -> 5 / Out_C1_PubAck__Empty
+          In_DeleteRetainedC2         -> 5 / Out_Empty__c2_PubAck
+          In_SubscribeC2              -> 8 / Out_Empty__c2_SubAck
+          In_UnSubScribeC2            -> 5 / Out_Empty__c2_UnSubAck
+          In_DisconnectTCPC1          -> 10 / Out_C1_ConnectionClosed__Empty
+          In_DisconnectC1             -> 1 / Out_C1_ConnectionClosed__Empty
+    6     In_ConnectC2                -> 0 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_ConnectC1WithWill        -> 7 / Out_C1_ConnAck__Empty
+          In_ConnectC1WithWillRetain  -> 8 / Out_C1_ConnAck__Empty
+          In_DeleteRetainedC1         -> 6 / Out_C1_ConnectionClosed__Empty
+          In_DeleteRetainedC2         -> 6 / Out_C1_ConnectionClosed__Pub_c2_my_topic____c2_PubAck
+          In_SubscribeC2              -> 6 / Out_C1_ConnectionClosed__c2_SubAck
+          In_UnSubScribeC2            -> 1 / Out_C1_ConnectionClosed__c2_UnSubAck
+          In_DisconnectTCPC1          -> 6 / Out_C1_ConnectionClosed__Empty
+          In_DisconnectC1             -> 6 / Out_C1_ConnectionClosed__Empty
+    7     In_ConnectC2                -> 2 / Out_Empty__c2_ConnectionClosed
+          In_ConnectC1WithWill        -> 6 / Out_C1_ConnectionClosed__Pub_c2_my_topic_bye
+          In_ConnectC1WithWillRetain  -> 6 / Out_C1_ConnectionClosed__Pub_c2_my_topic_bye
+          In_DeleteRetainedC1         -> 7 / Out_C1_PubAck__Pub_c2_my_topic
+          In_DeleteRetainedC2         -> 7 / Out_Empty__Pub_c2_my_topic____c2_PubAck
+          In_SubscribeC2              -> 7 / Out_Empty__c2_SubAck
+          In_UnSubScribeC2            -> 4 / Out_Empty__c2_UnSubAck
+          In_DisconnectTCPC1          -> 6 / Out_C1_ConnectionClosed__Pub_c2_my_topic_bye
+          In_DisconnectC1             -> 6 / Out_C1_ConnectionClosed__Empty
+    8     In_ConnectC2                -> 3 / Out_Empty__c2_ConnectionClosed
+          In_ConnectC1WithWill        -> 9 / Out_C1_ConnectionClosed__Pub_c2_my_topic_bye
+          In_ConnectC1WithWillRetain  -> 9 / Out_C1_ConnectionClosed__Pub_c2_my_topic_bye
+          In_DeleteRetainedC1         -> 8 / Out_C1_PubAck__Pub_c2_my_topic
+          In_DeleteRetainedC2         -> 8 / Out_Empty__Pub_c2_my_topic____c2_PubAck
+          In_SubscribeC2              -> 8 / Out_Empty__c2_SubAck
+          In_UnSubScribeC2            -> 5 / Out_Empty__c2_UnSubAck
+          In_DisconnectTCPC1          -> 9 / Out_C1_ConnectionClosed__Pub_c2_my_topic_bye
+          In_DisconnectC1             -> 6 / Out_C1_ConnectionClosed__Empty
+    9     In_ConnectC2                -> 11 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_ConnectC1WithWill        -> 16 / Out_C1_ConnAck__Empty
+          In_ConnectC1WithWillRetain  -> 17 / Out_C1_ConnAck__Empty
+          In_DeleteRetainedC1         -> 9 / Out_C1_ConnectionClosed__Empty
+          In_DeleteRetainedC2         -> 6 / Out_C1_ConnectionClosed__Pub_c2_my_topic____c2_PubAck
+          In_SubscribeC2              -> 9 / Out_C1_ConnectionClosed__c2_SubAck__Pub_c2_my_topic_bye
+          In_UnSubScribeC2            -> 10 / Out_C1_ConnectionClosed__c2_UnSubAck
+          In_DisconnectTCPC1          -> 9 / Out_C1_ConnectionClosed__Empty
+          In_DisconnectC1             -> 9 / Out_C1_ConnectionClosed__Empty
+    10    In_ConnectC2                -> 11 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_ConnectC1WithWill        -> 14 / Out_C1_ConnAck__Empty
+          In_ConnectC1WithWillRetain  -> 15 / Out_C1_ConnAck__Empty
+          In_DeleteRetainedC1         -> 10 / Out_C1_ConnectionClosed__Empty
+          In_DeleteRetainedC2         -> 1 / Out_C1_ConnectionClosed__c2_PubAck
+          In_SubscribeC2              -> 9 / Out_C1_ConnectionClosed__c2_SubAck__Pub_c2_my_topic_bye
+          In_UnSubScribeC2            -> 10 / Out_C1_ConnectionClosed__c2_UnSubAck
+          In_DisconnectTCPC1          -> 10 / Out_C1_ConnectionClosed__Empty
+          In_DisconnectC1             -> 10 / Out_C1_ConnectionClosed__Empty
+    11    In_ConnectC2                -> 10 / Out_C1_ConnectionClosed__c2_ConnAck
+          In_ConnectC1WithWill        -> 12 / Out_C1_ConnAck__c2_ConnectionClosed
+          In_ConnectC1WithWillRetain  -> 13 / Out_C1_ConnAck__c2_ConnectionClosed
+          In_DeleteRetainedC1         -> 11 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_DeleteRetainedC2         -> 11 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_SubscribeC2              -> 11 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_UnSubScribeC2            -> 11 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_DisconnectTCPC1          -> 11 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_DisconnectC1             -> 11 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+    12    In_ConnectC2                -> 14 / Out_Empty__c2_ConnAck
+          In_ConnectC1WithWill        -> 11 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_ConnectC1WithWillRetain  -> 11 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_DeleteRetainedC1         -> 2 / Out_C1_PubAck__c2_ConnectionClosed
+          In_DeleteRetainedC2         -> 12 / Out_Empty__c2_ConnectionClosed
+          In_SubscribeC2              -> 12 / Out_Empty__c2_ConnectionClosed
+          In_UnSubScribeC2            -> 12 / Out_Empty__c2_ConnectionClosed
+          In_DisconnectTCPC1          -> 11 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_DisconnectC1             -> 11 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+    13    In_ConnectC2                -> 15 / Out_Empty__c2_ConnAck
+          In_ConnectC1WithWill        -> 11 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_ConnectC1WithWillRetain  -> 11 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_DeleteRetainedC1         -> 3 / Out_C1_PubAck__c2_ConnectionClosed
+          In_DeleteRetainedC2         -> 13 / Out_Empty__c2_ConnectionClosed
+          In_SubscribeC2              -> 13 / Out_Empty__c2_ConnectionClosed
+          In_UnSubScribeC2            -> 13 / Out_Empty__c2_ConnectionClosed
+          In_DisconnectTCPC1          -> 11 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_DisconnectC1             -> 11 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+    14    In_ConnectC2                -> 12 / Out_Empty__c2_ConnectionClosed
+          In_ConnectC1WithWill        -> 10 / Out_C1_ConnectionClosed__Empty
+          In_ConnectC1WithWillRetain  -> 10 / Out_C1_ConnectionClosed__Empty
+          In_DeleteRetainedC1         -> 4 / Out_C1_PubAck__Empty
+          In_DeleteRetainedC2         -> 4 / Out_Empty__c2_PubAck
+          In_SubscribeC2              -> 16 / Out_Empty__c2_SubAck__Pub_c2_my_topic_bye
+          In_UnSubScribeC2            -> 14 / Out_Empty__c2_UnSubAck
+          In_DisconnectTCPC1          -> 10 / Out_C1_ConnectionClosed__Empty
+          In_DisconnectC1             -> 10 / Out_C1_ConnectionClosed__Empty
+    15    In_ConnectC2                -> 13 / Out_Empty__c2_ConnectionClosed
+          In_ConnectC1WithWill        -> 10 / Out_C1_ConnectionClosed__Empty
+          In_ConnectC1WithWillRetain  -> 10 / Out_C1_ConnectionClosed__Empty
+          In_DeleteRetainedC1         -> 5 / Out_C1_PubAck__Empty
+          In_DeleteRetainedC2         -> 5 / Out_Empty__c2_PubAck
+          In_SubscribeC2              -> 17 / Out_Empty__c2_SubAck__Pub_c2_my_topic_bye
+          In_UnSubScribeC2            -> 15 / Out_Empty__c2_UnSubAck
+          In_DisconnectTCPC1          -> 10 / Out_C1_ConnectionClosed__Empty
+          In_DisconnectC1             -> 10 / Out_C1_ConnectionClosed__Empty
+    16    In_ConnectC2                -> 12 / Out_Empty__c2_ConnectionClosed
+          In_ConnectC1WithWill        -> 9 / Out_C1_ConnectionClosed__Pub_c2_my_topic_bye
+          In_ConnectC1WithWillRetain  -> 9 / Out_C1_ConnectionClosed__Pub_c2_my_topic_bye
+          In_DeleteRetainedC1         -> 7 / Out_C1_PubAck__Pub_c2_my_topic
+          In_DeleteRetainedC2         -> 7 / Out_Empty__Pub_c2_my_topic____c2_PubAck
+          In_SubscribeC2              -> 16 / Out_Empty__c2_SubAck__Pub_c2_my_topic_bye
+          In_UnSubScribeC2            -> 14 / Out_Empty__c2_UnSubAck
+          In_DisconnectTCPC1          -> 9 / Out_C1_ConnectionClosed__Pub_c2_my_topic_bye
+          In_DisconnectC1             -> 9 / Out_C1_ConnectionClosed__Empty
+    17    In_ConnectC2                -> 13 / Out_Empty__c2_ConnectionClosed
+          In_ConnectC1WithWill        -> 9 / Out_C1_ConnectionClosed__Pub_c2_my_topic_bye
+          In_ConnectC1WithWillRetain  -> 9 / Out_C1_ConnectionClosed__Pub_c2_my_topic_bye
+          In_DeleteRetainedC1         -> 8 / Out_C1_PubAck__Pub_c2_my_topic
+          In_DeleteRetainedC2         -> 8 / Out_Empty__Pub_c2_my_topic____c2_PubAck
+          In_SubscribeC2              -> 17 / Out_Empty__c2_SubAck__Pub_c2_my_topic_bye
+          In_UnSubScribeC2            -> 15 / Out_Empty__c2_UnSubAck
+          In_DisconnectTCPC1          -> 9 / Out_C1_ConnectionClosed__Pub_c2_my_topic_bye
+          In_DisconnectC1             -> 9 / Out_C1_ConnectionClosed__Empty
+-}
 mosquittoTwoClientWillRetain :: MealyAutomaton Int MosquittoTwoClientWillRetainInput MosquittoTwoClientWillRetainOutput
-mosquittoTwoClientWillRetain = mkMealyAutomaton delta lambda (Set.fromList [0..17]) 0
+mosquittoTwoClientWillRetain =
+    case mkMealyAutomatonTable 18 0 deltaTable lambdaTable of
+        Right m -> m
+        Left err -> error ("haal-gen: invalid transition table: " ++ err)
   where
-    delta 0 In_ConnectC2 = 1
-    delta 0 In_ConnectC1WithWill = 2
-    delta 0 In_ConnectC1WithWillRetain = 3
-    delta 0 In_DeleteRetainedC1 = 0
-    delta 0 In_DeleteRetainedC2 = 0
-    delta 0 In_SubscribeC2 = 0
-    delta 0 In_UnSubScribeC2 = 0
-    delta 0 In_DisconnectTCPC1 = 0
-    delta 0 In_DisconnectC1 = 0
-    delta 1 In_ConnectC2 = 0
-    delta 1 In_ConnectC1WithWill = 4
-    delta 1 In_ConnectC1WithWillRetain = 5
-    delta 1 In_DeleteRetainedC1 = 1
-    delta 1 In_DeleteRetainedC2 = 1
-    delta 1 In_SubscribeC2 = 6
-    delta 1 In_UnSubScribeC2 = 1
-    delta 1 In_DisconnectTCPC1 = 1
-    delta 1 In_DisconnectC1 = 1
-    delta 4 In_ConnectC2 = 2
-    delta 4 In_ConnectC1WithWill = 1
-    delta 4 In_ConnectC1WithWillRetain = 1
-    delta 4 In_DeleteRetainedC1 = 4
-    delta 4 In_DeleteRetainedC2 = 4
-    delta 4 In_SubscribeC2 = 7
-    delta 4 In_UnSubScribeC2 = 4
-    delta 4 In_DisconnectTCPC1 = 1
-    delta 4 In_DisconnectC1 = 1
-    delta 2 In_ConnectC2 = 4
-    delta 2 In_ConnectC1WithWill = 0
-    delta 2 In_ConnectC1WithWillRetain = 0
-    delta 2 In_DeleteRetainedC1 = 2
-    delta 2 In_DeleteRetainedC2 = 2
-    delta 2 In_SubscribeC2 = 2
-    delta 2 In_UnSubScribeC2 = 2
-    delta 2 In_DisconnectTCPC1 = 0
-    delta 2 In_DisconnectC1 = 0
-    delta 6 In_ConnectC2 = 0
-    delta 6 In_ConnectC1WithWill = 7
-    delta 6 In_ConnectC1WithWillRetain = 8
-    delta 6 In_DeleteRetainedC1 = 6
-    delta 6 In_DeleteRetainedC2 = 6
-    delta 6 In_SubscribeC2 = 6
-    delta 6 In_UnSubScribeC2 = 1
-    delta 6 In_DisconnectTCPC1 = 6
-    delta 6 In_DisconnectC1 = 6
-    delta 8 In_ConnectC2 = 3
-    delta 8 In_ConnectC1WithWill = 9
-    delta 8 In_ConnectC1WithWillRetain = 9
-    delta 8 In_DeleteRetainedC1 = 8
-    delta 8 In_DeleteRetainedC2 = 8
-    delta 8 In_SubscribeC2 = 8
-    delta 8 In_UnSubScribeC2 = 5
-    delta 8 In_DisconnectTCPC1 = 9
-    delta 8 In_DisconnectC1 = 6
-    delta 5 In_ConnectC2 = 3
-    delta 5 In_ConnectC1WithWill = 10
-    delta 5 In_ConnectC1WithWillRetain = 10
-    delta 5 In_DeleteRetainedC1 = 5
-    delta 5 In_DeleteRetainedC2 = 5
-    delta 5 In_SubscribeC2 = 8
-    delta 5 In_UnSubScribeC2 = 5
-    delta 5 In_DisconnectTCPC1 = 10
-    delta 5 In_DisconnectC1 = 1
-    delta 3 In_ConnectC2 = 5
-    delta 3 In_ConnectC1WithWill = 11
-    delta 3 In_ConnectC1WithWillRetain = 11
-    delta 3 In_DeleteRetainedC1 = 3
-    delta 3 In_DeleteRetainedC2 = 3
-    delta 3 In_SubscribeC2 = 3
-    delta 3 In_UnSubScribeC2 = 3
-    delta 3 In_DisconnectTCPC1 = 11
-    delta 3 In_DisconnectC1 = 0
-    delta 11 In_ConnectC2 = 10
-    delta 11 In_ConnectC1WithWill = 12
-    delta 11 In_ConnectC1WithWillRetain = 13
-    delta 11 In_DeleteRetainedC1 = 11
-    delta 11 In_DeleteRetainedC2 = 11
-    delta 11 In_SubscribeC2 = 11
-    delta 11 In_UnSubScribeC2 = 11
-    delta 11 In_DisconnectTCPC1 = 11
-    delta 11 In_DisconnectC1 = 11
-    delta 10 In_ConnectC2 = 11
-    delta 10 In_ConnectC1WithWill = 14
-    delta 10 In_ConnectC1WithWillRetain = 15
-    delta 10 In_DeleteRetainedC1 = 10
-    delta 10 In_DeleteRetainedC2 = 1
-    delta 10 In_SubscribeC2 = 9
-    delta 10 In_UnSubScribeC2 = 10
-    delta 10 In_DisconnectTCPC1 = 10
-    delta 10 In_DisconnectC1 = 10
-    delta 12 In_ConnectC2 = 14
-    delta 12 In_ConnectC1WithWill = 11
-    delta 12 In_ConnectC1WithWillRetain = 11
-    delta 12 In_DeleteRetainedC1 = 2
-    delta 12 In_DeleteRetainedC2 = 12
-    delta 12 In_SubscribeC2 = 12
-    delta 12 In_UnSubScribeC2 = 12
-    delta 12 In_DisconnectTCPC1 = 11
-    delta 12 In_DisconnectC1 = 11
-    delta 14 In_ConnectC2 = 12
-    delta 14 In_ConnectC1WithWill = 10
-    delta 14 In_ConnectC1WithWillRetain = 10
-    delta 14 In_DeleteRetainedC1 = 4
-    delta 14 In_DeleteRetainedC2 = 4
-    delta 14 In_SubscribeC2 = 16
-    delta 14 In_UnSubScribeC2 = 14
-    delta 14 In_DisconnectTCPC1 = 10
-    delta 14 In_DisconnectC1 = 10
-    delta 9 In_ConnectC2 = 11
-    delta 9 In_ConnectC1WithWill = 16
-    delta 9 In_ConnectC1WithWillRetain = 17
-    delta 9 In_DeleteRetainedC1 = 9
-    delta 9 In_DeleteRetainedC2 = 6
-    delta 9 In_SubscribeC2 = 9
-    delta 9 In_UnSubScribeC2 = 10
-    delta 9 In_DisconnectTCPC1 = 9
-    delta 9 In_DisconnectC1 = 9
-    delta 17 In_ConnectC2 = 13
-    delta 17 In_ConnectC1WithWill = 9
-    delta 17 In_ConnectC1WithWillRetain = 9
-    delta 17 In_DeleteRetainedC1 = 8
-    delta 17 In_DeleteRetainedC2 = 8
-    delta 17 In_SubscribeC2 = 17
-    delta 17 In_UnSubScribeC2 = 15
-    delta 17 In_DisconnectTCPC1 = 9
-    delta 17 In_DisconnectC1 = 9
-    delta 7 In_ConnectC2 = 2
-    delta 7 In_ConnectC1WithWill = 6
-    delta 7 In_ConnectC1WithWillRetain = 6
-    delta 7 In_DeleteRetainedC1 = 7
-    delta 7 In_DeleteRetainedC2 = 7
-    delta 7 In_SubscribeC2 = 7
-    delta 7 In_UnSubScribeC2 = 4
-    delta 7 In_DisconnectTCPC1 = 6
-    delta 7 In_DisconnectC1 = 6
-    delta 16 In_ConnectC2 = 12
-    delta 16 In_ConnectC1WithWill = 9
-    delta 16 In_ConnectC1WithWillRetain = 9
-    delta 16 In_DeleteRetainedC1 = 7
-    delta 16 In_DeleteRetainedC2 = 7
-    delta 16 In_SubscribeC2 = 16
-    delta 16 In_UnSubScribeC2 = 14
-    delta 16 In_DisconnectTCPC1 = 9
-    delta 16 In_DisconnectC1 = 9
-    delta 13 In_ConnectC2 = 15
-    delta 13 In_ConnectC1WithWill = 11
-    delta 13 In_ConnectC1WithWillRetain = 11
-    delta 13 In_DeleteRetainedC1 = 3
-    delta 13 In_DeleteRetainedC2 = 13
-    delta 13 In_SubscribeC2 = 13
-    delta 13 In_UnSubScribeC2 = 13
-    delta 13 In_DisconnectTCPC1 = 11
-    delta 13 In_DisconnectC1 = 11
-    delta 15 In_ConnectC2 = 13
-    delta 15 In_ConnectC1WithWill = 10
-    delta 15 In_ConnectC1WithWillRetain = 10
-    delta 15 In_DeleteRetainedC1 = 5
-    delta 15 In_DeleteRetainedC2 = 5
-    delta 15 In_SubscribeC2 = 17
-    delta 15 In_UnSubScribeC2 = 15
-    delta 15 In_DisconnectTCPC1 = 10
-    delta 15 In_DisconnectC1 = 10
-    delta _ _ = error "haal-gen: undefined transition"
-    lambda 0 In_ConnectC2 = Out_C1_ConnectionClosed__c2_ConnAck
-    lambda 0 In_ConnectC1WithWill = Out_C1_ConnAck__c2_ConnectionClosed
-    lambda 0 In_ConnectC1WithWillRetain = Out_C1_ConnAck__c2_ConnectionClosed
-    lambda 0 In_DeleteRetainedC1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 0 In_DeleteRetainedC2 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 0 In_SubscribeC2 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 0 In_UnSubScribeC2 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 0 In_DisconnectTCPC1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 0 In_DisconnectC1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 1 In_ConnectC2 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 1 In_ConnectC1WithWill = Out_C1_ConnAck__Empty
-    lambda 1 In_ConnectC1WithWillRetain = Out_C1_ConnAck__Empty
-    lambda 1 In_DeleteRetainedC1 = Out_C1_ConnectionClosed__Empty
-    lambda 1 In_DeleteRetainedC2 = Out_C1_ConnectionClosed__c2_PubAck
-    lambda 1 In_SubscribeC2 = Out_C1_ConnectionClosed__c2_SubAck
-    lambda 1 In_UnSubScribeC2 = Out_C1_ConnectionClosed__c2_UnSubAck
-    lambda 1 In_DisconnectTCPC1 = Out_C1_ConnectionClosed__Empty
-    lambda 1 In_DisconnectC1 = Out_C1_ConnectionClosed__Empty
-    lambda 4 In_ConnectC2 = Out_Empty__c2_ConnectionClosed
-    lambda 4 In_ConnectC1WithWill = Out_C1_ConnectionClosed__Empty
-    lambda 4 In_ConnectC1WithWillRetain = Out_C1_ConnectionClosed__Empty
-    lambda 4 In_DeleteRetainedC1 = Out_C1_PubAck__Empty
-    lambda 4 In_DeleteRetainedC2 = Out_Empty__c2_PubAck
-    lambda 4 In_SubscribeC2 = Out_Empty__c2_SubAck
-    lambda 4 In_UnSubScribeC2 = Out_Empty__c2_UnSubAck
-    lambda 4 In_DisconnectTCPC1 = Out_C1_ConnectionClosed__Empty
-    lambda 4 In_DisconnectC1 = Out_C1_ConnectionClosed__Empty
-    lambda 2 In_ConnectC2 = Out_Empty__c2_ConnAck
-    lambda 2 In_ConnectC1WithWill = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 2 In_ConnectC1WithWillRetain = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 2 In_DeleteRetainedC1 = Out_C1_PubAck__c2_ConnectionClosed
-    lambda 2 In_DeleteRetainedC2 = Out_Empty__c2_ConnectionClosed
-    lambda 2 In_SubscribeC2 = Out_Empty__c2_ConnectionClosed
-    lambda 2 In_UnSubScribeC2 = Out_Empty__c2_ConnectionClosed
-    lambda 2 In_DisconnectTCPC1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 2 In_DisconnectC1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 6 In_ConnectC2 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 6 In_ConnectC1WithWill = Out_C1_ConnAck__Empty
-    lambda 6 In_ConnectC1WithWillRetain = Out_C1_ConnAck__Empty
-    lambda 6 In_DeleteRetainedC1 = Out_C1_ConnectionClosed__Empty
-    lambda 6 In_DeleteRetainedC2 = Out_C1_ConnectionClosed__Pub_c2_my_topic____c2_PubAck
-    lambda 6 In_SubscribeC2 = Out_C1_ConnectionClosed__c2_SubAck
-    lambda 6 In_UnSubScribeC2 = Out_C1_ConnectionClosed__c2_UnSubAck
-    lambda 6 In_DisconnectTCPC1 = Out_C1_ConnectionClosed__Empty
-    lambda 6 In_DisconnectC1 = Out_C1_ConnectionClosed__Empty
-    lambda 8 In_ConnectC2 = Out_Empty__c2_ConnectionClosed
-    lambda 8 In_ConnectC1WithWill = Out_C1_ConnectionClosed__Pub_c2_my_topic_bye
-    lambda 8 In_ConnectC1WithWillRetain = Out_C1_ConnectionClosed__Pub_c2_my_topic_bye
-    lambda 8 In_DeleteRetainedC1 = Out_C1_PubAck__Pub_c2_my_topic
-    lambda 8 In_DeleteRetainedC2 = Out_Empty__Pub_c2_my_topic____c2_PubAck
-    lambda 8 In_SubscribeC2 = Out_Empty__c2_SubAck
-    lambda 8 In_UnSubScribeC2 = Out_Empty__c2_UnSubAck
-    lambda 8 In_DisconnectTCPC1 = Out_C1_ConnectionClosed__Pub_c2_my_topic_bye
-    lambda 8 In_DisconnectC1 = Out_C1_ConnectionClosed__Empty
-    lambda 5 In_ConnectC2 = Out_Empty__c2_ConnectionClosed
-    lambda 5 In_ConnectC1WithWill = Out_C1_ConnectionClosed__Empty
-    lambda 5 In_ConnectC1WithWillRetain = Out_C1_ConnectionClosed__Empty
-    lambda 5 In_DeleteRetainedC1 = Out_C1_PubAck__Empty
-    lambda 5 In_DeleteRetainedC2 = Out_Empty__c2_PubAck
-    lambda 5 In_SubscribeC2 = Out_Empty__c2_SubAck
-    lambda 5 In_UnSubScribeC2 = Out_Empty__c2_UnSubAck
-    lambda 5 In_DisconnectTCPC1 = Out_C1_ConnectionClosed__Empty
-    lambda 5 In_DisconnectC1 = Out_C1_ConnectionClosed__Empty
-    lambda 3 In_ConnectC2 = Out_Empty__c2_ConnAck
-    lambda 3 In_ConnectC1WithWill = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 3 In_ConnectC1WithWillRetain = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 3 In_DeleteRetainedC1 = Out_C1_PubAck__c2_ConnectionClosed
-    lambda 3 In_DeleteRetainedC2 = Out_Empty__c2_ConnectionClosed
-    lambda 3 In_SubscribeC2 = Out_Empty__c2_ConnectionClosed
-    lambda 3 In_UnSubScribeC2 = Out_Empty__c2_ConnectionClosed
-    lambda 3 In_DisconnectTCPC1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 3 In_DisconnectC1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 11 In_ConnectC2 = Out_C1_ConnectionClosed__c2_ConnAck
-    lambda 11 In_ConnectC1WithWill = Out_C1_ConnAck__c2_ConnectionClosed
-    lambda 11 In_ConnectC1WithWillRetain = Out_C1_ConnAck__c2_ConnectionClosed
-    lambda 11 In_DeleteRetainedC1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 11 In_DeleteRetainedC2 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 11 In_SubscribeC2 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 11 In_UnSubScribeC2 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 11 In_DisconnectTCPC1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 11 In_DisconnectC1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 10 In_ConnectC2 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 10 In_ConnectC1WithWill = Out_C1_ConnAck__Empty
-    lambda 10 In_ConnectC1WithWillRetain = Out_C1_ConnAck__Empty
-    lambda 10 In_DeleteRetainedC1 = Out_C1_ConnectionClosed__Empty
-    lambda 10 In_DeleteRetainedC2 = Out_C1_ConnectionClosed__c2_PubAck
-    lambda 10 In_SubscribeC2 = Out_C1_ConnectionClosed__c2_SubAck__Pub_c2_my_topic_bye
-    lambda 10 In_UnSubScribeC2 = Out_C1_ConnectionClosed__c2_UnSubAck
-    lambda 10 In_DisconnectTCPC1 = Out_C1_ConnectionClosed__Empty
-    lambda 10 In_DisconnectC1 = Out_C1_ConnectionClosed__Empty
-    lambda 12 In_ConnectC2 = Out_Empty__c2_ConnAck
-    lambda 12 In_ConnectC1WithWill = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 12 In_ConnectC1WithWillRetain = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 12 In_DeleteRetainedC1 = Out_C1_PubAck__c2_ConnectionClosed
-    lambda 12 In_DeleteRetainedC2 = Out_Empty__c2_ConnectionClosed
-    lambda 12 In_SubscribeC2 = Out_Empty__c2_ConnectionClosed
-    lambda 12 In_UnSubScribeC2 = Out_Empty__c2_ConnectionClosed
-    lambda 12 In_DisconnectTCPC1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 12 In_DisconnectC1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 14 In_ConnectC2 = Out_Empty__c2_ConnectionClosed
-    lambda 14 In_ConnectC1WithWill = Out_C1_ConnectionClosed__Empty
-    lambda 14 In_ConnectC1WithWillRetain = Out_C1_ConnectionClosed__Empty
-    lambda 14 In_DeleteRetainedC1 = Out_C1_PubAck__Empty
-    lambda 14 In_DeleteRetainedC2 = Out_Empty__c2_PubAck
-    lambda 14 In_SubscribeC2 = Out_Empty__c2_SubAck__Pub_c2_my_topic_bye
-    lambda 14 In_UnSubScribeC2 = Out_Empty__c2_UnSubAck
-    lambda 14 In_DisconnectTCPC1 = Out_C1_ConnectionClosed__Empty
-    lambda 14 In_DisconnectC1 = Out_C1_ConnectionClosed__Empty
-    lambda 9 In_ConnectC2 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 9 In_ConnectC1WithWill = Out_C1_ConnAck__Empty
-    lambda 9 In_ConnectC1WithWillRetain = Out_C1_ConnAck__Empty
-    lambda 9 In_DeleteRetainedC1 = Out_C1_ConnectionClosed__Empty
-    lambda 9 In_DeleteRetainedC2 = Out_C1_ConnectionClosed__Pub_c2_my_topic____c2_PubAck
-    lambda 9 In_SubscribeC2 = Out_C1_ConnectionClosed__c2_SubAck__Pub_c2_my_topic_bye
-    lambda 9 In_UnSubScribeC2 = Out_C1_ConnectionClosed__c2_UnSubAck
-    lambda 9 In_DisconnectTCPC1 = Out_C1_ConnectionClosed__Empty
-    lambda 9 In_DisconnectC1 = Out_C1_ConnectionClosed__Empty
-    lambda 17 In_ConnectC2 = Out_Empty__c2_ConnectionClosed
-    lambda 17 In_ConnectC1WithWill = Out_C1_ConnectionClosed__Pub_c2_my_topic_bye
-    lambda 17 In_ConnectC1WithWillRetain = Out_C1_ConnectionClosed__Pub_c2_my_topic_bye
-    lambda 17 In_DeleteRetainedC1 = Out_C1_PubAck__Pub_c2_my_topic
-    lambda 17 In_DeleteRetainedC2 = Out_Empty__Pub_c2_my_topic____c2_PubAck
-    lambda 17 In_SubscribeC2 = Out_Empty__c2_SubAck__Pub_c2_my_topic_bye
-    lambda 17 In_UnSubScribeC2 = Out_Empty__c2_UnSubAck
-    lambda 17 In_DisconnectTCPC1 = Out_C1_ConnectionClosed__Pub_c2_my_topic_bye
-    lambda 17 In_DisconnectC1 = Out_C1_ConnectionClosed__Empty
-    lambda 7 In_ConnectC2 = Out_Empty__c2_ConnectionClosed
-    lambda 7 In_ConnectC1WithWill = Out_C1_ConnectionClosed__Pub_c2_my_topic_bye
-    lambda 7 In_ConnectC1WithWillRetain = Out_C1_ConnectionClosed__Pub_c2_my_topic_bye
-    lambda 7 In_DeleteRetainedC1 = Out_C1_PubAck__Pub_c2_my_topic
-    lambda 7 In_DeleteRetainedC2 = Out_Empty__Pub_c2_my_topic____c2_PubAck
-    lambda 7 In_SubscribeC2 = Out_Empty__c2_SubAck
-    lambda 7 In_UnSubScribeC2 = Out_Empty__c2_UnSubAck
-    lambda 7 In_DisconnectTCPC1 = Out_C1_ConnectionClosed__Pub_c2_my_topic_bye
-    lambda 7 In_DisconnectC1 = Out_C1_ConnectionClosed__Empty
-    lambda 16 In_ConnectC2 = Out_Empty__c2_ConnectionClosed
-    lambda 16 In_ConnectC1WithWill = Out_C1_ConnectionClosed__Pub_c2_my_topic_bye
-    lambda 16 In_ConnectC1WithWillRetain = Out_C1_ConnectionClosed__Pub_c2_my_topic_bye
-    lambda 16 In_DeleteRetainedC1 = Out_C1_PubAck__Pub_c2_my_topic
-    lambda 16 In_DeleteRetainedC2 = Out_Empty__Pub_c2_my_topic____c2_PubAck
-    lambda 16 In_SubscribeC2 = Out_Empty__c2_SubAck__Pub_c2_my_topic_bye
-    lambda 16 In_UnSubScribeC2 = Out_Empty__c2_UnSubAck
-    lambda 16 In_DisconnectTCPC1 = Out_C1_ConnectionClosed__Pub_c2_my_topic_bye
-    lambda 16 In_DisconnectC1 = Out_C1_ConnectionClosed__Empty
-    lambda 13 In_ConnectC2 = Out_Empty__c2_ConnAck
-    lambda 13 In_ConnectC1WithWill = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 13 In_ConnectC1WithWillRetain = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 13 In_DeleteRetainedC1 = Out_C1_PubAck__c2_ConnectionClosed
-    lambda 13 In_DeleteRetainedC2 = Out_Empty__c2_ConnectionClosed
-    lambda 13 In_SubscribeC2 = Out_Empty__c2_ConnectionClosed
-    lambda 13 In_UnSubScribeC2 = Out_Empty__c2_ConnectionClosed
-    lambda 13 In_DisconnectTCPC1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 13 In_DisconnectC1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 15 In_ConnectC2 = Out_Empty__c2_ConnectionClosed
-    lambda 15 In_ConnectC1WithWill = Out_C1_ConnectionClosed__Empty
-    lambda 15 In_ConnectC1WithWillRetain = Out_C1_ConnectionClosed__Empty
-    lambda 15 In_DeleteRetainedC1 = Out_C1_PubAck__Empty
-    lambda 15 In_DeleteRetainedC2 = Out_Empty__c2_PubAck
-    lambda 15 In_SubscribeC2 = Out_Empty__c2_SubAck__Pub_c2_my_topic_bye
-    lambda 15 In_UnSubScribeC2 = Out_Empty__c2_UnSubAck
-    lambda 15 In_DisconnectTCPC1 = Out_C1_ConnectionClosed__Empty
-    lambda 15 In_DisconnectC1 = Out_C1_ConnectionClosed__Empty
-    lambda _ _ = error "haal-gen: undefined transition"
+    deltaTable =
+        "\1\2\3\0\0\0\0\0\0\
+        \\0\4\5\1\1\6\1\1\1\
+        \\4\0\0\2\2\2\2\0\0\
+        \\5\11\11\3\3\3\3\11\0\
+        \\2\1\1\4\4\7\4\1\1\
+        \\3\10\10\5\5\8\5\10\1\
+        \\0\7\8\6\6\6\1\6\6\
+        \\2\6\6\7\7\7\4\6\6\
+        \\3\9\9\8\8\8\5\9\6\
+        \\11\16\17\9\6\9\10\9\9\
+        \\11\14\15\10\1\9\10\10\10\
+        \\10\12\13\11\11\11\11\11\11\
+        \\14\11\11\2\12\12\12\11\11\
+        \\15\11\11\3\13\13\13\11\11\
+        \\12\10\10\4\4\16\14\10\10\
+        \\13\10\10\5\5\17\15\10\10\
+        \\12\9\9\7\7\16\14\9\9\
+        \\13\9\9\8\8\17\15\9\9"
+    lambdaTable =
+        "\0\1\1\2\2\2\2\2\2\
+        \\2\3\3\4\5\6\7\4\4\
+        \\13\2\2\14\8\8\8\2\2\
+        \\13\2\2\14\8\8\8\2\2\
+        \\8\4\4\9\10\11\12\4\4\
+        \\8\4\4\9\10\11\12\4\4\
+        \\2\3\3\4\15\6\7\4\4\
+        \\8\16\16\17\18\11\12\16\4\
+        \\8\16\16\17\18\11\12\16\4\
+        \\2\3\3\4\15\19\7\4\4\
+        \\2\3\3\4\5\19\7\4\4\
+        \\0\1\1\2\2\2\2\2\2\
+        \\13\2\2\14\8\8\8\2\2\
+        \\13\2\2\14\8\8\8\2\2\
+        \\8\4\4\9\10\20\12\4\4\
+        \\8\4\4\9\10\20\12\4\4\
+        \\8\16\16\17\18\20\12\16\4\
+        \\8\16\16\17\18\20\12\16\4"
diff --git a/src/Haal/Models/MQTT/VerneMQInvalid.hs b/src/Haal/Models/MQTT/VerneMQInvalid.hs
--- a/src/Haal/Models/MQTT/VerneMQInvalid.hs
+++ b/src/Haal/Models/MQTT/VerneMQInvalid.hs
@@ -5,8 +5,7 @@
     , verneMQInvalid
     ) where
 
-import qualified Data.Set as Set
-import Haal.Automaton.MealyAutomaton (MealyAutomaton, mkMealyAutomaton)
+import Haal.Automaton.MealyAutomaton (MealyAutomaton, mkMealyAutomatonTable)
 
 data VerneMQInvalidInput
     = In_Connect
@@ -32,74 +31,52 @@
     | Out_Pub_my_topic_messageQos0
     deriving (Show, Eq, Ord, Enum, Bounded)
 
+{- Transitions (state  input -> next state / output):
+    0     In_Connect               -> 1 / Out_ConnAckPacket_false_0
+          In_ConnectNonClean       -> 0 / Out_ConnectionClosed__ConnAckPacket_false_2
+          In_PublishQoS0Dup        -> 0 / Out_ConnectionClosed
+          In_PublishQoSMinus1      -> 0 / Out_ConnectionClosed
+          In_PublishWildCard       -> 0 / Out_ConnectionClosed
+          In_SubscribeWildMatch    -> 0 / Out_ConnectionClosed
+          In_UnSubscribeWildMatch  -> 0 / Out_ConnectionClosed
+          In_Subscribe             -> 0 / Out_ConnectionClosed
+          In_SubscribeMinus1       -> 0 / Out_ConnectionClosed
+          In_UnSubScribe           -> 0 / Out_ConnectionClosed
+          In_Disconnect            -> 0 / Out_ConnectionClosed
+    1     In_Connect               -> 0 / Out_ConnectionClosed
+          In_ConnectNonClean       -> 0 / Out_ConnectionClosed
+          In_PublishQoS0Dup        -> 1 / Out_Empty
+          In_PublishQoSMinus1      -> 0 / Out_ConnectionClosed
+          In_PublishWildCard       -> 0 / Out_ConnectionClosed
+          In_SubscribeWildMatch    -> 1 / Out_SubAck
+          In_UnSubscribeWildMatch  -> 1 / Out_UnSubAck
+          In_Subscribe             -> 2 / Out_SubAck
+          In_SubscribeMinus1       -> 0 / Out_ConnectionClosed
+          In_UnSubScribe           -> 1 / Out_UnSubAck
+          In_Disconnect            -> 0 / Out_ConnectionClosed
+    2     In_Connect               -> 0 / Out_ConnectionClosed
+          In_ConnectNonClean       -> 0 / Out_ConnectionClosed
+          In_PublishQoS0Dup        -> 2 / Out_Pub_my_topic_messageQos0
+          In_PublishQoSMinus1      -> 0 / Out_ConnectionClosed
+          In_PublishWildCard       -> 0 / Out_ConnectionClosed
+          In_SubscribeWildMatch    -> 2 / Out_SubAck
+          In_UnSubscribeWildMatch  -> 2 / Out_UnSubAck
+          In_Subscribe             -> 2 / Out_SubAck
+          In_SubscribeMinus1       -> 0 / Out_ConnectionClosed
+          In_UnSubScribe           -> 1 / Out_UnSubAck
+          In_Disconnect            -> 0 / Out_ConnectionClosed
+-}
 verneMQInvalid :: MealyAutomaton Int VerneMQInvalidInput VerneMQInvalidOutput
-verneMQInvalid = mkMealyAutomaton delta lambda (Set.fromList [0..2]) 0
+verneMQInvalid =
+    case mkMealyAutomatonTable 3 0 deltaTable lambdaTable of
+        Right m -> m
+        Left err -> error ("haal-gen: invalid transition table: " ++ err)
   where
-    delta 0 In_Connect = 1
-    delta 0 In_ConnectNonClean = 0
-    delta 0 In_PublishQoS0Dup = 0
-    delta 0 In_PublishQoSMinus1 = 0
-    delta 0 In_PublishWildCard = 0
-    delta 0 In_SubscribeWildMatch = 0
-    delta 0 In_UnSubscribeWildMatch = 0
-    delta 0 In_Subscribe = 0
-    delta 0 In_SubscribeMinus1 = 0
-    delta 0 In_UnSubScribe = 0
-    delta 0 In_Disconnect = 0
-    delta 1 In_Connect = 0
-    delta 1 In_ConnectNonClean = 0
-    delta 1 In_PublishQoS0Dup = 1
-    delta 1 In_PublishQoSMinus1 = 0
-    delta 1 In_PublishWildCard = 0
-    delta 1 In_SubscribeWildMatch = 1
-    delta 1 In_UnSubscribeWildMatch = 1
-    delta 1 In_Subscribe = 2
-    delta 1 In_SubscribeMinus1 = 0
-    delta 1 In_UnSubScribe = 1
-    delta 1 In_Disconnect = 0
-    delta 2 In_Connect = 0
-    delta 2 In_ConnectNonClean = 0
-    delta 2 In_PublishQoS0Dup = 2
-    delta 2 In_PublishQoSMinus1 = 0
-    delta 2 In_PublishWildCard = 0
-    delta 2 In_SubscribeWildMatch = 2
-    delta 2 In_UnSubscribeWildMatch = 2
-    delta 2 In_Subscribe = 2
-    delta 2 In_SubscribeMinus1 = 0
-    delta 2 In_UnSubScribe = 1
-    delta 2 In_Disconnect = 0
-    delta _ _ = error "haal-gen: undefined transition"
-    lambda 0 In_Connect = Out_ConnAckPacket_false_0
-    lambda 0 In_ConnectNonClean = Out_ConnectionClosed__ConnAckPacket_false_2
-    lambda 0 In_PublishQoS0Dup = Out_ConnectionClosed
-    lambda 0 In_PublishQoSMinus1 = Out_ConnectionClosed
-    lambda 0 In_PublishWildCard = Out_ConnectionClosed
-    lambda 0 In_SubscribeWildMatch = Out_ConnectionClosed
-    lambda 0 In_UnSubscribeWildMatch = Out_ConnectionClosed
-    lambda 0 In_Subscribe = Out_ConnectionClosed
-    lambda 0 In_SubscribeMinus1 = Out_ConnectionClosed
-    lambda 0 In_UnSubScribe = Out_ConnectionClosed
-    lambda 0 In_Disconnect = Out_ConnectionClosed
-    lambda 1 In_Connect = Out_ConnectionClosed
-    lambda 1 In_ConnectNonClean = Out_ConnectionClosed
-    lambda 1 In_PublishQoS0Dup = Out_Empty
-    lambda 1 In_PublishQoSMinus1 = Out_ConnectionClosed
-    lambda 1 In_PublishWildCard = Out_ConnectionClosed
-    lambda 1 In_SubscribeWildMatch = Out_SubAck
-    lambda 1 In_UnSubscribeWildMatch = Out_UnSubAck
-    lambda 1 In_Subscribe = Out_SubAck
-    lambda 1 In_SubscribeMinus1 = Out_ConnectionClosed
-    lambda 1 In_UnSubScribe = Out_UnSubAck
-    lambda 1 In_Disconnect = Out_ConnectionClosed
-    lambda 2 In_Connect = Out_ConnectionClosed
-    lambda 2 In_ConnectNonClean = Out_ConnectionClosed
-    lambda 2 In_PublishQoS0Dup = Out_Pub_my_topic_messageQos0
-    lambda 2 In_PublishQoSMinus1 = Out_ConnectionClosed
-    lambda 2 In_PublishWildCard = Out_ConnectionClosed
-    lambda 2 In_SubscribeWildMatch = Out_SubAck
-    lambda 2 In_UnSubscribeWildMatch = Out_UnSubAck
-    lambda 2 In_Subscribe = Out_SubAck
-    lambda 2 In_SubscribeMinus1 = Out_ConnectionClosed
-    lambda 2 In_UnSubScribe = Out_UnSubAck
-    lambda 2 In_Disconnect = Out_ConnectionClosed
-    lambda _ _ = error "haal-gen: undefined transition"
+    deltaTable =
+        "\1\0\0\0\0\0\0\0\0\0\0\
+        \\0\0\1\0\0\1\1\2\0\1\0\
+        \\0\0\2\0\0\2\2\2\0\1\0"
+    lambdaTable =
+        "\0\1\2\2\2\2\2\2\2\2\2\
+        \\2\2\3\2\2\4\5\4\2\5\2\
+        \\2\2\6\2\2\4\5\4\2\5\2"
diff --git a/src/Haal/Models/MQTT/VerneMQNonClean.hs b/src/Haal/Models/MQTT/VerneMQNonClean.hs
--- a/src/Haal/Models/MQTT/VerneMQNonClean.hs
+++ b/src/Haal/Models/MQTT/VerneMQNonClean.hs
@@ -5,8 +5,7 @@
     , verneMQNonClean
     ) where
 
-import qualified Data.Set as Set
-import Haal.Automaton.MealyAutomaton (MealyAutomaton, mkMealyAutomaton)
+import Haal.Automaton.MealyAutomaton (MealyAutomaton, mkMealyAutomatonTable)
 
 data VerneMQNonCleanInput
     = In_ConnectC2
@@ -38,152 +37,109 @@
     | Out_C1_ConnectionClosed__c2_Pub_my_topic_messageQos1_1___c2_Pub_my_topic_messageQos1_1___c2_ConnAck
     deriving (Show, Eq, Ord, Enum, Bounded)
 
+{- Transitions (state  input -> next state / output):
+    0     In_ConnectC2        -> 1 / Out_C1_ConnectionClosed__c2_ConnAck
+          In_ConnectC1        -> 2 / Out_C1_ConnAck__c2_ConnectionClosed
+          In_PublishQoS1C1    -> 0 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_SubscribeC2QoS1  -> 0 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_UnSubscribeC2    -> 0 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_DisconnectC2     -> 0 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+    1     In_ConnectC2        -> 0 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_ConnectC1        -> 3 / Out_C1_ConnAck__Empty
+          In_PublishQoS1C1    -> 1 / Out_C1_ConnectionClosed__Empty
+          In_SubscribeC2QoS1  -> 4 / Out_C1_ConnectionClosed__c2_SubAck
+          In_UnSubscribeC2    -> 1 / Out_C1_ConnectionClosed__c2_UnSubAck
+          In_DisconnectC2     -> 0 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+    2     In_ConnectC2        -> 3 / Out_Empty__c2_ConnAck
+          In_ConnectC1        -> 0 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_PublishQoS1C1    -> 2 / Out_C1_PubAck__c2_ConnectionClosed
+          In_SubscribeC2QoS1  -> 2 / Out_Empty__c2_ConnectionClosed
+          In_UnSubscribeC2    -> 2 / Out_Empty__c2_ConnectionClosed
+          In_DisconnectC2     -> 2 / Out_Empty__c2_ConnectionClosed
+    3     In_ConnectC2        -> 2 / Out_Empty__c2_ConnectionClosed
+          In_ConnectC1        -> 1 / Out_C1_ConnectionClosed__Empty
+          In_PublishQoS1C1    -> 3 / Out_C1_PubAck__Empty
+          In_SubscribeC2QoS1  -> 5 / Out_Empty__c2_SubAck
+          In_UnSubscribeC2    -> 3 / Out_Empty__c2_UnSubAck
+          In_DisconnectC2     -> 2 / Out_Empty__c2_ConnectionClosed
+    4     In_ConnectC2        -> 6 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_ConnectC1        -> 5 / Out_C1_ConnAck__Empty
+          In_PublishQoS1C1    -> 4 / Out_C1_ConnectionClosed__Empty
+          In_SubscribeC2QoS1  -> 4 / Out_C1_ConnectionClosed__c2_SubAck
+          In_UnSubscribeC2    -> 1 / Out_C1_ConnectionClosed__c2_UnSubAck
+          In_DisconnectC2     -> 6 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+    5     In_ConnectC2        -> 7 / Out_Empty__c2_ConnectionClosed
+          In_ConnectC1        -> 4 / Out_C1_ConnectionClosed__Empty
+          In_PublishQoS1C1    -> 5 / Out_C1_PubAck__c2_Pub_my_topic_messageQos1_1
+          In_SubscribeC2QoS1  -> 5 / Out_Empty__c2_SubAck
+          In_UnSubscribeC2    -> 3 / Out_Empty__c2_UnSubAck
+          In_DisconnectC2     -> 7 / Out_Empty__c2_ConnectionClosed
+    6     In_ConnectC2        -> 4 / Out_C1_ConnectionClosed__c2_ConnAck
+          In_ConnectC1        -> 7 / Out_C1_ConnAck__c2_ConnectionClosed
+          In_PublishQoS1C1    -> 6 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_SubscribeC2QoS1  -> 6 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_UnSubscribeC2    -> 6 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_DisconnectC2     -> 6 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+    7     In_ConnectC2        -> 5 / Out_Empty__c2_ConnAck
+          In_ConnectC1        -> 6 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_PublishQoS1C1    -> 8 / Out_C1_PubAck__c2_ConnectionClosed
+          In_SubscribeC2QoS1  -> 7 / Out_Empty__c2_ConnectionClosed
+          In_UnSubscribeC2    -> 7 / Out_Empty__c2_ConnectionClosed
+          In_DisconnectC2     -> 7 / Out_Empty__c2_ConnectionClosed
+    8     In_ConnectC2        -> 5 / Out_Empty__c2_Pub_my_topic_messageQos1_1___c2_ConnAck
+          In_ConnectC1        -> 9 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_PublishQoS1C1    -> 10 / Out_C1_PubAck__c2_ConnectionClosed
+          In_SubscribeC2QoS1  -> 8 / Out_Empty__c2_ConnectionClosed
+          In_UnSubscribeC2    -> 8 / Out_Empty__c2_ConnectionClosed
+          In_DisconnectC2     -> 8 / Out_Empty__c2_ConnectionClosed
+    9     In_ConnectC2        -> 4 / Out_C1_ConnectionClosed__c2_Pub_my_topic_messageQos1_1___c2_ConnAck
+          In_ConnectC1        -> 8 / Out_C1_ConnAck__c2_ConnectionClosed
+          In_PublishQoS1C1    -> 9 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_SubscribeC2QoS1  -> 9 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_UnSubscribeC2    -> 9 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_DisconnectC2     -> 9 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+    10    In_ConnectC2        -> 5 / Out_Empty__c2_Pub_my_topic_messageQos1_1___c2_Pub_my_topic_messageQos1_1___c2_ConnAck
+          In_ConnectC1        -> 11 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_PublishQoS1C1    -> 10 / Out_C1_PubAck__c2_ConnectionClosed
+          In_SubscribeC2QoS1  -> 10 / Out_Empty__c2_ConnectionClosed
+          In_UnSubscribeC2    -> 10 / Out_Empty__c2_ConnectionClosed
+          In_DisconnectC2     -> 10 / Out_Empty__c2_ConnectionClosed
+    11    In_ConnectC2        -> 4 / Out_C1_ConnectionClosed__c2_Pub_my_topic_messageQos1_1___c2_Pub_my_topic_messageQos1_1___c2_ConnAck
+          In_ConnectC1        -> 10 / Out_C1_ConnAck__c2_ConnectionClosed
+          In_PublishQoS1C1    -> 11 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_SubscribeC2QoS1  -> 11 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_UnSubscribeC2    -> 11 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_DisconnectC2     -> 11 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+-}
 verneMQNonClean :: MealyAutomaton Int VerneMQNonCleanInput VerneMQNonCleanOutput
-verneMQNonClean = mkMealyAutomaton delta lambda (Set.fromList [0..11]) 0
+verneMQNonClean =
+    case mkMealyAutomatonTable 12 0 deltaTable lambdaTable of
+        Right m -> m
+        Left err -> error ("haal-gen: invalid transition table: " ++ err)
   where
-    delta 0 In_ConnectC2 = 1
-    delta 0 In_ConnectC1 = 2
-    delta 0 In_PublishQoS1C1 = 0
-    delta 0 In_SubscribeC2QoS1 = 0
-    delta 0 In_UnSubscribeC2 = 0
-    delta 0 In_DisconnectC2 = 0
-    delta 2 In_ConnectC2 = 3
-    delta 2 In_ConnectC1 = 0
-    delta 2 In_PublishQoS1C1 = 2
-    delta 2 In_SubscribeC2QoS1 = 2
-    delta 2 In_UnSubscribeC2 = 2
-    delta 2 In_DisconnectC2 = 2
-    delta 1 In_ConnectC2 = 0
-    delta 1 In_ConnectC1 = 3
-    delta 1 In_PublishQoS1C1 = 1
-    delta 1 In_SubscribeC2QoS1 = 4
-    delta 1 In_UnSubscribeC2 = 1
-    delta 1 In_DisconnectC2 = 0
-    delta 3 In_ConnectC2 = 2
-    delta 3 In_ConnectC1 = 1
-    delta 3 In_PublishQoS1C1 = 3
-    delta 3 In_SubscribeC2QoS1 = 5
-    delta 3 In_UnSubscribeC2 = 3
-    delta 3 In_DisconnectC2 = 2
-    delta 4 In_ConnectC2 = 6
-    delta 4 In_ConnectC1 = 5
-    delta 4 In_PublishQoS1C1 = 4
-    delta 4 In_SubscribeC2QoS1 = 4
-    delta 4 In_UnSubscribeC2 = 1
-    delta 4 In_DisconnectC2 = 6
-    delta 5 In_ConnectC2 = 7
-    delta 5 In_ConnectC1 = 4
-    delta 5 In_PublishQoS1C1 = 5
-    delta 5 In_SubscribeC2QoS1 = 5
-    delta 5 In_UnSubscribeC2 = 3
-    delta 5 In_DisconnectC2 = 7
-    delta 6 In_ConnectC2 = 4
-    delta 6 In_ConnectC1 = 7
-    delta 6 In_PublishQoS1C1 = 6
-    delta 6 In_SubscribeC2QoS1 = 6
-    delta 6 In_UnSubscribeC2 = 6
-    delta 6 In_DisconnectC2 = 6
-    delta 7 In_ConnectC2 = 5
-    delta 7 In_ConnectC1 = 6
-    delta 7 In_PublishQoS1C1 = 8
-    delta 7 In_SubscribeC2QoS1 = 7
-    delta 7 In_UnSubscribeC2 = 7
-    delta 7 In_DisconnectC2 = 7
-    delta 8 In_ConnectC2 = 5
-    delta 8 In_ConnectC1 = 9
-    delta 8 In_PublishQoS1C1 = 10
-    delta 8 In_SubscribeC2QoS1 = 8
-    delta 8 In_UnSubscribeC2 = 8
-    delta 8 In_DisconnectC2 = 8
-    delta 9 In_ConnectC2 = 4
-    delta 9 In_ConnectC1 = 8
-    delta 9 In_PublishQoS1C1 = 9
-    delta 9 In_SubscribeC2QoS1 = 9
-    delta 9 In_UnSubscribeC2 = 9
-    delta 9 In_DisconnectC2 = 9
-    delta 10 In_ConnectC2 = 5
-    delta 10 In_ConnectC1 = 11
-    delta 10 In_PublishQoS1C1 = 10
-    delta 10 In_SubscribeC2QoS1 = 10
-    delta 10 In_UnSubscribeC2 = 10
-    delta 10 In_DisconnectC2 = 10
-    delta 11 In_ConnectC2 = 4
-    delta 11 In_ConnectC1 = 10
-    delta 11 In_PublishQoS1C1 = 11
-    delta 11 In_SubscribeC2QoS1 = 11
-    delta 11 In_UnSubscribeC2 = 11
-    delta 11 In_DisconnectC2 = 11
-    delta _ _ = error "haal-gen: undefined transition"
-    lambda 0 In_ConnectC2 = Out_C1_ConnectionClosed__c2_ConnAck
-    lambda 0 In_ConnectC1 = Out_C1_ConnAck__c2_ConnectionClosed
-    lambda 0 In_PublishQoS1C1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 0 In_SubscribeC2QoS1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 0 In_UnSubscribeC2 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 0 In_DisconnectC2 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 2 In_ConnectC2 = Out_Empty__c2_ConnAck
-    lambda 2 In_ConnectC1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 2 In_PublishQoS1C1 = Out_C1_PubAck__c2_ConnectionClosed
-    lambda 2 In_SubscribeC2QoS1 = Out_Empty__c2_ConnectionClosed
-    lambda 2 In_UnSubscribeC2 = Out_Empty__c2_ConnectionClosed
-    lambda 2 In_DisconnectC2 = Out_Empty__c2_ConnectionClosed
-    lambda 1 In_ConnectC2 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 1 In_ConnectC1 = Out_C1_ConnAck__Empty
-    lambda 1 In_PublishQoS1C1 = Out_C1_ConnectionClosed__Empty
-    lambda 1 In_SubscribeC2QoS1 = Out_C1_ConnectionClosed__c2_SubAck
-    lambda 1 In_UnSubscribeC2 = Out_C1_ConnectionClosed__c2_UnSubAck
-    lambda 1 In_DisconnectC2 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 3 In_ConnectC2 = Out_Empty__c2_ConnectionClosed
-    lambda 3 In_ConnectC1 = Out_C1_ConnectionClosed__Empty
-    lambda 3 In_PublishQoS1C1 = Out_C1_PubAck__Empty
-    lambda 3 In_SubscribeC2QoS1 = Out_Empty__c2_SubAck
-    lambda 3 In_UnSubscribeC2 = Out_Empty__c2_UnSubAck
-    lambda 3 In_DisconnectC2 = Out_Empty__c2_ConnectionClosed
-    lambda 4 In_ConnectC2 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 4 In_ConnectC1 = Out_C1_ConnAck__Empty
-    lambda 4 In_PublishQoS1C1 = Out_C1_ConnectionClosed__Empty
-    lambda 4 In_SubscribeC2QoS1 = Out_C1_ConnectionClosed__c2_SubAck
-    lambda 4 In_UnSubscribeC2 = Out_C1_ConnectionClosed__c2_UnSubAck
-    lambda 4 In_DisconnectC2 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 5 In_ConnectC2 = Out_Empty__c2_ConnectionClosed
-    lambda 5 In_ConnectC1 = Out_C1_ConnectionClosed__Empty
-    lambda 5 In_PublishQoS1C1 = Out_C1_PubAck__c2_Pub_my_topic_messageQos1_1
-    lambda 5 In_SubscribeC2QoS1 = Out_Empty__c2_SubAck
-    lambda 5 In_UnSubscribeC2 = Out_Empty__c2_UnSubAck
-    lambda 5 In_DisconnectC2 = Out_Empty__c2_ConnectionClosed
-    lambda 6 In_ConnectC2 = Out_C1_ConnectionClosed__c2_ConnAck
-    lambda 6 In_ConnectC1 = Out_C1_ConnAck__c2_ConnectionClosed
-    lambda 6 In_PublishQoS1C1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 6 In_SubscribeC2QoS1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 6 In_UnSubscribeC2 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 6 In_DisconnectC2 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 7 In_ConnectC2 = Out_Empty__c2_ConnAck
-    lambda 7 In_ConnectC1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 7 In_PublishQoS1C1 = Out_C1_PubAck__c2_ConnectionClosed
-    lambda 7 In_SubscribeC2QoS1 = Out_Empty__c2_ConnectionClosed
-    lambda 7 In_UnSubscribeC2 = Out_Empty__c2_ConnectionClosed
-    lambda 7 In_DisconnectC2 = Out_Empty__c2_ConnectionClosed
-    lambda 8 In_ConnectC2 = Out_Empty__c2_Pub_my_topic_messageQos1_1___c2_ConnAck
-    lambda 8 In_ConnectC1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 8 In_PublishQoS1C1 = Out_C1_PubAck__c2_ConnectionClosed
-    lambda 8 In_SubscribeC2QoS1 = Out_Empty__c2_ConnectionClosed
-    lambda 8 In_UnSubscribeC2 = Out_Empty__c2_ConnectionClosed
-    lambda 8 In_DisconnectC2 = Out_Empty__c2_ConnectionClosed
-    lambda 9 In_ConnectC2 = Out_C1_ConnectionClosed__c2_Pub_my_topic_messageQos1_1___c2_ConnAck
-    lambda 9 In_ConnectC1 = Out_C1_ConnAck__c2_ConnectionClosed
-    lambda 9 In_PublishQoS1C1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 9 In_SubscribeC2QoS1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 9 In_UnSubscribeC2 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 9 In_DisconnectC2 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 10 In_ConnectC2 = Out_Empty__c2_Pub_my_topic_messageQos1_1___c2_Pub_my_topic_messageQos1_1___c2_ConnAck
-    lambda 10 In_ConnectC1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 10 In_PublishQoS1C1 = Out_C1_PubAck__c2_ConnectionClosed
-    lambda 10 In_SubscribeC2QoS1 = Out_Empty__c2_ConnectionClosed
-    lambda 10 In_UnSubscribeC2 = Out_Empty__c2_ConnectionClosed
-    lambda 10 In_DisconnectC2 = Out_Empty__c2_ConnectionClosed
-    lambda 11 In_ConnectC2 = Out_C1_ConnectionClosed__c2_Pub_my_topic_messageQos1_1___c2_Pub_my_topic_messageQos1_1___c2_ConnAck
-    lambda 11 In_ConnectC1 = Out_C1_ConnAck__c2_ConnectionClosed
-    lambda 11 In_PublishQoS1C1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 11 In_SubscribeC2QoS1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 11 In_UnSubscribeC2 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 11 In_DisconnectC2 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda _ _ = error "haal-gen: undefined transition"
+    deltaTable =
+        "\1\2\0\0\0\0\
+        \\0\3\1\4\1\0\
+        \\3\0\2\2\2\2\
+        \\2\1\3\5\3\2\
+        \\6\5\4\4\1\6\
+        \\7\4\5\5\3\7\
+        \\4\7\6\6\6\6\
+        \\5\6\8\7\7\7\
+        \\5\9\10\8\8\8\
+        \\4\8\9\9\9\9\
+        \\5\11\10\10\10\10\
+        \\4\10\11\11\11\11"
+    lambdaTable =
+        "\0\1\2\2\2\2\
+        \\2\6\7\8\9\2\
+        \\3\2\4\5\5\5\
+        \\5\7\10\11\12\5\
+        \\2\6\7\8\9\2\
+        \\5\7\13\11\12\5\
+        \\0\1\2\2\2\2\
+        \\3\2\4\5\5\5\
+        \\14\2\4\5\5\5\
+        \\15\1\2\2\2\2\
+        \\16\2\4\5\5\5\
+        \\17\1\2\2\2\2"
diff --git a/src/Haal/Models/MQTT/VerneMQSimple.hs b/src/Haal/Models/MQTT/VerneMQSimple.hs
--- a/src/Haal/Models/MQTT/VerneMQSimple.hs
+++ b/src/Haal/Models/MQTT/VerneMQSimple.hs
@@ -5,8 +5,7 @@
     , verneMQSimple
     ) where
 
-import qualified Data.Set as Set
-import Haal.Automaton.MealyAutomaton (MealyAutomaton, mkMealyAutomaton)
+import Haal.Automaton.MealyAutomaton (MealyAutomaton, mkMealyAutomatonTable)
 
 data VerneMQSimpleInput
     = In_Connect
@@ -28,50 +27,40 @@
     | Out_PublishPacket__PubAckPacket
     deriving (Show, Eq, Ord, Enum, Bounded)
 
+{- Transitions (state  input -> next state / output):
+    0     In_Connect        -> 1 / Out_ConnAckPacket
+          In_Publish        -> 0 / Out_ConnectionClosed
+          In_Subscribe      -> 0 / Out_ConnectionClosed
+          In_UnSubScribe    -> 0 / Out_ConnectionClosed
+          In_Ping           -> 0 / Out_ConnectionClosed
+          In_Disconnect     -> 0 / Out_ConnectionClosed
+          In_DisconnectTCP  -> 0 / Out_ConnectionClosed
+    1     In_Connect        -> 0 / Out_ConnectionClosed
+          In_Publish        -> 1 / Out_PubAckPacket
+          In_Subscribe      -> 2 / Out_SubAckPacket
+          In_UnSubScribe    -> 1 / Out_UnSubAckPacket
+          In_Ping           -> 1 / Out_PingRespPacket
+          In_Disconnect     -> 0 / Out_ConnectionClosed
+          In_DisconnectTCP  -> 0 / Out_ConnectionClosed
+    2     In_Connect        -> 0 / Out_ConnectionClosed
+          In_Publish        -> 2 / Out_PublishPacket__PubAckPacket
+          In_Subscribe      -> 2 / Out_SubAckPacket
+          In_UnSubScribe    -> 1 / Out_UnSubAckPacket
+          In_Ping           -> 2 / Out_PingRespPacket
+          In_Disconnect     -> 0 / Out_ConnectionClosed
+          In_DisconnectTCP  -> 0 / Out_ConnectionClosed
+-}
 verneMQSimple :: MealyAutomaton Int VerneMQSimpleInput VerneMQSimpleOutput
-verneMQSimple = mkMealyAutomaton delta lambda (Set.fromList [0..2]) 0
+verneMQSimple =
+    case mkMealyAutomatonTable 3 0 deltaTable lambdaTable of
+        Right m -> m
+        Left err -> error ("haal-gen: invalid transition table: " ++ err)
   where
-    delta 0 In_Connect = 1
-    delta 0 In_Publish = 0
-    delta 0 In_Subscribe = 0
-    delta 0 In_UnSubScribe = 0
-    delta 0 In_Ping = 0
-    delta 0 In_Disconnect = 0
-    delta 0 In_DisconnectTCP = 0
-    delta 1 In_Connect = 0
-    delta 1 In_Publish = 1
-    delta 1 In_Subscribe = 2
-    delta 1 In_UnSubScribe = 1
-    delta 1 In_Ping = 1
-    delta 1 In_Disconnect = 0
-    delta 1 In_DisconnectTCP = 0
-    delta 2 In_Connect = 0
-    delta 2 In_Publish = 2
-    delta 2 In_Subscribe = 2
-    delta 2 In_UnSubScribe = 1
-    delta 2 In_Ping = 2
-    delta 2 In_Disconnect = 0
-    delta 2 In_DisconnectTCP = 0
-    delta _ _ = error "haal-gen: undefined transition"
-    lambda 0 In_Connect = Out_ConnAckPacket
-    lambda 0 In_Publish = Out_ConnectionClosed
-    lambda 0 In_Subscribe = Out_ConnectionClosed
-    lambda 0 In_UnSubScribe = Out_ConnectionClosed
-    lambda 0 In_Ping = Out_ConnectionClosed
-    lambda 0 In_Disconnect = Out_ConnectionClosed
-    lambda 0 In_DisconnectTCP = Out_ConnectionClosed
-    lambda 1 In_Connect = Out_ConnectionClosed
-    lambda 1 In_Publish = Out_PubAckPacket
-    lambda 1 In_Subscribe = Out_SubAckPacket
-    lambda 1 In_UnSubScribe = Out_UnSubAckPacket
-    lambda 1 In_Ping = Out_PingRespPacket
-    lambda 1 In_Disconnect = Out_ConnectionClosed
-    lambda 1 In_DisconnectTCP = Out_ConnectionClosed
-    lambda 2 In_Connect = Out_ConnectionClosed
-    lambda 2 In_Publish = Out_PublishPacket__PubAckPacket
-    lambda 2 In_Subscribe = Out_SubAckPacket
-    lambda 2 In_UnSubScribe = Out_UnSubAckPacket
-    lambda 2 In_Ping = Out_PingRespPacket
-    lambda 2 In_Disconnect = Out_ConnectionClosed
-    lambda 2 In_DisconnectTCP = Out_ConnectionClosed
-    lambda _ _ = error "haal-gen: undefined transition"
+    deltaTable =
+        "\1\0\0\0\0\0\0\
+        \\0\1\2\1\1\0\0\
+        \\0\2\2\1\2\0\0"
+    lambdaTable =
+        "\0\1\1\1\1\1\1\
+        \\1\2\3\4\5\1\1\
+        \\1\6\3\4\5\1\1"
diff --git a/src/Haal/Models/MQTT/VerneMQSingleClient.hs b/src/Haal/Models/MQTT/VerneMQSingleClient.hs
--- a/src/Haal/Models/MQTT/VerneMQSingleClient.hs
+++ b/src/Haal/Models/MQTT/VerneMQSingleClient.hs
@@ -5,8 +5,7 @@
     , verneMQSingleClient
     ) where
 
-import qualified Data.Set as Set
-import Haal.Automaton.MealyAutomaton (MealyAutomaton, mkMealyAutomaton)
+import Haal.Automaton.MealyAutomaton (MealyAutomaton, mkMealyAutomatonTable)
 
 data VerneMQSingleClientInput
     = In_Connect
@@ -35,228 +34,143 @@
     | Out_Pub_my_topic_retained_retained_message___PubAck
     deriving (Show, Eq, Ord, Enum, Bounded)
 
+{- Transitions (state  input -> next state / output):
+    0     In_Connect              -> 1 / Out_ConnAck
+          In_PublishQoS0          -> 0 / Out_ConnectionClosed
+          In_PublishQoS1          -> 0 / Out_ConnectionClosed
+          In_PublishRetain        -> 0 / Out_ConnectionClosed
+          In_DeleteRetained       -> 0 / Out_ConnectionClosed
+          In_Subscribe            -> 0 / Out_ConnectionClosed
+          In_UnSubScribe          -> 0 / Out_ConnectionClosed
+          In_SubscribeRetained    -> 0 / Out_ConnectionClosed
+          In_UnSubScribeRetained  -> 0 / Out_ConnectionClosed
+          In_Disconnect           -> 0 / Out_ConnectionClosed
+          In_DisconnectTCP        -> 0 / Out_ConnectionClosed
+    1     In_Connect              -> 2 / Out_ConnectionClosed
+          In_PublishQoS0          -> 1 / Out_Empty
+          In_PublishQoS1          -> 1 / Out_PubAck
+          In_PublishRetain        -> 3 / Out_PubAck
+          In_DeleteRetained       -> 1 / Out_PubAck
+          In_Subscribe            -> 4 / Out_SubAck
+          In_UnSubScribe          -> 1 / Out_UnSubAck
+          In_SubscribeRetained    -> 5 / Out_SubAck
+          In_UnSubScribeRetained  -> 1 / Out_UnSubAck
+          In_Disconnect           -> 2 / Out_ConnectionClosed
+          In_DisconnectTCP        -> 2 / Out_ConnectionClosed
+    2     In_Connect              -> 2 / Out_ConnectionClosed
+          In_PublishQoS0          -> 2 / Out_ConnectionClosed
+          In_PublishQoS1          -> 2 / Out_ConnectionClosed
+          In_PublishRetain        -> 2 / Out_ConnectionClosed
+          In_DeleteRetained       -> 2 / Out_ConnectionClosed
+          In_Subscribe            -> 2 / Out_ConnectionClosed
+          In_UnSubScribe          -> 2 / Out_ConnectionClosed
+          In_SubscribeRetained    -> 2 / Out_ConnectionClosed
+          In_UnSubScribeRetained  -> 2 / Out_ConnectionClosed
+          In_Disconnect           -> 2 / Out_ConnectionClosed
+          In_DisconnectTCP        -> 2 / Out_ConnectionClosed
+    3     In_Connect              -> 2 / Out_ConnectionClosed
+          In_PublishQoS0          -> 3 / Out_Empty
+          In_PublishQoS1          -> 3 / Out_PubAck
+          In_PublishRetain        -> 3 / Out_PubAck
+          In_DeleteRetained       -> 1 / Out_PubAck
+          In_Subscribe            -> 6 / Out_SubAck
+          In_UnSubScribe          -> 3 / Out_UnSubAck
+          In_SubscribeRetained    -> 9 / Out_SubAck__Pub_my_topic_retained_retained_message
+          In_UnSubScribeRetained  -> 3 / Out_UnSubAck
+          In_Disconnect           -> 2 / Out_ConnectionClosed
+          In_DisconnectTCP        -> 2 / Out_ConnectionClosed
+    4     In_Connect              -> 2 / Out_ConnectionClosed
+          In_PublishQoS0          -> 4 / Out_Pub_my_topic_messageQos0
+          In_PublishQoS1          -> 4 / Out_Pub_my_topic_messageQos1___PubAck
+          In_PublishRetain        -> 6 / Out_PubAck
+          In_DeleteRetained       -> 4 / Out_PubAck
+          In_Subscribe            -> 4 / Out_SubAck
+          In_UnSubScribe          -> 1 / Out_UnSubAck
+          In_SubscribeRetained    -> 7 / Out_SubAck
+          In_UnSubScribeRetained  -> 4 / Out_UnSubAck
+          In_Disconnect           -> 2 / Out_ConnectionClosed
+          In_DisconnectTCP        -> 2 / Out_ConnectionClosed
+    5     In_Connect              -> 2 / Out_ConnectionClosed
+          In_PublishQoS0          -> 5 / Out_Empty
+          In_PublishQoS1          -> 5 / Out_PubAck
+          In_PublishRetain        -> 9 / Out_Pub_my_topic_retained_retained_message___PubAck
+          In_DeleteRetained       -> 5 / Out_PubAck
+          In_Subscribe            -> 7 / Out_SubAck
+          In_UnSubScribe          -> 5 / Out_UnSubAck
+          In_SubscribeRetained    -> 5 / Out_SubAck
+          In_UnSubScribeRetained  -> 1 / Out_UnSubAck
+          In_Disconnect           -> 2 / Out_ConnectionClosed
+          In_DisconnectTCP        -> 2 / Out_ConnectionClosed
+    6     In_Connect              -> 2 / Out_ConnectionClosed
+          In_PublishQoS0          -> 6 / Out_Pub_my_topic_messageQos0
+          In_PublishQoS1          -> 6 / Out_Pub_my_topic_messageQos1___PubAck
+          In_PublishRetain        -> 6 / Out_PubAck
+          In_DeleteRetained       -> 4 / Out_PubAck
+          In_Subscribe            -> 6 / Out_SubAck
+          In_UnSubScribe          -> 3 / Out_UnSubAck
+          In_SubscribeRetained    -> 8 / Out_SubAck__Pub_my_topic_retained_retained_message
+          In_UnSubScribeRetained  -> 6 / Out_UnSubAck
+          In_Disconnect           -> 2 / Out_ConnectionClosed
+          In_DisconnectTCP        -> 2 / Out_ConnectionClosed
+    7     In_Connect              -> 2 / Out_ConnectionClosed
+          In_PublishQoS0          -> 7 / Out_Pub_my_topic_messageQos0
+          In_PublishQoS1          -> 7 / Out_Pub_my_topic_messageQos1___PubAck
+          In_PublishRetain        -> 8 / Out_Pub_my_topic_retained_retained_message___PubAck
+          In_DeleteRetained       -> 7 / Out_PubAck
+          In_Subscribe            -> 7 / Out_SubAck
+          In_UnSubScribe          -> 5 / Out_UnSubAck
+          In_SubscribeRetained    -> 7 / Out_SubAck
+          In_UnSubScribeRetained  -> 4 / Out_UnSubAck
+          In_Disconnect           -> 2 / Out_ConnectionClosed
+          In_DisconnectTCP        -> 2 / Out_ConnectionClosed
+    8     In_Connect              -> 2 / Out_ConnectionClosed
+          In_PublishQoS0          -> 8 / Out_Pub_my_topic_messageQos0
+          In_PublishQoS1          -> 8 / Out_Pub_my_topic_messageQos1___PubAck
+          In_PublishRetain        -> 8 / Out_Pub_my_topic_retained_retained_message___PubAck
+          In_DeleteRetained       -> 7 / Out_PubAck
+          In_Subscribe            -> 8 / Out_SubAck
+          In_UnSubScribe          -> 3 / Out_UnSubAck
+          In_SubscribeRetained    -> 8 / Out_SubAck__Pub_my_topic_retained_retained_message
+          In_UnSubScribeRetained  -> 6 / Out_UnSubAck
+          In_Disconnect           -> 2 / Out_ConnectionClosed
+          In_DisconnectTCP        -> 2 / Out_ConnectionClosed
+    9     In_Connect              -> 2 / Out_ConnectionClosed
+          In_PublishQoS0          -> 9 / Out_Empty
+          In_PublishQoS1          -> 9 / Out_PubAck
+          In_PublishRetain        -> 9 / Out_Pub_my_topic_retained_retained_message___PubAck
+          In_DeleteRetained       -> 5 / Out_PubAck
+          In_Subscribe            -> 8 / Out_SubAck
+          In_UnSubScribe          -> 9 / Out_UnSubAck
+          In_SubscribeRetained    -> 9 / Out_SubAck__Pub_my_topic_retained_retained_message
+          In_UnSubScribeRetained  -> 3 / Out_UnSubAck
+          In_Disconnect           -> 2 / Out_ConnectionClosed
+          In_DisconnectTCP        -> 2 / Out_ConnectionClosed
+-}
 verneMQSingleClient :: MealyAutomaton Int VerneMQSingleClientInput VerneMQSingleClientOutput
-verneMQSingleClient = mkMealyAutomaton delta lambda (Set.fromList [0..9]) 0
+verneMQSingleClient =
+    case mkMealyAutomatonTable 10 0 deltaTable lambdaTable of
+        Right m -> m
+        Left err -> error ("haal-gen: invalid transition table: " ++ err)
   where
-    delta 0 In_Connect = 1
-    delta 0 In_PublishQoS0 = 0
-    delta 0 In_PublishQoS1 = 0
-    delta 0 In_PublishRetain = 0
-    delta 0 In_DeleteRetained = 0
-    delta 0 In_Subscribe = 0
-    delta 0 In_UnSubScribe = 0
-    delta 0 In_SubscribeRetained = 0
-    delta 0 In_UnSubScribeRetained = 0
-    delta 0 In_Disconnect = 0
-    delta 0 In_DisconnectTCP = 0
-    delta 1 In_Connect = 2
-    delta 1 In_PublishQoS0 = 1
-    delta 1 In_PublishQoS1 = 1
-    delta 1 In_PublishRetain = 3
-    delta 1 In_DeleteRetained = 1
-    delta 1 In_Subscribe = 4
-    delta 1 In_UnSubScribe = 1
-    delta 1 In_SubscribeRetained = 5
-    delta 1 In_UnSubScribeRetained = 1
-    delta 1 In_Disconnect = 2
-    delta 1 In_DisconnectTCP = 2
-    delta 2 In_Connect = 2
-    delta 2 In_PublishQoS0 = 2
-    delta 2 In_PublishQoS1 = 2
-    delta 2 In_PublishRetain = 2
-    delta 2 In_DeleteRetained = 2
-    delta 2 In_Subscribe = 2
-    delta 2 In_UnSubScribe = 2
-    delta 2 In_SubscribeRetained = 2
-    delta 2 In_UnSubScribeRetained = 2
-    delta 2 In_Disconnect = 2
-    delta 2 In_DisconnectTCP = 2
-    delta 4 In_Connect = 2
-    delta 4 In_PublishQoS0 = 4
-    delta 4 In_PublishQoS1 = 4
-    delta 4 In_PublishRetain = 6
-    delta 4 In_DeleteRetained = 4
-    delta 4 In_Subscribe = 4
-    delta 4 In_UnSubScribe = 1
-    delta 4 In_SubscribeRetained = 7
-    delta 4 In_UnSubScribeRetained = 4
-    delta 4 In_Disconnect = 2
-    delta 4 In_DisconnectTCP = 2
-    delta 6 In_Connect = 2
-    delta 6 In_PublishQoS0 = 6
-    delta 6 In_PublishQoS1 = 6
-    delta 6 In_PublishRetain = 6
-    delta 6 In_DeleteRetained = 4
-    delta 6 In_Subscribe = 6
-    delta 6 In_UnSubScribe = 3
-    delta 6 In_SubscribeRetained = 8
-    delta 6 In_UnSubScribeRetained = 6
-    delta 6 In_Disconnect = 2
-    delta 6 In_DisconnectTCP = 2
-    delta 3 In_Connect = 2
-    delta 3 In_PublishQoS0 = 3
-    delta 3 In_PublishQoS1 = 3
-    delta 3 In_PublishRetain = 3
-    delta 3 In_DeleteRetained = 1
-    delta 3 In_Subscribe = 6
-    delta 3 In_UnSubScribe = 3
-    delta 3 In_SubscribeRetained = 9
-    delta 3 In_UnSubScribeRetained = 3
-    delta 3 In_Disconnect = 2
-    delta 3 In_DisconnectTCP = 2
-    delta 5 In_Connect = 2
-    delta 5 In_PublishQoS0 = 5
-    delta 5 In_PublishQoS1 = 5
-    delta 5 In_PublishRetain = 9
-    delta 5 In_DeleteRetained = 5
-    delta 5 In_Subscribe = 7
-    delta 5 In_UnSubScribe = 5
-    delta 5 In_SubscribeRetained = 5
-    delta 5 In_UnSubScribeRetained = 1
-    delta 5 In_Disconnect = 2
-    delta 5 In_DisconnectTCP = 2
-    delta 7 In_Connect = 2
-    delta 7 In_PublishQoS0 = 7
-    delta 7 In_PublishQoS1 = 7
-    delta 7 In_PublishRetain = 8
-    delta 7 In_DeleteRetained = 7
-    delta 7 In_Subscribe = 7
-    delta 7 In_UnSubScribe = 5
-    delta 7 In_SubscribeRetained = 7
-    delta 7 In_UnSubScribeRetained = 4
-    delta 7 In_Disconnect = 2
-    delta 7 In_DisconnectTCP = 2
-    delta 9 In_Connect = 2
-    delta 9 In_PublishQoS0 = 9
-    delta 9 In_PublishQoS1 = 9
-    delta 9 In_PublishRetain = 9
-    delta 9 In_DeleteRetained = 5
-    delta 9 In_Subscribe = 8
-    delta 9 In_UnSubScribe = 9
-    delta 9 In_SubscribeRetained = 9
-    delta 9 In_UnSubScribeRetained = 3
-    delta 9 In_Disconnect = 2
-    delta 9 In_DisconnectTCP = 2
-    delta 8 In_Connect = 2
-    delta 8 In_PublishQoS0 = 8
-    delta 8 In_PublishQoS1 = 8
-    delta 8 In_PublishRetain = 8
-    delta 8 In_DeleteRetained = 7
-    delta 8 In_Subscribe = 8
-    delta 8 In_UnSubScribe = 3
-    delta 8 In_SubscribeRetained = 8
-    delta 8 In_UnSubScribeRetained = 6
-    delta 8 In_Disconnect = 2
-    delta 8 In_DisconnectTCP = 2
-    delta _ _ = error "haal-gen: undefined transition"
-    lambda 0 In_Connect = Out_ConnAck
-    lambda 0 In_PublishQoS0 = Out_ConnectionClosed
-    lambda 0 In_PublishQoS1 = Out_ConnectionClosed
-    lambda 0 In_PublishRetain = Out_ConnectionClosed
-    lambda 0 In_DeleteRetained = Out_ConnectionClosed
-    lambda 0 In_Subscribe = Out_ConnectionClosed
-    lambda 0 In_UnSubScribe = Out_ConnectionClosed
-    lambda 0 In_SubscribeRetained = Out_ConnectionClosed
-    lambda 0 In_UnSubScribeRetained = Out_ConnectionClosed
-    lambda 0 In_Disconnect = Out_ConnectionClosed
-    lambda 0 In_DisconnectTCP = Out_ConnectionClosed
-    lambda 1 In_Connect = Out_ConnectionClosed
-    lambda 1 In_PublishQoS0 = Out_Empty
-    lambda 1 In_PublishQoS1 = Out_PubAck
-    lambda 1 In_PublishRetain = Out_PubAck
-    lambda 1 In_DeleteRetained = Out_PubAck
-    lambda 1 In_Subscribe = Out_SubAck
-    lambda 1 In_UnSubScribe = Out_UnSubAck
-    lambda 1 In_SubscribeRetained = Out_SubAck
-    lambda 1 In_UnSubScribeRetained = Out_UnSubAck
-    lambda 1 In_Disconnect = Out_ConnectionClosed
-    lambda 1 In_DisconnectTCP = Out_ConnectionClosed
-    lambda 2 In_Connect = Out_ConnectionClosed
-    lambda 2 In_PublishQoS0 = Out_ConnectionClosed
-    lambda 2 In_PublishQoS1 = Out_ConnectionClosed
-    lambda 2 In_PublishRetain = Out_ConnectionClosed
-    lambda 2 In_DeleteRetained = Out_ConnectionClosed
-    lambda 2 In_Subscribe = Out_ConnectionClosed
-    lambda 2 In_UnSubScribe = Out_ConnectionClosed
-    lambda 2 In_SubscribeRetained = Out_ConnectionClosed
-    lambda 2 In_UnSubScribeRetained = Out_ConnectionClosed
-    lambda 2 In_Disconnect = Out_ConnectionClosed
-    lambda 2 In_DisconnectTCP = Out_ConnectionClosed
-    lambda 4 In_Connect = Out_ConnectionClosed
-    lambda 4 In_PublishQoS0 = Out_Pub_my_topic_messageQos0
-    lambda 4 In_PublishQoS1 = Out_Pub_my_topic_messageQos1___PubAck
-    lambda 4 In_PublishRetain = Out_PubAck
-    lambda 4 In_DeleteRetained = Out_PubAck
-    lambda 4 In_Subscribe = Out_SubAck
-    lambda 4 In_UnSubScribe = Out_UnSubAck
-    lambda 4 In_SubscribeRetained = Out_SubAck
-    lambda 4 In_UnSubScribeRetained = Out_UnSubAck
-    lambda 4 In_Disconnect = Out_ConnectionClosed
-    lambda 4 In_DisconnectTCP = Out_ConnectionClosed
-    lambda 6 In_Connect = Out_ConnectionClosed
-    lambda 6 In_PublishQoS0 = Out_Pub_my_topic_messageQos0
-    lambda 6 In_PublishQoS1 = Out_Pub_my_topic_messageQos1___PubAck
-    lambda 6 In_PublishRetain = Out_PubAck
-    lambda 6 In_DeleteRetained = Out_PubAck
-    lambda 6 In_Subscribe = Out_SubAck
-    lambda 6 In_UnSubScribe = Out_UnSubAck
-    lambda 6 In_SubscribeRetained = Out_SubAck__Pub_my_topic_retained_retained_message
-    lambda 6 In_UnSubScribeRetained = Out_UnSubAck
-    lambda 6 In_Disconnect = Out_ConnectionClosed
-    lambda 6 In_DisconnectTCP = Out_ConnectionClosed
-    lambda 3 In_Connect = Out_ConnectionClosed
-    lambda 3 In_PublishQoS0 = Out_Empty
-    lambda 3 In_PublishQoS1 = Out_PubAck
-    lambda 3 In_PublishRetain = Out_PubAck
-    lambda 3 In_DeleteRetained = Out_PubAck
-    lambda 3 In_Subscribe = Out_SubAck
-    lambda 3 In_UnSubScribe = Out_UnSubAck
-    lambda 3 In_SubscribeRetained = Out_SubAck__Pub_my_topic_retained_retained_message
-    lambda 3 In_UnSubScribeRetained = Out_UnSubAck
-    lambda 3 In_Disconnect = Out_ConnectionClosed
-    lambda 3 In_DisconnectTCP = Out_ConnectionClosed
-    lambda 5 In_Connect = Out_ConnectionClosed
-    lambda 5 In_PublishQoS0 = Out_Empty
-    lambda 5 In_PublishQoS1 = Out_PubAck
-    lambda 5 In_PublishRetain = Out_Pub_my_topic_retained_retained_message___PubAck
-    lambda 5 In_DeleteRetained = Out_PubAck
-    lambda 5 In_Subscribe = Out_SubAck
-    lambda 5 In_UnSubScribe = Out_UnSubAck
-    lambda 5 In_SubscribeRetained = Out_SubAck
-    lambda 5 In_UnSubScribeRetained = Out_UnSubAck
-    lambda 5 In_Disconnect = Out_ConnectionClosed
-    lambda 5 In_DisconnectTCP = Out_ConnectionClosed
-    lambda 7 In_Connect = Out_ConnectionClosed
-    lambda 7 In_PublishQoS0 = Out_Pub_my_topic_messageQos0
-    lambda 7 In_PublishQoS1 = Out_Pub_my_topic_messageQos1___PubAck
-    lambda 7 In_PublishRetain = Out_Pub_my_topic_retained_retained_message___PubAck
-    lambda 7 In_DeleteRetained = Out_PubAck
-    lambda 7 In_Subscribe = Out_SubAck
-    lambda 7 In_UnSubScribe = Out_UnSubAck
-    lambda 7 In_SubscribeRetained = Out_SubAck
-    lambda 7 In_UnSubScribeRetained = Out_UnSubAck
-    lambda 7 In_Disconnect = Out_ConnectionClosed
-    lambda 7 In_DisconnectTCP = Out_ConnectionClosed
-    lambda 9 In_Connect = Out_ConnectionClosed
-    lambda 9 In_PublishQoS0 = Out_Empty
-    lambda 9 In_PublishQoS1 = Out_PubAck
-    lambda 9 In_PublishRetain = Out_Pub_my_topic_retained_retained_message___PubAck
-    lambda 9 In_DeleteRetained = Out_PubAck
-    lambda 9 In_Subscribe = Out_SubAck
-    lambda 9 In_UnSubScribe = Out_UnSubAck
-    lambda 9 In_SubscribeRetained = Out_SubAck__Pub_my_topic_retained_retained_message
-    lambda 9 In_UnSubScribeRetained = Out_UnSubAck
-    lambda 9 In_Disconnect = Out_ConnectionClosed
-    lambda 9 In_DisconnectTCP = Out_ConnectionClosed
-    lambda 8 In_Connect = Out_ConnectionClosed
-    lambda 8 In_PublishQoS0 = Out_Pub_my_topic_messageQos0
-    lambda 8 In_PublishQoS1 = Out_Pub_my_topic_messageQos1___PubAck
-    lambda 8 In_PublishRetain = Out_Pub_my_topic_retained_retained_message___PubAck
-    lambda 8 In_DeleteRetained = Out_PubAck
-    lambda 8 In_Subscribe = Out_SubAck
-    lambda 8 In_UnSubScribe = Out_UnSubAck
-    lambda 8 In_SubscribeRetained = Out_SubAck__Pub_my_topic_retained_retained_message
-    lambda 8 In_UnSubScribeRetained = Out_UnSubAck
-    lambda 8 In_Disconnect = Out_ConnectionClosed
-    lambda 8 In_DisconnectTCP = Out_ConnectionClosed
-    lambda _ _ = error "haal-gen: undefined transition"
+    deltaTable =
+        "\1\0\0\0\0\0\0\0\0\0\0\
+        \\2\1\1\3\1\4\1\5\1\2\2\
+        \\2\2\2\2\2\2\2\2\2\2\2\
+        \\2\3\3\3\1\6\3\9\3\2\2\
+        \\2\4\4\6\4\4\1\7\4\2\2\
+        \\2\5\5\9\5\7\5\5\1\2\2\
+        \\2\6\6\6\4\6\3\8\6\2\2\
+        \\2\7\7\8\7\7\5\7\4\2\2\
+        \\2\8\8\8\7\8\3\8\6\2\2\
+        \\2\9\9\9\5\8\9\9\3\2\2"
+    lambdaTable =
+        "\0\1\1\1\1\1\1\1\1\1\1\
+        \\1\2\3\3\3\4\5\4\5\1\1\
+        \\1\1\1\1\1\1\1\1\1\1\1\
+        \\1\2\3\3\3\4\5\8\5\1\1\
+        \\1\6\7\3\3\4\5\4\5\1\1\
+        \\1\2\3\9\3\4\5\4\5\1\1\
+        \\1\6\7\3\3\4\5\8\5\1\1\
+        \\1\6\7\9\3\4\5\4\5\1\1\
+        \\1\6\7\9\3\4\5\8\5\1\1\
+        \\1\2\3\9\3\4\5\8\5\1\1"
diff --git a/src/Haal/Models/MQTT/VerneMQTwoClient.hs b/src/Haal/Models/MQTT/VerneMQTwoClient.hs
--- a/src/Haal/Models/MQTT/VerneMQTwoClient.hs
+++ b/src/Haal/Models/MQTT/VerneMQTwoClient.hs
@@ -5,8 +5,7 @@
     , verneMQTwoClient
     ) where
 
-import qualified Data.Set as Set
-import Haal.Automaton.MealyAutomaton (MealyAutomaton, mkMealyAutomaton)
+import Haal.Automaton.MealyAutomaton (MealyAutomaton, mkMealyAutomatonTable)
 
 data VerneMQTwoClientInput
     = In_ConnectC2
@@ -65,296 +64,189 @@
     | Out_Pub_c1_my_topic_messageQos1___c1_PubAck__c2_ConnectionClosed_client_close
     deriving (Show, Eq, Ord, Enum, Bounded)
 
+{- Transitions (state  input -> next state / output):
+    0     In_ConnectC2          -> 1 / Out_C1_ConnectionClosed_client_close___c2_ConnAck
+          In_ConnectC1WithWill  -> 2 / Out_C1_ConnAck__c2_ConnectionClosed_client_close
+          In_PublishQoS0C2      -> 0 / Out_C1_ConnectionClosed_client_close___c2_ConnectionClosed_client_close
+          In_PublishQoS1C1      -> 0 / Out_C1_ConnectionClosed_client_close___c2_ConnectionClosed_client_close
+          In_SubscribeC1        -> 0 / Out_C1_ConnectionClosed_client_close___c2_ConnectionClosed_client_close
+          In_UnSubScribeC1      -> 0 / Out_C1_ConnectionClosed_client_close___c2_ConnectionClosed_client_close
+          In_SubscribeC2        -> 0 / Out_C1_ConnectionClosed_client_close___c2_ConnectionClosed_client_close
+          In_UnSubScribeC2      -> 0 / Out_C1_ConnectionClosed_client_close___c2_ConnectionClosed_client_close
+          In_DisconnectTCPC1    -> 0 / Out_C1_ConnectionClosed_client_close___c2_ConnectionClosed_client_close
+    1     In_ConnectC2          -> 3 / Out_C1_ConnectionClosed_client_close___c2_ConnectionClosed_conn_reset
+          In_ConnectC1WithWill  -> 4 / Out_C1_ConnAck__Empty
+          In_PublishQoS0C2      -> 1 / Out_C1_ConnectionClosed_client_close___Empty
+          In_PublishQoS1C1      -> 1 / Out_C1_ConnectionClosed_client_close___Empty
+          In_SubscribeC1        -> 1 / Out_C1_ConnectionClosed_client_close___Empty
+          In_UnSubScribeC1      -> 1 / Out_C1_ConnectionClosed_client_close___Empty
+          In_SubscribeC2        -> 5 / Out_C1_ConnectionClosed_client_close___c2_SubAck
+          In_UnSubScribeC2      -> 1 / Out_C1_ConnectionClosed_client_close___c2_UnSubAck
+          In_DisconnectTCPC1    -> 1 / Out_C1_ConnectionClosed_client_close___Empty
+    2     In_ConnectC2          -> 4 / Out_Empty__c2_ConnAck
+          In_ConnectC1WithWill  -> 6 / Out_C1_ConnectionClosed_conn_reset___c2_ConnectionClosed_client_close
+          In_PublishQoS0C2      -> 2 / Out_Empty__c2_ConnectionClosed_client_close
+          In_PublishQoS1C1      -> 2 / Out_C1_PubAck__c2_ConnectionClosed_client_close
+          In_SubscribeC1        -> 7 / Out_C1_SubAck__c2_ConnectionClosed_client_close
+          In_UnSubScribeC1      -> 2 / Out_C1_UnSubAck__c2_ConnectionClosed_client_close
+          In_SubscribeC2        -> 2 / Out_Empty__c2_ConnectionClosed_client_close
+          In_UnSubScribeC2      -> 2 / Out_Empty__c2_ConnectionClosed_client_close
+          In_DisconnectTCPC1    -> 0 / Out_C1_ConnectionClosed_client_close___c2_ConnectionClosed_client_close
+    3     In_ConnectC2          -> 1 / Out_C1_ConnectionClosed_client_close___c2_ConnAck
+          In_ConnectC1WithWill  -> 8 / Out_C1_ConnAck__c2_ConnectionClosed_conn_reset
+          In_PublishQoS0C2      -> 3 / Out_C1_ConnectionClosed_client_close___c2_ConnectionClosed_conn_reset
+          In_PublishQoS1C1      -> 3 / Out_C1_ConnectionClosed_client_close___c2_ConnectionClosed_conn_reset
+          In_SubscribeC1        -> 3 / Out_C1_ConnectionClosed_client_close___c2_ConnectionClosed_conn_reset
+          In_UnSubScribeC1      -> 3 / Out_C1_ConnectionClosed_client_close___c2_ConnectionClosed_conn_reset
+          In_SubscribeC2        -> 3 / Out_C1_ConnectionClosed_client_close___c2_ConnectionClosed_conn_reset
+          In_UnSubScribeC2      -> 3 / Out_C1_ConnectionClosed_client_close___c2_ConnectionClosed_conn_reset
+          In_DisconnectTCPC1    -> 3 / Out_C1_ConnectionClosed_client_close___c2_ConnectionClosed_conn_reset
+    4     In_ConnectC2          -> 8 / Out_Empty__c2_ConnectionClosed_conn_reset
+          In_ConnectC1WithWill  -> 9 / Out_C1_ConnectionClosed_conn_reset___Empty
+          In_PublishQoS0C2      -> 4 / Out_Empty__Empty
+          In_PublishQoS1C1      -> 4 / Out_C1_PubAck__Empty
+          In_SubscribeC1        -> 10 / Out_C1_SubAck__Empty
+          In_UnSubScribeC1      -> 4 / Out_C1_UnSubAck__Empty
+          In_SubscribeC2        -> 11 / Out_Empty__c2_SubAck
+          In_UnSubScribeC2      -> 4 / Out_Empty__c2_UnSubAck
+          In_DisconnectTCPC1    -> 1 / Out_C1_ConnectionClosed_client_close___Empty
+    5     In_ConnectC2          -> 3 / Out_C1_ConnectionClosed_client_close___c2_ConnectionClosed_conn_reset
+          In_ConnectC1WithWill  -> 11 / Out_C1_ConnAck__Empty
+          In_PublishQoS0C2      -> 5 / Out_C1_ConnectionClosed_client_close___Pub_c2_my_topic_messageQos0
+          In_PublishQoS1C1      -> 5 / Out_C1_ConnectionClosed_client_close___Empty
+          In_SubscribeC1        -> 5 / Out_C1_ConnectionClosed_client_close___Empty
+          In_UnSubScribeC1      -> 5 / Out_C1_ConnectionClosed_client_close___Empty
+          In_SubscribeC2        -> 5 / Out_C1_ConnectionClosed_client_close___c2_SubAck
+          In_UnSubScribeC2      -> 1 / Out_C1_ConnectionClosed_client_close___c2_UnSubAck
+          In_DisconnectTCPC1    -> 5 / Out_C1_ConnectionClosed_client_close___Empty
+    6     In_ConnectC2          -> 9 / Out_C1_ConnectionClosed_conn_reset___c2_ConnAck
+          In_ConnectC1WithWill  -> 2 / Out_C1_ConnAck__c2_ConnectionClosed_client_close
+          In_PublishQoS0C2      -> 6 / Out_C1_ConnectionClosed_conn_reset___c2_ConnectionClosed_client_close
+          In_PublishQoS1C1      -> 6 / Out_C1_ConnectionClosed_conn_reset___c2_ConnectionClosed_client_close
+          In_SubscribeC1        -> 6 / Out_C1_ConnectionClosed_conn_reset___c2_ConnectionClosed_client_close
+          In_UnSubScribeC1      -> 6 / Out_C1_ConnectionClosed_conn_reset___c2_ConnectionClosed_client_close
+          In_SubscribeC2        -> 6 / Out_C1_ConnectionClosed_conn_reset___c2_ConnectionClosed_client_close
+          In_UnSubScribeC2      -> 6 / Out_C1_ConnectionClosed_conn_reset___c2_ConnectionClosed_client_close
+          In_DisconnectTCPC1    -> 0 / Out_C1_ConnectionClosed_client_close___c2_ConnectionClosed_client_close
+    7     In_ConnectC2          -> 10 / Out_Empty__c2_ConnAck
+          In_ConnectC1WithWill  -> 6 / Out_C1_ConnectionClosed_conn_reset___c2_ConnectionClosed_client_close
+          In_PublishQoS0C2      -> 7 / Out_Empty__c2_ConnectionClosed_client_close
+          In_PublishQoS1C1      -> 7 / Out_Pub_c1_my_topic_messageQos1___c1_PubAck__c2_ConnectionClosed_client_close
+          In_SubscribeC1        -> 7 / Out_C1_SubAck__c2_ConnectionClosed_client_close
+          In_UnSubScribeC1      -> 2 / Out_C1_UnSubAck__c2_ConnectionClosed_client_close
+          In_SubscribeC2        -> 7 / Out_Empty__c2_ConnectionClosed_client_close
+          In_UnSubScribeC2      -> 7 / Out_Empty__c2_ConnectionClosed_client_close
+          In_DisconnectTCPC1    -> 0 / Out_C1_ConnectionClosed_client_close___c2_ConnectionClosed_client_close
+    8     In_ConnectC2          -> 4 / Out_Empty__c2_ConnAck
+          In_ConnectC1WithWill  -> 12 / Out_C1_ConnectionClosed_conn_reset___c2_ConnectionClosed_conn_reset
+          In_PublishQoS0C2      -> 8 / Out_Empty__c2_ConnectionClosed_conn_reset
+          In_PublishQoS1C1      -> 8 / Out_C1_PubAck__c2_ConnectionClosed_conn_reset
+          In_SubscribeC1        -> 15 / Out_C1_SubAck__c2_ConnectionClosed_conn_reset
+          In_UnSubScribeC1      -> 8 / Out_C1_UnSubAck__c2_ConnectionClosed_conn_reset
+          In_SubscribeC2        -> 8 / Out_Empty__c2_ConnectionClosed_conn_reset
+          In_UnSubScribeC2      -> 8 / Out_Empty__c2_ConnectionClosed_conn_reset
+          In_DisconnectTCPC1    -> 3 / Out_C1_ConnectionClosed_client_close___c2_ConnectionClosed_conn_reset
+    9     In_ConnectC2          -> 12 / Out_C1_ConnectionClosed_conn_reset___c2_ConnectionClosed_conn_reset
+          In_ConnectC1WithWill  -> 4 / Out_C1_ConnAck__Empty
+          In_PublishQoS0C2      -> 9 / Out_C1_ConnectionClosed_conn_reset___Empty
+          In_PublishQoS1C1      -> 9 / Out_C1_ConnectionClosed_conn_reset___Empty
+          In_SubscribeC1        -> 9 / Out_C1_ConnectionClosed_conn_reset___Empty
+          In_UnSubScribeC1      -> 9 / Out_C1_ConnectionClosed_conn_reset___Empty
+          In_SubscribeC2        -> 13 / Out_C1_ConnectionClosed_conn_reset___c2_SubAck
+          In_UnSubScribeC2      -> 9 / Out_C1_ConnectionClosed_conn_reset___c2_UnSubAck
+          In_DisconnectTCPC1    -> 1 / Out_C1_ConnectionClosed_client_close___Empty
+    10    In_ConnectC2          -> 15 / Out_Empty__c2_ConnectionClosed_conn_reset
+          In_ConnectC1WithWill  -> 9 / Out_C1_ConnectionClosed_conn_reset___Empty
+          In_PublishQoS0C2      -> 10 / Out_Pub_c1_my_topic_messageQos0___Empty
+          In_PublishQoS1C1      -> 10 / Out_Pub_c1_my_topic_messageQos1___c1_PubAck__Empty
+          In_SubscribeC1        -> 10 / Out_C1_SubAck__Empty
+          In_UnSubScribeC1      -> 4 / Out_C1_UnSubAck__Empty
+          In_SubscribeC2        -> 14 / Out_Empty__c2_SubAck
+          In_UnSubScribeC2      -> 10 / Out_Empty__c2_UnSubAck
+          In_DisconnectTCPC1    -> 1 / Out_C1_ConnectionClosed_client_close___Empty
+    11    In_ConnectC2          -> 8 / Out_Empty__c2_ConnectionClosed_conn_reset
+          In_ConnectC1WithWill  -> 13 / Out_C1_ConnectionClosed_conn_reset___Pub_c2_my_topic_bye
+          In_PublishQoS0C2      -> 11 / Out_Empty__Pub_c2_my_topic_messageQos0
+          In_PublishQoS1C1      -> 11 / Out_C1_PubAck__Pub_c2_my_topic_messageQos1
+          In_SubscribeC1        -> 14 / Out_C1_SubAck__Empty
+          In_UnSubScribeC1      -> 11 / Out_C1_UnSubAck__Empty
+          In_SubscribeC2        -> 11 / Out_Empty__c2_SubAck
+          In_UnSubScribeC2      -> 4 / Out_Empty__c2_UnSubAck
+          In_DisconnectTCPC1    -> 5 / Out_C1_ConnectionClosed_client_close___Pub_c2_my_topic_bye
+    12    In_ConnectC2          -> 9 / Out_C1_ConnectionClosed_conn_reset___c2_ConnAck
+          In_ConnectC1WithWill  -> 8 / Out_C1_ConnAck__c2_ConnectionClosed_conn_reset
+          In_PublishQoS0C2      -> 12 / Out_C1_ConnectionClosed_conn_reset___c2_ConnectionClosed_conn_reset
+          In_PublishQoS1C1      -> 12 / Out_C1_ConnectionClosed_conn_reset___c2_ConnectionClosed_conn_reset
+          In_SubscribeC1        -> 12 / Out_C1_ConnectionClosed_conn_reset___c2_ConnectionClosed_conn_reset
+          In_UnSubScribeC1      -> 12 / Out_C1_ConnectionClosed_conn_reset___c2_ConnectionClosed_conn_reset
+          In_SubscribeC2        -> 12 / Out_C1_ConnectionClosed_conn_reset___c2_ConnectionClosed_conn_reset
+          In_UnSubScribeC2      -> 12 / Out_C1_ConnectionClosed_conn_reset___c2_ConnectionClosed_conn_reset
+          In_DisconnectTCPC1    -> 3 / Out_C1_ConnectionClosed_client_close___c2_ConnectionClosed_conn_reset
+    13    In_ConnectC2          -> 12 / Out_C1_ConnectionClosed_conn_reset___c2_ConnectionClosed_conn_reset
+          In_ConnectC1WithWill  -> 11 / Out_C1_ConnAck__Empty
+          In_PublishQoS0C2      -> 13 / Out_C1_ConnectionClosed_conn_reset___Pub_c2_my_topic_messageQos0
+          In_PublishQoS1C1      -> 13 / Out_C1_ConnectionClosed_conn_reset___Empty
+          In_SubscribeC1        -> 13 / Out_C1_ConnectionClosed_conn_reset___Empty
+          In_UnSubScribeC1      -> 13 / Out_C1_ConnectionClosed_conn_reset___Empty
+          In_SubscribeC2        -> 13 / Out_C1_ConnectionClosed_conn_reset___c2_SubAck
+          In_UnSubScribeC2      -> 9 / Out_C1_ConnectionClosed_conn_reset___c2_UnSubAck
+          In_DisconnectTCPC1    -> 5 / Out_C1_ConnectionClosed_client_close___Empty
+    14    In_ConnectC2          -> 15 / Out_Empty__c2_ConnectionClosed_conn_reset
+          In_ConnectC1WithWill  -> 13 / Out_C1_ConnectionClosed_conn_reset___Pub_c2_my_topic_bye
+          In_PublishQoS0C2      -> 14 / Out_Pub_c1_my_topic_messageQos0___Pub_c2_my_topic_messageQos0
+          In_PublishQoS1C1      -> 14 / Out_Pub_c1_my_topic_messageQos1___c1_PubAck__Pub_c2_my_topic_messageQos1
+          In_SubscribeC1        -> 14 / Out_C1_SubAck__Empty
+          In_UnSubScribeC1      -> 11 / Out_C1_UnSubAck__Empty
+          In_SubscribeC2        -> 14 / Out_Empty__c2_SubAck
+          In_UnSubScribeC2      -> 10 / Out_Empty__c2_UnSubAck
+          In_DisconnectTCPC1    -> 5 / Out_C1_ConnectionClosed_client_close___Pub_c2_my_topic_bye
+    15    In_ConnectC2          -> 10 / Out_Empty__c2_ConnAck
+          In_ConnectC1WithWill  -> 12 / Out_C1_ConnectionClosed_conn_reset___c2_ConnectionClosed_conn_reset
+          In_PublishQoS0C2      -> 15 / Out_Empty__c2_ConnectionClosed_conn_reset
+          In_PublishQoS1C1      -> 15 / Out_Pub_c1_my_topic_messageQos1___c1_PubAck__c2_ConnectionClosed_conn_reset
+          In_SubscribeC1        -> 15 / Out_C1_SubAck__c2_ConnectionClosed_conn_reset
+          In_UnSubScribeC1      -> 8 / Out_C1_UnSubAck__c2_ConnectionClosed_conn_reset
+          In_SubscribeC2        -> 15 / Out_Empty__c2_ConnectionClosed_conn_reset
+          In_UnSubScribeC2      -> 15 / Out_Empty__c2_ConnectionClosed_conn_reset
+          In_DisconnectTCPC1    -> 3 / Out_C1_ConnectionClosed_client_close___c2_ConnectionClosed_conn_reset
+-}
 verneMQTwoClient :: MealyAutomaton Int VerneMQTwoClientInput VerneMQTwoClientOutput
-verneMQTwoClient = mkMealyAutomaton delta lambda (Set.fromList [0..15]) 0
+verneMQTwoClient =
+    case mkMealyAutomatonTable 16 0 deltaTable lambdaTable of
+        Right m -> m
+        Left err -> error ("haal-gen: invalid transition table: " ++ err)
   where
-    delta 0 In_ConnectC2 = 1
-    delta 0 In_ConnectC1WithWill = 2
-    delta 0 In_PublishQoS0C2 = 0
-    delta 0 In_PublishQoS1C1 = 0
-    delta 0 In_SubscribeC1 = 0
-    delta 0 In_UnSubScribeC1 = 0
-    delta 0 In_SubscribeC2 = 0
-    delta 0 In_UnSubScribeC2 = 0
-    delta 0 In_DisconnectTCPC1 = 0
-    delta 1 In_ConnectC2 = 3
-    delta 1 In_ConnectC1WithWill = 4
-    delta 1 In_PublishQoS0C2 = 1
-    delta 1 In_PublishQoS1C1 = 1
-    delta 1 In_SubscribeC1 = 1
-    delta 1 In_UnSubScribeC1 = 1
-    delta 1 In_SubscribeC2 = 5
-    delta 1 In_UnSubScribeC2 = 1
-    delta 1 In_DisconnectTCPC1 = 1
-    delta 2 In_ConnectC2 = 4
-    delta 2 In_ConnectC1WithWill = 6
-    delta 2 In_PublishQoS0C2 = 2
-    delta 2 In_PublishQoS1C1 = 2
-    delta 2 In_SubscribeC1 = 7
-    delta 2 In_UnSubScribeC1 = 2
-    delta 2 In_SubscribeC2 = 2
-    delta 2 In_UnSubScribeC2 = 2
-    delta 2 In_DisconnectTCPC1 = 0
-    delta 4 In_ConnectC2 = 8
-    delta 4 In_ConnectC1WithWill = 9
-    delta 4 In_PublishQoS0C2 = 4
-    delta 4 In_PublishQoS1C1 = 4
-    delta 4 In_SubscribeC1 = 10
-    delta 4 In_UnSubScribeC1 = 4
-    delta 4 In_SubscribeC2 = 11
-    delta 4 In_UnSubScribeC2 = 4
-    delta 4 In_DisconnectTCPC1 = 1
-    delta 6 In_ConnectC2 = 9
-    delta 6 In_ConnectC1WithWill = 2
-    delta 6 In_PublishQoS0C2 = 6
-    delta 6 In_PublishQoS1C1 = 6
-    delta 6 In_SubscribeC1 = 6
-    delta 6 In_UnSubScribeC1 = 6
-    delta 6 In_SubscribeC2 = 6
-    delta 6 In_UnSubScribeC2 = 6
-    delta 6 In_DisconnectTCPC1 = 0
-    delta 9 In_ConnectC2 = 12
-    delta 9 In_ConnectC1WithWill = 4
-    delta 9 In_PublishQoS0C2 = 9
-    delta 9 In_PublishQoS1C1 = 9
-    delta 9 In_SubscribeC1 = 9
-    delta 9 In_UnSubScribeC1 = 9
-    delta 9 In_SubscribeC2 = 13
-    delta 9 In_UnSubScribeC2 = 9
-    delta 9 In_DisconnectTCPC1 = 1
-    delta 3 In_ConnectC2 = 1
-    delta 3 In_ConnectC1WithWill = 8
-    delta 3 In_PublishQoS0C2 = 3
-    delta 3 In_PublishQoS1C1 = 3
-    delta 3 In_SubscribeC1 = 3
-    delta 3 In_UnSubScribeC1 = 3
-    delta 3 In_SubscribeC2 = 3
-    delta 3 In_UnSubScribeC2 = 3
-    delta 3 In_DisconnectTCPC1 = 3
-    delta 5 In_ConnectC2 = 3
-    delta 5 In_ConnectC1WithWill = 11
-    delta 5 In_PublishQoS0C2 = 5
-    delta 5 In_PublishQoS1C1 = 5
-    delta 5 In_SubscribeC1 = 5
-    delta 5 In_UnSubScribeC1 = 5
-    delta 5 In_SubscribeC2 = 5
-    delta 5 In_UnSubScribeC2 = 1
-    delta 5 In_DisconnectTCPC1 = 5
-    delta 11 In_ConnectC2 = 8
-    delta 11 In_ConnectC1WithWill = 13
-    delta 11 In_PublishQoS0C2 = 11
-    delta 11 In_PublishQoS1C1 = 11
-    delta 11 In_SubscribeC1 = 14
-    delta 11 In_UnSubScribeC1 = 11
-    delta 11 In_SubscribeC2 = 11
-    delta 11 In_UnSubScribeC2 = 4
-    delta 11 In_DisconnectTCPC1 = 5
-    delta 8 In_ConnectC2 = 4
-    delta 8 In_ConnectC1WithWill = 12
-    delta 8 In_PublishQoS0C2 = 8
-    delta 8 In_PublishQoS1C1 = 8
-    delta 8 In_SubscribeC1 = 15
-    delta 8 In_UnSubScribeC1 = 8
-    delta 8 In_SubscribeC2 = 8
-    delta 8 In_UnSubScribeC2 = 8
-    delta 8 In_DisconnectTCPC1 = 3
-    delta 10 In_ConnectC2 = 15
-    delta 10 In_ConnectC1WithWill = 9
-    delta 10 In_PublishQoS0C2 = 10
-    delta 10 In_PublishQoS1C1 = 10
-    delta 10 In_SubscribeC1 = 10
-    delta 10 In_UnSubScribeC1 = 4
-    delta 10 In_SubscribeC2 = 14
-    delta 10 In_UnSubScribeC2 = 10
-    delta 10 In_DisconnectTCPC1 = 1
-    delta 12 In_ConnectC2 = 9
-    delta 12 In_ConnectC1WithWill = 8
-    delta 12 In_PublishQoS0C2 = 12
-    delta 12 In_PublishQoS1C1 = 12
-    delta 12 In_SubscribeC1 = 12
-    delta 12 In_UnSubScribeC1 = 12
-    delta 12 In_SubscribeC2 = 12
-    delta 12 In_UnSubScribeC2 = 12
-    delta 12 In_DisconnectTCPC1 = 3
-    delta 15 In_ConnectC2 = 10
-    delta 15 In_ConnectC1WithWill = 12
-    delta 15 In_PublishQoS0C2 = 15
-    delta 15 In_PublishQoS1C1 = 15
-    delta 15 In_SubscribeC1 = 15
-    delta 15 In_UnSubScribeC1 = 8
-    delta 15 In_SubscribeC2 = 15
-    delta 15 In_UnSubScribeC2 = 15
-    delta 15 In_DisconnectTCPC1 = 3
-    delta 14 In_ConnectC2 = 15
-    delta 14 In_ConnectC1WithWill = 13
-    delta 14 In_PublishQoS0C2 = 14
-    delta 14 In_PublishQoS1C1 = 14
-    delta 14 In_SubscribeC1 = 14
-    delta 14 In_UnSubScribeC1 = 11
-    delta 14 In_SubscribeC2 = 14
-    delta 14 In_UnSubScribeC2 = 10
-    delta 14 In_DisconnectTCPC1 = 5
-    delta 13 In_ConnectC2 = 12
-    delta 13 In_ConnectC1WithWill = 11
-    delta 13 In_PublishQoS0C2 = 13
-    delta 13 In_PublishQoS1C1 = 13
-    delta 13 In_SubscribeC1 = 13
-    delta 13 In_UnSubScribeC1 = 13
-    delta 13 In_SubscribeC2 = 13
-    delta 13 In_UnSubScribeC2 = 9
-    delta 13 In_DisconnectTCPC1 = 5
-    delta 7 In_ConnectC2 = 10
-    delta 7 In_ConnectC1WithWill = 6
-    delta 7 In_PublishQoS0C2 = 7
-    delta 7 In_PublishQoS1C1 = 7
-    delta 7 In_SubscribeC1 = 7
-    delta 7 In_UnSubScribeC1 = 2
-    delta 7 In_SubscribeC2 = 7
-    delta 7 In_UnSubScribeC2 = 7
-    delta 7 In_DisconnectTCPC1 = 0
-    delta _ _ = error "haal-gen: undefined transition"
-    lambda 0 In_ConnectC2 = Out_C1_ConnectionClosed_client_close___c2_ConnAck
-    lambda 0 In_ConnectC1WithWill = Out_C1_ConnAck__c2_ConnectionClosed_client_close
-    lambda 0 In_PublishQoS0C2 = Out_C1_ConnectionClosed_client_close___c2_ConnectionClosed_client_close
-    lambda 0 In_PublishQoS1C1 = Out_C1_ConnectionClosed_client_close___c2_ConnectionClosed_client_close
-    lambda 0 In_SubscribeC1 = Out_C1_ConnectionClosed_client_close___c2_ConnectionClosed_client_close
-    lambda 0 In_UnSubScribeC1 = Out_C1_ConnectionClosed_client_close___c2_ConnectionClosed_client_close
-    lambda 0 In_SubscribeC2 = Out_C1_ConnectionClosed_client_close___c2_ConnectionClosed_client_close
-    lambda 0 In_UnSubScribeC2 = Out_C1_ConnectionClosed_client_close___c2_ConnectionClosed_client_close
-    lambda 0 In_DisconnectTCPC1 = Out_C1_ConnectionClosed_client_close___c2_ConnectionClosed_client_close
-    lambda 1 In_ConnectC2 = Out_C1_ConnectionClosed_client_close___c2_ConnectionClosed_conn_reset
-    lambda 1 In_ConnectC1WithWill = Out_C1_ConnAck__Empty
-    lambda 1 In_PublishQoS0C2 = Out_C1_ConnectionClosed_client_close___Empty
-    lambda 1 In_PublishQoS1C1 = Out_C1_ConnectionClosed_client_close___Empty
-    lambda 1 In_SubscribeC1 = Out_C1_ConnectionClosed_client_close___Empty
-    lambda 1 In_UnSubScribeC1 = Out_C1_ConnectionClosed_client_close___Empty
-    lambda 1 In_SubscribeC2 = Out_C1_ConnectionClosed_client_close___c2_SubAck
-    lambda 1 In_UnSubScribeC2 = Out_C1_ConnectionClosed_client_close___c2_UnSubAck
-    lambda 1 In_DisconnectTCPC1 = Out_C1_ConnectionClosed_client_close___Empty
-    lambda 2 In_ConnectC2 = Out_Empty__c2_ConnAck
-    lambda 2 In_ConnectC1WithWill = Out_C1_ConnectionClosed_conn_reset___c2_ConnectionClosed_client_close
-    lambda 2 In_PublishQoS0C2 = Out_Empty__c2_ConnectionClosed_client_close
-    lambda 2 In_PublishQoS1C1 = Out_C1_PubAck__c2_ConnectionClosed_client_close
-    lambda 2 In_SubscribeC1 = Out_C1_SubAck__c2_ConnectionClosed_client_close
-    lambda 2 In_UnSubScribeC1 = Out_C1_UnSubAck__c2_ConnectionClosed_client_close
-    lambda 2 In_SubscribeC2 = Out_Empty__c2_ConnectionClosed_client_close
-    lambda 2 In_UnSubScribeC2 = Out_Empty__c2_ConnectionClosed_client_close
-    lambda 2 In_DisconnectTCPC1 = Out_C1_ConnectionClosed_client_close___c2_ConnectionClosed_client_close
-    lambda 4 In_ConnectC2 = Out_Empty__c2_ConnectionClosed_conn_reset
-    lambda 4 In_ConnectC1WithWill = Out_C1_ConnectionClosed_conn_reset___Empty
-    lambda 4 In_PublishQoS0C2 = Out_Empty__Empty
-    lambda 4 In_PublishQoS1C1 = Out_C1_PubAck__Empty
-    lambda 4 In_SubscribeC1 = Out_C1_SubAck__Empty
-    lambda 4 In_UnSubScribeC1 = Out_C1_UnSubAck__Empty
-    lambda 4 In_SubscribeC2 = Out_Empty__c2_SubAck
-    lambda 4 In_UnSubScribeC2 = Out_Empty__c2_UnSubAck
-    lambda 4 In_DisconnectTCPC1 = Out_C1_ConnectionClosed_client_close___Empty
-    lambda 6 In_ConnectC2 = Out_C1_ConnectionClosed_conn_reset___c2_ConnAck
-    lambda 6 In_ConnectC1WithWill = Out_C1_ConnAck__c2_ConnectionClosed_client_close
-    lambda 6 In_PublishQoS0C2 = Out_C1_ConnectionClosed_conn_reset___c2_ConnectionClosed_client_close
-    lambda 6 In_PublishQoS1C1 = Out_C1_ConnectionClosed_conn_reset___c2_ConnectionClosed_client_close
-    lambda 6 In_SubscribeC1 = Out_C1_ConnectionClosed_conn_reset___c2_ConnectionClosed_client_close
-    lambda 6 In_UnSubScribeC1 = Out_C1_ConnectionClosed_conn_reset___c2_ConnectionClosed_client_close
-    lambda 6 In_SubscribeC2 = Out_C1_ConnectionClosed_conn_reset___c2_ConnectionClosed_client_close
-    lambda 6 In_UnSubScribeC2 = Out_C1_ConnectionClosed_conn_reset___c2_ConnectionClosed_client_close
-    lambda 6 In_DisconnectTCPC1 = Out_C1_ConnectionClosed_client_close___c2_ConnectionClosed_client_close
-    lambda 9 In_ConnectC2 = Out_C1_ConnectionClosed_conn_reset___c2_ConnectionClosed_conn_reset
-    lambda 9 In_ConnectC1WithWill = Out_C1_ConnAck__Empty
-    lambda 9 In_PublishQoS0C2 = Out_C1_ConnectionClosed_conn_reset___Empty
-    lambda 9 In_PublishQoS1C1 = Out_C1_ConnectionClosed_conn_reset___Empty
-    lambda 9 In_SubscribeC1 = Out_C1_ConnectionClosed_conn_reset___Empty
-    lambda 9 In_UnSubScribeC1 = Out_C1_ConnectionClosed_conn_reset___Empty
-    lambda 9 In_SubscribeC2 = Out_C1_ConnectionClosed_conn_reset___c2_SubAck
-    lambda 9 In_UnSubScribeC2 = Out_C1_ConnectionClosed_conn_reset___c2_UnSubAck
-    lambda 9 In_DisconnectTCPC1 = Out_C1_ConnectionClosed_client_close___Empty
-    lambda 3 In_ConnectC2 = Out_C1_ConnectionClosed_client_close___c2_ConnAck
-    lambda 3 In_ConnectC1WithWill = Out_C1_ConnAck__c2_ConnectionClosed_conn_reset
-    lambda 3 In_PublishQoS0C2 = Out_C1_ConnectionClosed_client_close___c2_ConnectionClosed_conn_reset
-    lambda 3 In_PublishQoS1C1 = Out_C1_ConnectionClosed_client_close___c2_ConnectionClosed_conn_reset
-    lambda 3 In_SubscribeC1 = Out_C1_ConnectionClosed_client_close___c2_ConnectionClosed_conn_reset
-    lambda 3 In_UnSubScribeC1 = Out_C1_ConnectionClosed_client_close___c2_ConnectionClosed_conn_reset
-    lambda 3 In_SubscribeC2 = Out_C1_ConnectionClosed_client_close___c2_ConnectionClosed_conn_reset
-    lambda 3 In_UnSubScribeC2 = Out_C1_ConnectionClosed_client_close___c2_ConnectionClosed_conn_reset
-    lambda 3 In_DisconnectTCPC1 = Out_C1_ConnectionClosed_client_close___c2_ConnectionClosed_conn_reset
-    lambda 5 In_ConnectC2 = Out_C1_ConnectionClosed_client_close___c2_ConnectionClosed_conn_reset
-    lambda 5 In_ConnectC1WithWill = Out_C1_ConnAck__Empty
-    lambda 5 In_PublishQoS0C2 = Out_C1_ConnectionClosed_client_close___Pub_c2_my_topic_messageQos0
-    lambda 5 In_PublishQoS1C1 = Out_C1_ConnectionClosed_client_close___Empty
-    lambda 5 In_SubscribeC1 = Out_C1_ConnectionClosed_client_close___Empty
-    lambda 5 In_UnSubScribeC1 = Out_C1_ConnectionClosed_client_close___Empty
-    lambda 5 In_SubscribeC2 = Out_C1_ConnectionClosed_client_close___c2_SubAck
-    lambda 5 In_UnSubScribeC2 = Out_C1_ConnectionClosed_client_close___c2_UnSubAck
-    lambda 5 In_DisconnectTCPC1 = Out_C1_ConnectionClosed_client_close___Empty
-    lambda 11 In_ConnectC2 = Out_Empty__c2_ConnectionClosed_conn_reset
-    lambda 11 In_ConnectC1WithWill = Out_C1_ConnectionClosed_conn_reset___Pub_c2_my_topic_bye
-    lambda 11 In_PublishQoS0C2 = Out_Empty__Pub_c2_my_topic_messageQos0
-    lambda 11 In_PublishQoS1C1 = Out_C1_PubAck__Pub_c2_my_topic_messageQos1
-    lambda 11 In_SubscribeC1 = Out_C1_SubAck__Empty
-    lambda 11 In_UnSubScribeC1 = Out_C1_UnSubAck__Empty
-    lambda 11 In_SubscribeC2 = Out_Empty__c2_SubAck
-    lambda 11 In_UnSubScribeC2 = Out_Empty__c2_UnSubAck
-    lambda 11 In_DisconnectTCPC1 = Out_C1_ConnectionClosed_client_close___Pub_c2_my_topic_bye
-    lambda 8 In_ConnectC2 = Out_Empty__c2_ConnAck
-    lambda 8 In_ConnectC1WithWill = Out_C1_ConnectionClosed_conn_reset___c2_ConnectionClosed_conn_reset
-    lambda 8 In_PublishQoS0C2 = Out_Empty__c2_ConnectionClosed_conn_reset
-    lambda 8 In_PublishQoS1C1 = Out_C1_PubAck__c2_ConnectionClosed_conn_reset
-    lambda 8 In_SubscribeC1 = Out_C1_SubAck__c2_ConnectionClosed_conn_reset
-    lambda 8 In_UnSubScribeC1 = Out_C1_UnSubAck__c2_ConnectionClosed_conn_reset
-    lambda 8 In_SubscribeC2 = Out_Empty__c2_ConnectionClosed_conn_reset
-    lambda 8 In_UnSubScribeC2 = Out_Empty__c2_ConnectionClosed_conn_reset
-    lambda 8 In_DisconnectTCPC1 = Out_C1_ConnectionClosed_client_close___c2_ConnectionClosed_conn_reset
-    lambda 10 In_ConnectC2 = Out_Empty__c2_ConnectionClosed_conn_reset
-    lambda 10 In_ConnectC1WithWill = Out_C1_ConnectionClosed_conn_reset___Empty
-    lambda 10 In_PublishQoS0C2 = Out_Pub_c1_my_topic_messageQos0___Empty
-    lambda 10 In_PublishQoS1C1 = Out_Pub_c1_my_topic_messageQos1___c1_PubAck__Empty
-    lambda 10 In_SubscribeC1 = Out_C1_SubAck__Empty
-    lambda 10 In_UnSubScribeC1 = Out_C1_UnSubAck__Empty
-    lambda 10 In_SubscribeC2 = Out_Empty__c2_SubAck
-    lambda 10 In_UnSubScribeC2 = Out_Empty__c2_UnSubAck
-    lambda 10 In_DisconnectTCPC1 = Out_C1_ConnectionClosed_client_close___Empty
-    lambda 12 In_ConnectC2 = Out_C1_ConnectionClosed_conn_reset___c2_ConnAck
-    lambda 12 In_ConnectC1WithWill = Out_C1_ConnAck__c2_ConnectionClosed_conn_reset
-    lambda 12 In_PublishQoS0C2 = Out_C1_ConnectionClosed_conn_reset___c2_ConnectionClosed_conn_reset
-    lambda 12 In_PublishQoS1C1 = Out_C1_ConnectionClosed_conn_reset___c2_ConnectionClosed_conn_reset
-    lambda 12 In_SubscribeC1 = Out_C1_ConnectionClosed_conn_reset___c2_ConnectionClosed_conn_reset
-    lambda 12 In_UnSubScribeC1 = Out_C1_ConnectionClosed_conn_reset___c2_ConnectionClosed_conn_reset
-    lambda 12 In_SubscribeC2 = Out_C1_ConnectionClosed_conn_reset___c2_ConnectionClosed_conn_reset
-    lambda 12 In_UnSubScribeC2 = Out_C1_ConnectionClosed_conn_reset___c2_ConnectionClosed_conn_reset
-    lambda 12 In_DisconnectTCPC1 = Out_C1_ConnectionClosed_client_close___c2_ConnectionClosed_conn_reset
-    lambda 15 In_ConnectC2 = Out_Empty__c2_ConnAck
-    lambda 15 In_ConnectC1WithWill = Out_C1_ConnectionClosed_conn_reset___c2_ConnectionClosed_conn_reset
-    lambda 15 In_PublishQoS0C2 = Out_Empty__c2_ConnectionClosed_conn_reset
-    lambda 15 In_PublishQoS1C1 = Out_Pub_c1_my_topic_messageQos1___c1_PubAck__c2_ConnectionClosed_conn_reset
-    lambda 15 In_SubscribeC1 = Out_C1_SubAck__c2_ConnectionClosed_conn_reset
-    lambda 15 In_UnSubScribeC1 = Out_C1_UnSubAck__c2_ConnectionClosed_conn_reset
-    lambda 15 In_SubscribeC2 = Out_Empty__c2_ConnectionClosed_conn_reset
-    lambda 15 In_UnSubScribeC2 = Out_Empty__c2_ConnectionClosed_conn_reset
-    lambda 15 In_DisconnectTCPC1 = Out_C1_ConnectionClosed_client_close___c2_ConnectionClosed_conn_reset
-    lambda 14 In_ConnectC2 = Out_Empty__c2_ConnectionClosed_conn_reset
-    lambda 14 In_ConnectC1WithWill = Out_C1_ConnectionClosed_conn_reset___Pub_c2_my_topic_bye
-    lambda 14 In_PublishQoS0C2 = Out_Pub_c1_my_topic_messageQos0___Pub_c2_my_topic_messageQos0
-    lambda 14 In_PublishQoS1C1 = Out_Pub_c1_my_topic_messageQos1___c1_PubAck__Pub_c2_my_topic_messageQos1
-    lambda 14 In_SubscribeC1 = Out_C1_SubAck__Empty
-    lambda 14 In_UnSubScribeC1 = Out_C1_UnSubAck__Empty
-    lambda 14 In_SubscribeC2 = Out_Empty__c2_SubAck
-    lambda 14 In_UnSubScribeC2 = Out_Empty__c2_UnSubAck
-    lambda 14 In_DisconnectTCPC1 = Out_C1_ConnectionClosed_client_close___Pub_c2_my_topic_bye
-    lambda 13 In_ConnectC2 = Out_C1_ConnectionClosed_conn_reset___c2_ConnectionClosed_conn_reset
-    lambda 13 In_ConnectC1WithWill = Out_C1_ConnAck__Empty
-    lambda 13 In_PublishQoS0C2 = Out_C1_ConnectionClosed_conn_reset___Pub_c2_my_topic_messageQos0
-    lambda 13 In_PublishQoS1C1 = Out_C1_ConnectionClosed_conn_reset___Empty
-    lambda 13 In_SubscribeC1 = Out_C1_ConnectionClosed_conn_reset___Empty
-    lambda 13 In_UnSubScribeC1 = Out_C1_ConnectionClosed_conn_reset___Empty
-    lambda 13 In_SubscribeC2 = Out_C1_ConnectionClosed_conn_reset___c2_SubAck
-    lambda 13 In_UnSubScribeC2 = Out_C1_ConnectionClosed_conn_reset___c2_UnSubAck
-    lambda 13 In_DisconnectTCPC1 = Out_C1_ConnectionClosed_client_close___Empty
-    lambda 7 In_ConnectC2 = Out_Empty__c2_ConnAck
-    lambda 7 In_ConnectC1WithWill = Out_C1_ConnectionClosed_conn_reset___c2_ConnectionClosed_client_close
-    lambda 7 In_PublishQoS0C2 = Out_Empty__c2_ConnectionClosed_client_close
-    lambda 7 In_PublishQoS1C1 = Out_Pub_c1_my_topic_messageQos1___c1_PubAck__c2_ConnectionClosed_client_close
-    lambda 7 In_SubscribeC1 = Out_C1_SubAck__c2_ConnectionClosed_client_close
-    lambda 7 In_UnSubScribeC1 = Out_C1_UnSubAck__c2_ConnectionClosed_client_close
-    lambda 7 In_SubscribeC2 = Out_Empty__c2_ConnectionClosed_client_close
-    lambda 7 In_UnSubScribeC2 = Out_Empty__c2_ConnectionClosed_client_close
-    lambda 7 In_DisconnectTCPC1 = Out_C1_ConnectionClosed_client_close___c2_ConnectionClosed_client_close
-    lambda _ _ = error "haal-gen: undefined transition"
+    deltaTable =
+        "\1\2\0\0\0\0\0\0\0\
+        \\3\4\1\1\1\1\5\1\1\
+        \\4\6\2\2\7\2\2\2\0\
+        \\1\8\3\3\3\3\3\3\3\
+        \\8\9\4\4\10\4\11\4\1\
+        \\3\11\5\5\5\5\5\1\5\
+        \\9\2\6\6\6\6\6\6\0\
+        \\10\6\7\7\7\2\7\7\0\
+        \\4\12\8\8\15\8\8\8\3\
+        \\12\4\9\9\9\9\13\9\1\
+        \\15\9\10\10\10\4\14\10\1\
+        \\8\13\11\11\14\11\11\4\5\
+        \\9\8\12\12\12\12\12\12\3\
+        \\12\11\13\13\13\13\13\9\5\
+        \\15\13\14\14\14\11\14\10\5\
+        \\10\12\15\15\15\8\15\15\3"
+    lambdaTable =
+        "\0\1\2\2\2\2\2\2\2\
+        \\3\4\5\5\5\5\6\7\5\
+        \\8\9\10\11\12\13\10\10\2\
+        \\0\26\3\3\3\3\3\3\3\
+        \\14\15\16\17\18\19\20\21\5\
+        \\3\4\27\5\5\5\6\7\5\
+        \\22\1\9\9\9\9\9\9\2\
+        \\8\9\10\41\12\13\10\10\2\
+        \\8\23\14\32\33\34\14\14\3\
+        \\23\4\15\15\15\15\24\25\5\
+        \\14\15\35\36\18\19\20\21\5\
+        \\14\28\29\30\18\19\20\21\31\
+        \\22\26\23\23\23\23\23\23\3\
+        \\23\4\40\15\15\15\24\25\5\
+        \\14\28\38\39\18\19\20\21\31\
+        \\8\23\14\37\33\34\14\14\3"
diff --git a/src/Haal/Models/MQTT/VerneMQTwoClientSameId.hs b/src/Haal/Models/MQTT/VerneMQTwoClientSameId.hs
--- a/src/Haal/Models/MQTT/VerneMQTwoClientSameId.hs
+++ b/src/Haal/Models/MQTT/VerneMQTwoClientSameId.hs
@@ -5,8 +5,7 @@
     , verneMQTwoClientSameId
     ) where
 
-import qualified Data.Set as Set
-import Haal.Automaton.MealyAutomaton (MealyAutomaton, mkMealyAutomaton)
+import Haal.Automaton.MealyAutomaton (MealyAutomaton, mkMealyAutomatonTable)
 
 data VerneMQTwoClientSameIdInput
     = In_ConnectC2
@@ -38,162 +37,104 @@
     | Out_C1_ConnectionClosed__Pub_c2_my_topic_i_am_C2_0_notdub
     deriving (Show, Eq, Ord, Enum, Bounded)
 
+{- Transitions (state  input -> next state / output):
+    0     In_ConnectC2          -> 1 / Out_C1_ConnectionClosed__ConnAckPacket_false_0
+          In_ConnectC1WithWill  -> 2 / Out_ConnAckPacket_false_0___c2_ConnectionClosed
+          In_PublishC1          -> 0 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_PublishC2          -> 0 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_SubscribeC1        -> 0 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_UnSubScribeC1      -> 0 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_SubscribeC2        -> 0 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_UnSubScribeC2      -> 0 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_DisconnectC2       -> 0 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_DisconnectTCPC1    -> 0 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_DisconnectC1       -> 0 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+    1     In_ConnectC2          -> 3 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_ConnectC1WithWill  -> 2 / Out_ConnAckPacket_false_0___c2_ConnectionClosed
+          In_PublishC1          -> 1 / Out_C1_ConnectionClosed__Empty
+          In_PublishC2          -> 1 / Out_C1_ConnectionClosed__Empty
+          In_SubscribeC1        -> 1 / Out_C1_ConnectionClosed__Empty
+          In_UnSubScribeC1      -> 1 / Out_C1_ConnectionClosed__Empty
+          In_SubscribeC2        -> 4 / Out_C1_ConnectionClosed__c2_SubAck
+          In_UnSubScribeC2      -> 1 / Out_C1_ConnectionClosed__c2_UnSubAck
+          In_DisconnectC2       -> 3 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_DisconnectTCPC1    -> 1 / Out_C1_ConnectionClosed__Empty
+          In_DisconnectC1       -> 1 / Out_C1_ConnectionClosed__Empty
+    2     In_ConnectC2          -> 1 / Out_C1_ConnectionClosed__ConnAckPacket_true_0
+          In_ConnectC1WithWill  -> 0 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_PublishC1          -> 2 / Out_C1_PubAck__c2_ConnectionClosed
+          In_PublishC2          -> 2 / Out_Empty__c2_ConnectionClosed
+          In_SubscribeC1        -> 5 / Out_C1_SubAck__c2_ConnectionClosed
+          In_UnSubScribeC1      -> 2 / Out_C1_UnSubAck__c2_ConnectionClosed
+          In_SubscribeC2        -> 2 / Out_Empty__c2_ConnectionClosed
+          In_UnSubScribeC2      -> 2 / Out_Empty__c2_ConnectionClosed
+          In_DisconnectC2       -> 2 / Out_Empty__c2_ConnectionClosed
+          In_DisconnectTCPC1    -> 0 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_DisconnectC1       -> 0 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+    3     In_ConnectC2          -> 1 / Out_C1_ConnectionClosed__ConnAckPacket_true_0
+          In_ConnectC1WithWill  -> 2 / Out_ConnAckPacket_false_0___c2_ConnectionClosed
+          In_PublishC1          -> 3 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_PublishC2          -> 3 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_SubscribeC1        -> 3 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_UnSubScribeC1      -> 3 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_SubscribeC2        -> 3 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_UnSubScribeC2      -> 3 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_DisconnectC2       -> 3 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_DisconnectTCPC1    -> 3 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_DisconnectC1       -> 3 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+    4     In_ConnectC2          -> 6 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_ConnectC1WithWill  -> 2 / Out_ConnAckPacket_false_0___c2_ConnectionClosed
+          In_PublishC1          -> 4 / Out_C1_ConnectionClosed__Empty
+          In_PublishC2          -> 4 / Out_C1_ConnectionClosed__Pub_c2_my_topic_i_am_C2_0_notdub
+          In_SubscribeC1        -> 4 / Out_C1_ConnectionClosed__Empty
+          In_UnSubScribeC1      -> 4 / Out_C1_ConnectionClosed__Empty
+          In_SubscribeC2        -> 4 / Out_C1_ConnectionClosed__c2_SubAck
+          In_UnSubScribeC2      -> 1 / Out_C1_ConnectionClosed__c2_UnSubAck
+          In_DisconnectC2       -> 6 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_DisconnectTCPC1    -> 4 / Out_C1_ConnectionClosed__Empty
+          In_DisconnectC1       -> 4 / Out_C1_ConnectionClosed__Empty
+    5     In_ConnectC2          -> 4 / Out_C1_ConnectionClosed__ConnAckPacket_true_0
+          In_ConnectC1WithWill  -> 0 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_PublishC1          -> 5 / Out_Pub_c1_my_topic_i_am_C1_0_notdub___c1_PubAck__c2_ConnectionClosed
+          In_PublishC2          -> 5 / Out_Empty__c2_ConnectionClosed
+          In_SubscribeC1        -> 5 / Out_C1_SubAck__c2_ConnectionClosed
+          In_UnSubScribeC1      -> 2 / Out_C1_UnSubAck__c2_ConnectionClosed
+          In_SubscribeC2        -> 5 / Out_Empty__c2_ConnectionClosed
+          In_UnSubScribeC2      -> 5 / Out_Empty__c2_ConnectionClosed
+          In_DisconnectC2       -> 5 / Out_Empty__c2_ConnectionClosed
+          In_DisconnectTCPC1    -> 0 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_DisconnectC1       -> 0 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+    6     In_ConnectC2          -> 4 / Out_C1_ConnectionClosed__ConnAckPacket_true_0
+          In_ConnectC1WithWill  -> 2 / Out_ConnAckPacket_false_0___c2_ConnectionClosed
+          In_PublishC1          -> 6 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_PublishC2          -> 6 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_SubscribeC1        -> 6 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_UnSubScribeC1      -> 6 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_SubscribeC2        -> 6 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_UnSubScribeC2      -> 6 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_DisconnectC2       -> 6 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_DisconnectTCPC1    -> 6 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_DisconnectC1       -> 6 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+-}
 verneMQTwoClientSameId :: MealyAutomaton Int VerneMQTwoClientSameIdInput VerneMQTwoClientSameIdOutput
-verneMQTwoClientSameId = mkMealyAutomaton delta lambda (Set.fromList [0..6]) 0
+verneMQTwoClientSameId =
+    case mkMealyAutomatonTable 7 0 deltaTable lambdaTable of
+        Right m -> m
+        Left err -> error ("haal-gen: invalid transition table: " ++ err)
   where
-    delta 0 In_ConnectC2 = 1
-    delta 0 In_ConnectC1WithWill = 2
-    delta 0 In_PublishC1 = 0
-    delta 0 In_PublishC2 = 0
-    delta 0 In_SubscribeC1 = 0
-    delta 0 In_UnSubScribeC1 = 0
-    delta 0 In_SubscribeC2 = 0
-    delta 0 In_UnSubScribeC2 = 0
-    delta 0 In_DisconnectC2 = 0
-    delta 0 In_DisconnectTCPC1 = 0
-    delta 0 In_DisconnectC1 = 0
-    delta 1 In_ConnectC2 = 3
-    delta 1 In_ConnectC1WithWill = 2
-    delta 1 In_PublishC1 = 1
-    delta 1 In_PublishC2 = 1
-    delta 1 In_SubscribeC1 = 1
-    delta 1 In_UnSubScribeC1 = 1
-    delta 1 In_SubscribeC2 = 4
-    delta 1 In_UnSubScribeC2 = 1
-    delta 1 In_DisconnectC2 = 3
-    delta 1 In_DisconnectTCPC1 = 1
-    delta 1 In_DisconnectC1 = 1
-    delta 2 In_ConnectC2 = 1
-    delta 2 In_ConnectC1WithWill = 0
-    delta 2 In_PublishC1 = 2
-    delta 2 In_PublishC2 = 2
-    delta 2 In_SubscribeC1 = 5
-    delta 2 In_UnSubScribeC1 = 2
-    delta 2 In_SubscribeC2 = 2
-    delta 2 In_UnSubScribeC2 = 2
-    delta 2 In_DisconnectC2 = 2
-    delta 2 In_DisconnectTCPC1 = 0
-    delta 2 In_DisconnectC1 = 0
-    delta 5 In_ConnectC2 = 4
-    delta 5 In_ConnectC1WithWill = 0
-    delta 5 In_PublishC1 = 5
-    delta 5 In_PublishC2 = 5
-    delta 5 In_SubscribeC1 = 5
-    delta 5 In_UnSubScribeC1 = 2
-    delta 5 In_SubscribeC2 = 5
-    delta 5 In_UnSubScribeC2 = 5
-    delta 5 In_DisconnectC2 = 5
-    delta 5 In_DisconnectTCPC1 = 0
-    delta 5 In_DisconnectC1 = 0
-    delta 3 In_ConnectC2 = 1
-    delta 3 In_ConnectC1WithWill = 2
-    delta 3 In_PublishC1 = 3
-    delta 3 In_PublishC2 = 3
-    delta 3 In_SubscribeC1 = 3
-    delta 3 In_UnSubScribeC1 = 3
-    delta 3 In_SubscribeC2 = 3
-    delta 3 In_UnSubScribeC2 = 3
-    delta 3 In_DisconnectC2 = 3
-    delta 3 In_DisconnectTCPC1 = 3
-    delta 3 In_DisconnectC1 = 3
-    delta 4 In_ConnectC2 = 6
-    delta 4 In_ConnectC1WithWill = 2
-    delta 4 In_PublishC1 = 4
-    delta 4 In_PublishC2 = 4
-    delta 4 In_SubscribeC1 = 4
-    delta 4 In_UnSubScribeC1 = 4
-    delta 4 In_SubscribeC2 = 4
-    delta 4 In_UnSubScribeC2 = 1
-    delta 4 In_DisconnectC2 = 6
-    delta 4 In_DisconnectTCPC1 = 4
-    delta 4 In_DisconnectC1 = 4
-    delta 6 In_ConnectC2 = 4
-    delta 6 In_ConnectC1WithWill = 2
-    delta 6 In_PublishC1 = 6
-    delta 6 In_PublishC2 = 6
-    delta 6 In_SubscribeC1 = 6
-    delta 6 In_UnSubScribeC1 = 6
-    delta 6 In_SubscribeC2 = 6
-    delta 6 In_UnSubScribeC2 = 6
-    delta 6 In_DisconnectC2 = 6
-    delta 6 In_DisconnectTCPC1 = 6
-    delta 6 In_DisconnectC1 = 6
-    delta _ _ = error "haal-gen: undefined transition"
-    lambda 0 In_ConnectC2 = Out_C1_ConnectionClosed__ConnAckPacket_false_0
-    lambda 0 In_ConnectC1WithWill = Out_ConnAckPacket_false_0___c2_ConnectionClosed
-    lambda 0 In_PublishC1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 0 In_PublishC2 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 0 In_SubscribeC1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 0 In_UnSubScribeC1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 0 In_SubscribeC2 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 0 In_UnSubScribeC2 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 0 In_DisconnectC2 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 0 In_DisconnectTCPC1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 0 In_DisconnectC1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 1 In_ConnectC2 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 1 In_ConnectC1WithWill = Out_ConnAckPacket_false_0___c2_ConnectionClosed
-    lambda 1 In_PublishC1 = Out_C1_ConnectionClosed__Empty
-    lambda 1 In_PublishC2 = Out_C1_ConnectionClosed__Empty
-    lambda 1 In_SubscribeC1 = Out_C1_ConnectionClosed__Empty
-    lambda 1 In_UnSubScribeC1 = Out_C1_ConnectionClosed__Empty
-    lambda 1 In_SubscribeC2 = Out_C1_ConnectionClosed__c2_SubAck
-    lambda 1 In_UnSubScribeC2 = Out_C1_ConnectionClosed__c2_UnSubAck
-    lambda 1 In_DisconnectC2 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 1 In_DisconnectTCPC1 = Out_C1_ConnectionClosed__Empty
-    lambda 1 In_DisconnectC1 = Out_C1_ConnectionClosed__Empty
-    lambda 2 In_ConnectC2 = Out_C1_ConnectionClosed__ConnAckPacket_true_0
-    lambda 2 In_ConnectC1WithWill = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 2 In_PublishC1 = Out_C1_PubAck__c2_ConnectionClosed
-    lambda 2 In_PublishC2 = Out_Empty__c2_ConnectionClosed
-    lambda 2 In_SubscribeC1 = Out_C1_SubAck__c2_ConnectionClosed
-    lambda 2 In_UnSubScribeC1 = Out_C1_UnSubAck__c2_ConnectionClosed
-    lambda 2 In_SubscribeC2 = Out_Empty__c2_ConnectionClosed
-    lambda 2 In_UnSubScribeC2 = Out_Empty__c2_ConnectionClosed
-    lambda 2 In_DisconnectC2 = Out_Empty__c2_ConnectionClosed
-    lambda 2 In_DisconnectTCPC1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 2 In_DisconnectC1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 5 In_ConnectC2 = Out_C1_ConnectionClosed__ConnAckPacket_true_0
-    lambda 5 In_ConnectC1WithWill = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 5 In_PublishC1 = Out_Pub_c1_my_topic_i_am_C1_0_notdub___c1_PubAck__c2_ConnectionClosed
-    lambda 5 In_PublishC2 = Out_Empty__c2_ConnectionClosed
-    lambda 5 In_SubscribeC1 = Out_C1_SubAck__c2_ConnectionClosed
-    lambda 5 In_UnSubScribeC1 = Out_C1_UnSubAck__c2_ConnectionClosed
-    lambda 5 In_SubscribeC2 = Out_Empty__c2_ConnectionClosed
-    lambda 5 In_UnSubScribeC2 = Out_Empty__c2_ConnectionClosed
-    lambda 5 In_DisconnectC2 = Out_Empty__c2_ConnectionClosed
-    lambda 5 In_DisconnectTCPC1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 5 In_DisconnectC1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 3 In_ConnectC2 = Out_C1_ConnectionClosed__ConnAckPacket_true_0
-    lambda 3 In_ConnectC1WithWill = Out_ConnAckPacket_false_0___c2_ConnectionClosed
-    lambda 3 In_PublishC1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 3 In_PublishC2 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 3 In_SubscribeC1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 3 In_UnSubScribeC1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 3 In_SubscribeC2 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 3 In_UnSubScribeC2 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 3 In_DisconnectC2 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 3 In_DisconnectTCPC1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 3 In_DisconnectC1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 4 In_ConnectC2 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 4 In_ConnectC1WithWill = Out_ConnAckPacket_false_0___c2_ConnectionClosed
-    lambda 4 In_PublishC1 = Out_C1_ConnectionClosed__Empty
-    lambda 4 In_PublishC2 = Out_C1_ConnectionClosed__Pub_c2_my_topic_i_am_C2_0_notdub
-    lambda 4 In_SubscribeC1 = Out_C1_ConnectionClosed__Empty
-    lambda 4 In_UnSubScribeC1 = Out_C1_ConnectionClosed__Empty
-    lambda 4 In_SubscribeC2 = Out_C1_ConnectionClosed__c2_SubAck
-    lambda 4 In_UnSubScribeC2 = Out_C1_ConnectionClosed__c2_UnSubAck
-    lambda 4 In_DisconnectC2 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 4 In_DisconnectTCPC1 = Out_C1_ConnectionClosed__Empty
-    lambda 4 In_DisconnectC1 = Out_C1_ConnectionClosed__Empty
-    lambda 6 In_ConnectC2 = Out_C1_ConnectionClosed__ConnAckPacket_true_0
-    lambda 6 In_ConnectC1WithWill = Out_ConnAckPacket_false_0___c2_ConnectionClosed
-    lambda 6 In_PublishC1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 6 In_PublishC2 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 6 In_SubscribeC1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 6 In_UnSubScribeC1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 6 In_SubscribeC2 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 6 In_UnSubScribeC2 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 6 In_DisconnectC2 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 6 In_DisconnectTCPC1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 6 In_DisconnectC1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda _ _ = error "haal-gen: undefined transition"
+    deltaTable =
+        "\1\2\0\0\0\0\0\0\0\0\0\
+        \\3\2\1\1\1\1\4\1\3\1\1\
+        \\1\0\2\2\5\2\2\2\2\0\0\
+        \\1\2\3\3\3\3\3\3\3\3\3\
+        \\6\2\4\4\4\4\4\1\6\4\4\
+        \\4\0\5\5\5\2\5\5\5\0\0\
+        \\4\2\6\6\6\6\6\6\6\6\6"
+    lambdaTable =
+        "\0\1\2\2\2\2\2\2\2\2\2\
+        \\2\1\3\3\3\3\4\5\2\3\3\
+        \\6\2\7\8\9\10\8\8\8\2\2\
+        \\6\1\2\2\2\2\2\2\2\2\2\
+        \\2\1\3\12\3\3\4\5\2\3\3\
+        \\6\2\11\8\9\10\8\8\8\2\2\
+        \\6\1\2\2\2\2\2\2\2\2\2"
diff --git a/src/Haal/Models/MQTT/VerneMQTwoClientWillRetain.hs b/src/Haal/Models/MQTT/VerneMQTwoClientWillRetain.hs
--- a/src/Haal/Models/MQTT/VerneMQTwoClientWillRetain.hs
+++ b/src/Haal/Models/MQTT/VerneMQTwoClientWillRetain.hs
@@ -5,8 +5,7 @@
     , verneMQTwoClientWillRetain
     ) where
 
-import qualified Data.Set as Set
-import Haal.Automaton.MealyAutomaton (MealyAutomaton, mkMealyAutomaton)
+import Haal.Automaton.MealyAutomaton (MealyAutomaton, mkMealyAutomatonTable)
 
 data VerneMQTwoClientWillRetainInput
     = In_ConnectC2
@@ -41,314 +40,200 @@
     | Out_Empty__c2_SubAck__Pub_c2_my_topic_bye
     deriving (Show, Eq, Ord, Enum, Bounded)
 
+{- Transitions (state  input -> next state / output):
+    0     In_ConnectC2                -> 1 / Out_C1_ConnectionClosed__c2_ConnAck
+          In_ConnectC1WithWill        -> 2 / Out_C1_ConnAck__c2_ConnectionClosed
+          In_ConnectC1WithWillRetain  -> 3 / Out_C1_ConnAck__c2_ConnectionClosed
+          In_DeleteRetainedC1         -> 0 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_DeleteRetainedC2         -> 0 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_SubscribeC2              -> 0 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_UnSubScribeC2            -> 0 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_DisconnectTCPC1          -> 0 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_DisconnectC1             -> 0 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+    1     In_ConnectC2                -> 0 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_ConnectC1WithWill        -> 4 / Out_C1_ConnAck__Empty
+          In_ConnectC1WithWillRetain  -> 5 / Out_C1_ConnAck__Empty
+          In_DeleteRetainedC1         -> 1 / Out_C1_ConnectionClosed__Empty
+          In_DeleteRetainedC2         -> 1 / Out_C1_ConnectionClosed__c2_PubAck
+          In_SubscribeC2              -> 6 / Out_C1_ConnectionClosed__c2_SubAck
+          In_UnSubScribeC2            -> 1 / Out_C1_ConnectionClosed__c2_UnSubAck
+          In_DisconnectTCPC1          -> 1 / Out_C1_ConnectionClosed__Empty
+          In_DisconnectC1             -> 1 / Out_C1_ConnectionClosed__Empty
+    2     In_ConnectC2                -> 4 / Out_Empty__c2_ConnAck
+          In_ConnectC1WithWill        -> 0 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_ConnectC1WithWillRetain  -> 0 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_DeleteRetainedC1         -> 2 / Out_C1_PubAck__c2_ConnectionClosed
+          In_DeleteRetainedC2         -> 2 / Out_Empty__c2_ConnectionClosed
+          In_SubscribeC2              -> 2 / Out_Empty__c2_ConnectionClosed
+          In_UnSubScribeC2            -> 2 / Out_Empty__c2_ConnectionClosed
+          In_DisconnectTCPC1          -> 0 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_DisconnectC1             -> 0 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+    3     In_ConnectC2                -> 5 / Out_Empty__c2_ConnAck
+          In_ConnectC1WithWill        -> 10 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_ConnectC1WithWillRetain  -> 10 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_DeleteRetainedC1         -> 3 / Out_C1_PubAck__c2_ConnectionClosed
+          In_DeleteRetainedC2         -> 3 / Out_Empty__c2_ConnectionClosed
+          In_SubscribeC2              -> 3 / Out_Empty__c2_ConnectionClosed
+          In_UnSubScribeC2            -> 3 / Out_Empty__c2_ConnectionClosed
+          In_DisconnectTCPC1          -> 10 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_DisconnectC1             -> 0 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+    4     In_ConnectC2                -> 2 / Out_Empty__c2_ConnectionClosed
+          In_ConnectC1WithWill        -> 1 / Out_C1_ConnectionClosed__Empty
+          In_ConnectC1WithWillRetain  -> 1 / Out_C1_ConnectionClosed__Empty
+          In_DeleteRetainedC1         -> 4 / Out_C1_PubAck__Empty
+          In_DeleteRetainedC2         -> 4 / Out_Empty__c2_PubAck
+          In_SubscribeC2              -> 7 / Out_Empty__c2_SubAck
+          In_UnSubScribeC2            -> 4 / Out_Empty__c2_UnSubAck
+          In_DisconnectTCPC1          -> 1 / Out_C1_ConnectionClosed__Empty
+          In_DisconnectC1             -> 1 / Out_C1_ConnectionClosed__Empty
+    5     In_ConnectC2                -> 3 / Out_Empty__c2_ConnectionClosed
+          In_ConnectC1WithWill        -> 8 / Out_C1_ConnectionClosed__Empty
+          In_ConnectC1WithWillRetain  -> 8 / Out_C1_ConnectionClosed__Empty
+          In_DeleteRetainedC1         -> 5 / Out_C1_PubAck__Empty
+          In_DeleteRetainedC2         -> 5 / Out_Empty__c2_PubAck
+          In_SubscribeC2              -> 9 / Out_Empty__c2_SubAck
+          In_UnSubScribeC2            -> 5 / Out_Empty__c2_UnSubAck
+          In_DisconnectTCPC1          -> 8 / Out_C1_ConnectionClosed__Empty
+          In_DisconnectC1             -> 1 / Out_C1_ConnectionClosed__Empty
+    6     In_ConnectC2                -> 0 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_ConnectC1WithWill        -> 7 / Out_C1_ConnAck__Empty
+          In_ConnectC1WithWillRetain  -> 9 / Out_C1_ConnAck__Empty
+          In_DeleteRetainedC1         -> 6 / Out_C1_ConnectionClosed__Empty
+          In_DeleteRetainedC2         -> 6 / Out_C1_ConnectionClosed__c2_PubAck
+          In_SubscribeC2              -> 6 / Out_C1_ConnectionClosed__c2_SubAck
+          In_UnSubScribeC2            -> 1 / Out_C1_ConnectionClosed__c2_UnSubAck
+          In_DisconnectTCPC1          -> 6 / Out_C1_ConnectionClosed__Empty
+          In_DisconnectC1             -> 6 / Out_C1_ConnectionClosed__Empty
+    7     In_ConnectC2                -> 2 / Out_Empty__c2_ConnectionClosed
+          In_ConnectC1WithWill        -> 6 / Out_C1_ConnectionClosed__Pub_c2_my_topic_bye
+          In_ConnectC1WithWillRetain  -> 6 / Out_C1_ConnectionClosed__Pub_c2_my_topic_bye
+          In_DeleteRetainedC1         -> 7 / Out_C1_PubAck__Empty
+          In_DeleteRetainedC2         -> 7 / Out_Empty__c2_PubAck
+          In_SubscribeC2              -> 7 / Out_Empty__c2_SubAck
+          In_UnSubScribeC2            -> 4 / Out_Empty__c2_UnSubAck
+          In_DisconnectTCPC1          -> 6 / Out_C1_ConnectionClosed__Pub_c2_my_topic_bye
+          In_DisconnectC1             -> 6 / Out_C1_ConnectionClosed__Empty
+    8     In_ConnectC2                -> 10 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_ConnectC1WithWill        -> 11 / Out_C1_ConnAck__Empty
+          In_ConnectC1WithWillRetain  -> 12 / Out_C1_ConnAck__Empty
+          In_DeleteRetainedC1         -> 8 / Out_C1_ConnectionClosed__Empty
+          In_DeleteRetainedC2         -> 1 / Out_C1_ConnectionClosed__c2_PubAck
+          In_SubscribeC2              -> 13 / Out_C1_ConnectionClosed__c2_SubAck__Pub_c2_my_topic_bye
+          In_UnSubScribeC2            -> 8 / Out_C1_ConnectionClosed__c2_UnSubAck
+          In_DisconnectTCPC1          -> 8 / Out_C1_ConnectionClosed__Empty
+          In_DisconnectC1             -> 8 / Out_C1_ConnectionClosed__Empty
+    9     In_ConnectC2                -> 3 / Out_Empty__c2_ConnectionClosed
+          In_ConnectC1WithWill        -> 13 / Out_C1_ConnectionClosed__Pub_c2_my_topic_bye
+          In_ConnectC1WithWillRetain  -> 13 / Out_C1_ConnectionClosed__Pub_c2_my_topic_bye
+          In_DeleteRetainedC1         -> 9 / Out_C1_PubAck__Empty
+          In_DeleteRetainedC2         -> 9 / Out_Empty__c2_PubAck
+          In_SubscribeC2              -> 9 / Out_Empty__c2_SubAck
+          In_UnSubScribeC2            -> 5 / Out_Empty__c2_UnSubAck
+          In_DisconnectTCPC1          -> 13 / Out_C1_ConnectionClosed__Pub_c2_my_topic_bye
+          In_DisconnectC1             -> 6 / Out_C1_ConnectionClosed__Empty
+    10    In_ConnectC2                -> 8 / Out_C1_ConnectionClosed__c2_ConnAck
+          In_ConnectC1WithWill        -> 14 / Out_C1_ConnAck__c2_ConnectionClosed
+          In_ConnectC1WithWillRetain  -> 16 / Out_C1_ConnAck__c2_ConnectionClosed
+          In_DeleteRetainedC1         -> 10 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_DeleteRetainedC2         -> 10 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_SubscribeC2              -> 10 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_UnSubScribeC2            -> 10 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_DisconnectTCPC1          -> 10 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_DisconnectC1             -> 10 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+    11    In_ConnectC2                -> 14 / Out_Empty__c2_ConnectionClosed
+          In_ConnectC1WithWill        -> 8 / Out_C1_ConnectionClosed__Empty
+          In_ConnectC1WithWillRetain  -> 8 / Out_C1_ConnectionClosed__Empty
+          In_DeleteRetainedC1         -> 4 / Out_C1_PubAck__Empty
+          In_DeleteRetainedC2         -> 4 / Out_Empty__c2_PubAck
+          In_SubscribeC2              -> 15 / Out_Empty__c2_SubAck__Pub_c2_my_topic_bye
+          In_UnSubScribeC2            -> 11 / Out_Empty__c2_UnSubAck
+          In_DisconnectTCPC1          -> 8 / Out_C1_ConnectionClosed__Empty
+          In_DisconnectC1             -> 8 / Out_C1_ConnectionClosed__Empty
+    12    In_ConnectC2                -> 16 / Out_Empty__c2_ConnectionClosed
+          In_ConnectC1WithWill        -> 8 / Out_C1_ConnectionClosed__Empty
+          In_ConnectC1WithWillRetain  -> 8 / Out_C1_ConnectionClosed__Empty
+          In_DeleteRetainedC1         -> 5 / Out_C1_PubAck__Empty
+          In_DeleteRetainedC2         -> 5 / Out_Empty__c2_PubAck
+          In_SubscribeC2              -> 15 / Out_Empty__c2_SubAck__Pub_c2_my_topic_bye
+          In_UnSubScribeC2            -> 12 / Out_Empty__c2_UnSubAck
+          In_DisconnectTCPC1          -> 8 / Out_C1_ConnectionClosed__Empty
+          In_DisconnectC1             -> 8 / Out_C1_ConnectionClosed__Empty
+    13    In_ConnectC2                -> 10 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_ConnectC1WithWill        -> 15 / Out_C1_ConnAck__Empty
+          In_ConnectC1WithWillRetain  -> 15 / Out_C1_ConnAck__Empty
+          In_DeleteRetainedC1         -> 13 / Out_C1_ConnectionClosed__Empty
+          In_DeleteRetainedC2         -> 6 / Out_C1_ConnectionClosed__c2_PubAck
+          In_SubscribeC2              -> 13 / Out_C1_ConnectionClosed__c2_SubAck__Pub_c2_my_topic_bye
+          In_UnSubScribeC2            -> 8 / Out_C1_ConnectionClosed__c2_UnSubAck
+          In_DisconnectTCPC1          -> 13 / Out_C1_ConnectionClosed__Empty
+          In_DisconnectC1             -> 13 / Out_C1_ConnectionClosed__Empty
+    14    In_ConnectC2                -> 11 / Out_Empty__c2_ConnAck
+          In_ConnectC1WithWill        -> 10 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_ConnectC1WithWillRetain  -> 10 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_DeleteRetainedC1         -> 2 / Out_C1_PubAck__c2_ConnectionClosed
+          In_DeleteRetainedC2         -> 14 / Out_Empty__c2_ConnectionClosed
+          In_SubscribeC2              -> 14 / Out_Empty__c2_ConnectionClosed
+          In_UnSubScribeC2            -> 14 / Out_Empty__c2_ConnectionClosed
+          In_DisconnectTCPC1          -> 10 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_DisconnectC1             -> 10 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+    15    In_ConnectC2                -> 14 / Out_Empty__c2_ConnectionClosed
+          In_ConnectC1WithWill        -> 13 / Out_C1_ConnectionClosed__Pub_c2_my_topic_bye
+          In_ConnectC1WithWillRetain  -> 13 / Out_C1_ConnectionClosed__Pub_c2_my_topic_bye
+          In_DeleteRetainedC1         -> 7 / Out_C1_PubAck__Empty
+          In_DeleteRetainedC2         -> 7 / Out_Empty__c2_PubAck
+          In_SubscribeC2              -> 15 / Out_Empty__c2_SubAck__Pub_c2_my_topic_bye
+          In_UnSubScribeC2            -> 11 / Out_Empty__c2_UnSubAck
+          In_DisconnectTCPC1          -> 13 / Out_C1_ConnectionClosed__Pub_c2_my_topic_bye
+          In_DisconnectC1             -> 13 / Out_C1_ConnectionClosed__Empty
+    16    In_ConnectC2                -> 12 / Out_Empty__c2_ConnAck
+          In_ConnectC1WithWill        -> 10 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_ConnectC1WithWillRetain  -> 10 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_DeleteRetainedC1         -> 3 / Out_C1_PubAck__c2_ConnectionClosed
+          In_DeleteRetainedC2         -> 16 / Out_Empty__c2_ConnectionClosed
+          In_SubscribeC2              -> 16 / Out_Empty__c2_ConnectionClosed
+          In_UnSubScribeC2            -> 16 / Out_Empty__c2_ConnectionClosed
+          In_DisconnectTCPC1          -> 10 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+          In_DisconnectC1             -> 10 / Out_C1_ConnectionClosed__c2_ConnectionClosed
+-}
 verneMQTwoClientWillRetain :: MealyAutomaton Int VerneMQTwoClientWillRetainInput VerneMQTwoClientWillRetainOutput
-verneMQTwoClientWillRetain = mkMealyAutomaton delta lambda (Set.fromList [0..16]) 0
+verneMQTwoClientWillRetain =
+    case mkMealyAutomatonTable 17 0 deltaTable lambdaTable of
+        Right m -> m
+        Left err -> error ("haal-gen: invalid transition table: " ++ err)
   where
-    delta 0 In_ConnectC2 = 1
-    delta 0 In_ConnectC1WithWill = 2
-    delta 0 In_ConnectC1WithWillRetain = 3
-    delta 0 In_DeleteRetainedC1 = 0
-    delta 0 In_DeleteRetainedC2 = 0
-    delta 0 In_SubscribeC2 = 0
-    delta 0 In_UnSubScribeC2 = 0
-    delta 0 In_DisconnectTCPC1 = 0
-    delta 0 In_DisconnectC1 = 0
-    delta 2 In_ConnectC2 = 4
-    delta 2 In_ConnectC1WithWill = 0
-    delta 2 In_ConnectC1WithWillRetain = 0
-    delta 2 In_DeleteRetainedC1 = 2
-    delta 2 In_DeleteRetainedC2 = 2
-    delta 2 In_SubscribeC2 = 2
-    delta 2 In_UnSubScribeC2 = 2
-    delta 2 In_DisconnectTCPC1 = 0
-    delta 2 In_DisconnectC1 = 0
-    delta 1 In_ConnectC2 = 0
-    delta 1 In_ConnectC1WithWill = 4
-    delta 1 In_ConnectC1WithWillRetain = 5
-    delta 1 In_DeleteRetainedC1 = 1
-    delta 1 In_DeleteRetainedC2 = 1
-    delta 1 In_SubscribeC2 = 6
-    delta 1 In_UnSubScribeC2 = 1
-    delta 1 In_DisconnectTCPC1 = 1
-    delta 1 In_DisconnectC1 = 1
-    delta 4 In_ConnectC2 = 2
-    delta 4 In_ConnectC1WithWill = 1
-    delta 4 In_ConnectC1WithWillRetain = 1
-    delta 4 In_DeleteRetainedC1 = 4
-    delta 4 In_DeleteRetainedC2 = 4
-    delta 4 In_SubscribeC2 = 7
-    delta 4 In_UnSubScribeC2 = 4
-    delta 4 In_DisconnectTCPC1 = 1
-    delta 4 In_DisconnectC1 = 1
-    delta 5 In_ConnectC2 = 3
-    delta 5 In_ConnectC1WithWill = 8
-    delta 5 In_ConnectC1WithWillRetain = 8
-    delta 5 In_DeleteRetainedC1 = 5
-    delta 5 In_DeleteRetainedC2 = 5
-    delta 5 In_SubscribeC2 = 9
-    delta 5 In_UnSubScribeC2 = 5
-    delta 5 In_DisconnectTCPC1 = 8
-    delta 5 In_DisconnectC1 = 1
-    delta 8 In_ConnectC2 = 10
-    delta 8 In_ConnectC1WithWill = 11
-    delta 8 In_ConnectC1WithWillRetain = 12
-    delta 8 In_DeleteRetainedC1 = 8
-    delta 8 In_DeleteRetainedC2 = 1
-    delta 8 In_SubscribeC2 = 13
-    delta 8 In_UnSubScribeC2 = 8
-    delta 8 In_DisconnectTCPC1 = 8
-    delta 8 In_DisconnectC1 = 8
-    delta 9 In_ConnectC2 = 3
-    delta 9 In_ConnectC1WithWill = 13
-    delta 9 In_ConnectC1WithWillRetain = 13
-    delta 9 In_DeleteRetainedC1 = 9
-    delta 9 In_DeleteRetainedC2 = 9
-    delta 9 In_SubscribeC2 = 9
-    delta 9 In_UnSubScribeC2 = 5
-    delta 9 In_DisconnectTCPC1 = 13
-    delta 9 In_DisconnectC1 = 6
-    delta 7 In_ConnectC2 = 2
-    delta 7 In_ConnectC1WithWill = 6
-    delta 7 In_ConnectC1WithWillRetain = 6
-    delta 7 In_DeleteRetainedC1 = 7
-    delta 7 In_DeleteRetainedC2 = 7
-    delta 7 In_SubscribeC2 = 7
-    delta 7 In_UnSubScribeC2 = 4
-    delta 7 In_DisconnectTCPC1 = 6
-    delta 7 In_DisconnectC1 = 6
-    delta 11 In_ConnectC2 = 14
-    delta 11 In_ConnectC1WithWill = 8
-    delta 11 In_ConnectC1WithWillRetain = 8
-    delta 11 In_DeleteRetainedC1 = 4
-    delta 11 In_DeleteRetainedC2 = 4
-    delta 11 In_SubscribeC2 = 15
-    delta 11 In_UnSubScribeC2 = 11
-    delta 11 In_DisconnectTCPC1 = 8
-    delta 11 In_DisconnectC1 = 8
-    delta 6 In_ConnectC2 = 0
-    delta 6 In_ConnectC1WithWill = 7
-    delta 6 In_ConnectC1WithWillRetain = 9
-    delta 6 In_DeleteRetainedC1 = 6
-    delta 6 In_DeleteRetainedC2 = 6
-    delta 6 In_SubscribeC2 = 6
-    delta 6 In_UnSubScribeC2 = 1
-    delta 6 In_DisconnectTCPC1 = 6
-    delta 6 In_DisconnectC1 = 6
-    delta 13 In_ConnectC2 = 10
-    delta 13 In_ConnectC1WithWill = 15
-    delta 13 In_ConnectC1WithWillRetain = 15
-    delta 13 In_DeleteRetainedC1 = 13
-    delta 13 In_DeleteRetainedC2 = 6
-    delta 13 In_SubscribeC2 = 13
-    delta 13 In_UnSubScribeC2 = 8
-    delta 13 In_DisconnectTCPC1 = 13
-    delta 13 In_DisconnectC1 = 13
-    delta 12 In_ConnectC2 = 16
-    delta 12 In_ConnectC1WithWill = 8
-    delta 12 In_ConnectC1WithWillRetain = 8
-    delta 12 In_DeleteRetainedC1 = 5
-    delta 12 In_DeleteRetainedC2 = 5
-    delta 12 In_SubscribeC2 = 15
-    delta 12 In_UnSubScribeC2 = 12
-    delta 12 In_DisconnectTCPC1 = 8
-    delta 12 In_DisconnectC1 = 8
-    delta 3 In_ConnectC2 = 5
-    delta 3 In_ConnectC1WithWill = 10
-    delta 3 In_ConnectC1WithWillRetain = 10
-    delta 3 In_DeleteRetainedC1 = 3
-    delta 3 In_DeleteRetainedC2 = 3
-    delta 3 In_SubscribeC2 = 3
-    delta 3 In_UnSubScribeC2 = 3
-    delta 3 In_DisconnectTCPC1 = 10
-    delta 3 In_DisconnectC1 = 0
-    delta 10 In_ConnectC2 = 8
-    delta 10 In_ConnectC1WithWill = 14
-    delta 10 In_ConnectC1WithWillRetain = 16
-    delta 10 In_DeleteRetainedC1 = 10
-    delta 10 In_DeleteRetainedC2 = 10
-    delta 10 In_SubscribeC2 = 10
-    delta 10 In_UnSubScribeC2 = 10
-    delta 10 In_DisconnectTCPC1 = 10
-    delta 10 In_DisconnectC1 = 10
-    delta 15 In_ConnectC2 = 14
-    delta 15 In_ConnectC1WithWill = 13
-    delta 15 In_ConnectC1WithWillRetain = 13
-    delta 15 In_DeleteRetainedC1 = 7
-    delta 15 In_DeleteRetainedC2 = 7
-    delta 15 In_SubscribeC2 = 15
-    delta 15 In_UnSubScribeC2 = 11
-    delta 15 In_DisconnectTCPC1 = 13
-    delta 15 In_DisconnectC1 = 13
-    delta 14 In_ConnectC2 = 11
-    delta 14 In_ConnectC1WithWill = 10
-    delta 14 In_ConnectC1WithWillRetain = 10
-    delta 14 In_DeleteRetainedC1 = 2
-    delta 14 In_DeleteRetainedC2 = 14
-    delta 14 In_SubscribeC2 = 14
-    delta 14 In_UnSubScribeC2 = 14
-    delta 14 In_DisconnectTCPC1 = 10
-    delta 14 In_DisconnectC1 = 10
-    delta 16 In_ConnectC2 = 12
-    delta 16 In_ConnectC1WithWill = 10
-    delta 16 In_ConnectC1WithWillRetain = 10
-    delta 16 In_DeleteRetainedC1 = 3
-    delta 16 In_DeleteRetainedC2 = 16
-    delta 16 In_SubscribeC2 = 16
-    delta 16 In_UnSubScribeC2 = 16
-    delta 16 In_DisconnectTCPC1 = 10
-    delta 16 In_DisconnectC1 = 10
-    delta _ _ = error "haal-gen: undefined transition"
-    lambda 0 In_ConnectC2 = Out_C1_ConnectionClosed__c2_ConnAck
-    lambda 0 In_ConnectC1WithWill = Out_C1_ConnAck__c2_ConnectionClosed
-    lambda 0 In_ConnectC1WithWillRetain = Out_C1_ConnAck__c2_ConnectionClosed
-    lambda 0 In_DeleteRetainedC1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 0 In_DeleteRetainedC2 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 0 In_SubscribeC2 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 0 In_UnSubScribeC2 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 0 In_DisconnectTCPC1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 0 In_DisconnectC1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 2 In_ConnectC2 = Out_Empty__c2_ConnAck
-    lambda 2 In_ConnectC1WithWill = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 2 In_ConnectC1WithWillRetain = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 2 In_DeleteRetainedC1 = Out_C1_PubAck__c2_ConnectionClosed
-    lambda 2 In_DeleteRetainedC2 = Out_Empty__c2_ConnectionClosed
-    lambda 2 In_SubscribeC2 = Out_Empty__c2_ConnectionClosed
-    lambda 2 In_UnSubScribeC2 = Out_Empty__c2_ConnectionClosed
-    lambda 2 In_DisconnectTCPC1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 2 In_DisconnectC1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 1 In_ConnectC2 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 1 In_ConnectC1WithWill = Out_C1_ConnAck__Empty
-    lambda 1 In_ConnectC1WithWillRetain = Out_C1_ConnAck__Empty
-    lambda 1 In_DeleteRetainedC1 = Out_C1_ConnectionClosed__Empty
-    lambda 1 In_DeleteRetainedC2 = Out_C1_ConnectionClosed__c2_PubAck
-    lambda 1 In_SubscribeC2 = Out_C1_ConnectionClosed__c2_SubAck
-    lambda 1 In_UnSubScribeC2 = Out_C1_ConnectionClosed__c2_UnSubAck
-    lambda 1 In_DisconnectTCPC1 = Out_C1_ConnectionClosed__Empty
-    lambda 1 In_DisconnectC1 = Out_C1_ConnectionClosed__Empty
-    lambda 4 In_ConnectC2 = Out_Empty__c2_ConnectionClosed
-    lambda 4 In_ConnectC1WithWill = Out_C1_ConnectionClosed__Empty
-    lambda 4 In_ConnectC1WithWillRetain = Out_C1_ConnectionClosed__Empty
-    lambda 4 In_DeleteRetainedC1 = Out_C1_PubAck__Empty
-    lambda 4 In_DeleteRetainedC2 = Out_Empty__c2_PubAck
-    lambda 4 In_SubscribeC2 = Out_Empty__c2_SubAck
-    lambda 4 In_UnSubScribeC2 = Out_Empty__c2_UnSubAck
-    lambda 4 In_DisconnectTCPC1 = Out_C1_ConnectionClosed__Empty
-    lambda 4 In_DisconnectC1 = Out_C1_ConnectionClosed__Empty
-    lambda 5 In_ConnectC2 = Out_Empty__c2_ConnectionClosed
-    lambda 5 In_ConnectC1WithWill = Out_C1_ConnectionClosed__Empty
-    lambda 5 In_ConnectC1WithWillRetain = Out_C1_ConnectionClosed__Empty
-    lambda 5 In_DeleteRetainedC1 = Out_C1_PubAck__Empty
-    lambda 5 In_DeleteRetainedC2 = Out_Empty__c2_PubAck
-    lambda 5 In_SubscribeC2 = Out_Empty__c2_SubAck
-    lambda 5 In_UnSubScribeC2 = Out_Empty__c2_UnSubAck
-    lambda 5 In_DisconnectTCPC1 = Out_C1_ConnectionClosed__Empty
-    lambda 5 In_DisconnectC1 = Out_C1_ConnectionClosed__Empty
-    lambda 8 In_ConnectC2 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 8 In_ConnectC1WithWill = Out_C1_ConnAck__Empty
-    lambda 8 In_ConnectC1WithWillRetain = Out_C1_ConnAck__Empty
-    lambda 8 In_DeleteRetainedC1 = Out_C1_ConnectionClosed__Empty
-    lambda 8 In_DeleteRetainedC2 = Out_C1_ConnectionClosed__c2_PubAck
-    lambda 8 In_SubscribeC2 = Out_C1_ConnectionClosed__c2_SubAck__Pub_c2_my_topic_bye
-    lambda 8 In_UnSubScribeC2 = Out_C1_ConnectionClosed__c2_UnSubAck
-    lambda 8 In_DisconnectTCPC1 = Out_C1_ConnectionClosed__Empty
-    lambda 8 In_DisconnectC1 = Out_C1_ConnectionClosed__Empty
-    lambda 9 In_ConnectC2 = Out_Empty__c2_ConnectionClosed
-    lambda 9 In_ConnectC1WithWill = Out_C1_ConnectionClosed__Pub_c2_my_topic_bye
-    lambda 9 In_ConnectC1WithWillRetain = Out_C1_ConnectionClosed__Pub_c2_my_topic_bye
-    lambda 9 In_DeleteRetainedC1 = Out_C1_PubAck__Empty
-    lambda 9 In_DeleteRetainedC2 = Out_Empty__c2_PubAck
-    lambda 9 In_SubscribeC2 = Out_Empty__c2_SubAck
-    lambda 9 In_UnSubScribeC2 = Out_Empty__c2_UnSubAck
-    lambda 9 In_DisconnectTCPC1 = Out_C1_ConnectionClosed__Pub_c2_my_topic_bye
-    lambda 9 In_DisconnectC1 = Out_C1_ConnectionClosed__Empty
-    lambda 7 In_ConnectC2 = Out_Empty__c2_ConnectionClosed
-    lambda 7 In_ConnectC1WithWill = Out_C1_ConnectionClosed__Pub_c2_my_topic_bye
-    lambda 7 In_ConnectC1WithWillRetain = Out_C1_ConnectionClosed__Pub_c2_my_topic_bye
-    lambda 7 In_DeleteRetainedC1 = Out_C1_PubAck__Empty
-    lambda 7 In_DeleteRetainedC2 = Out_Empty__c2_PubAck
-    lambda 7 In_SubscribeC2 = Out_Empty__c2_SubAck
-    lambda 7 In_UnSubScribeC2 = Out_Empty__c2_UnSubAck
-    lambda 7 In_DisconnectTCPC1 = Out_C1_ConnectionClosed__Pub_c2_my_topic_bye
-    lambda 7 In_DisconnectC1 = Out_C1_ConnectionClosed__Empty
-    lambda 11 In_ConnectC2 = Out_Empty__c2_ConnectionClosed
-    lambda 11 In_ConnectC1WithWill = Out_C1_ConnectionClosed__Empty
-    lambda 11 In_ConnectC1WithWillRetain = Out_C1_ConnectionClosed__Empty
-    lambda 11 In_DeleteRetainedC1 = Out_C1_PubAck__Empty
-    lambda 11 In_DeleteRetainedC2 = Out_Empty__c2_PubAck
-    lambda 11 In_SubscribeC2 = Out_Empty__c2_SubAck__Pub_c2_my_topic_bye
-    lambda 11 In_UnSubScribeC2 = Out_Empty__c2_UnSubAck
-    lambda 11 In_DisconnectTCPC1 = Out_C1_ConnectionClosed__Empty
-    lambda 11 In_DisconnectC1 = Out_C1_ConnectionClosed__Empty
-    lambda 6 In_ConnectC2 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 6 In_ConnectC1WithWill = Out_C1_ConnAck__Empty
-    lambda 6 In_ConnectC1WithWillRetain = Out_C1_ConnAck__Empty
-    lambda 6 In_DeleteRetainedC1 = Out_C1_ConnectionClosed__Empty
-    lambda 6 In_DeleteRetainedC2 = Out_C1_ConnectionClosed__c2_PubAck
-    lambda 6 In_SubscribeC2 = Out_C1_ConnectionClosed__c2_SubAck
-    lambda 6 In_UnSubScribeC2 = Out_C1_ConnectionClosed__c2_UnSubAck
-    lambda 6 In_DisconnectTCPC1 = Out_C1_ConnectionClosed__Empty
-    lambda 6 In_DisconnectC1 = Out_C1_ConnectionClosed__Empty
-    lambda 13 In_ConnectC2 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 13 In_ConnectC1WithWill = Out_C1_ConnAck__Empty
-    lambda 13 In_ConnectC1WithWillRetain = Out_C1_ConnAck__Empty
-    lambda 13 In_DeleteRetainedC1 = Out_C1_ConnectionClosed__Empty
-    lambda 13 In_DeleteRetainedC2 = Out_C1_ConnectionClosed__c2_PubAck
-    lambda 13 In_SubscribeC2 = Out_C1_ConnectionClosed__c2_SubAck__Pub_c2_my_topic_bye
-    lambda 13 In_UnSubScribeC2 = Out_C1_ConnectionClosed__c2_UnSubAck
-    lambda 13 In_DisconnectTCPC1 = Out_C1_ConnectionClosed__Empty
-    lambda 13 In_DisconnectC1 = Out_C1_ConnectionClosed__Empty
-    lambda 12 In_ConnectC2 = Out_Empty__c2_ConnectionClosed
-    lambda 12 In_ConnectC1WithWill = Out_C1_ConnectionClosed__Empty
-    lambda 12 In_ConnectC1WithWillRetain = Out_C1_ConnectionClosed__Empty
-    lambda 12 In_DeleteRetainedC1 = Out_C1_PubAck__Empty
-    lambda 12 In_DeleteRetainedC2 = Out_Empty__c2_PubAck
-    lambda 12 In_SubscribeC2 = Out_Empty__c2_SubAck__Pub_c2_my_topic_bye
-    lambda 12 In_UnSubScribeC2 = Out_Empty__c2_UnSubAck
-    lambda 12 In_DisconnectTCPC1 = Out_C1_ConnectionClosed__Empty
-    lambda 12 In_DisconnectC1 = Out_C1_ConnectionClosed__Empty
-    lambda 3 In_ConnectC2 = Out_Empty__c2_ConnAck
-    lambda 3 In_ConnectC1WithWill = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 3 In_ConnectC1WithWillRetain = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 3 In_DeleteRetainedC1 = Out_C1_PubAck__c2_ConnectionClosed
-    lambda 3 In_DeleteRetainedC2 = Out_Empty__c2_ConnectionClosed
-    lambda 3 In_SubscribeC2 = Out_Empty__c2_ConnectionClosed
-    lambda 3 In_UnSubScribeC2 = Out_Empty__c2_ConnectionClosed
-    lambda 3 In_DisconnectTCPC1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 3 In_DisconnectC1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 10 In_ConnectC2 = Out_C1_ConnectionClosed__c2_ConnAck
-    lambda 10 In_ConnectC1WithWill = Out_C1_ConnAck__c2_ConnectionClosed
-    lambda 10 In_ConnectC1WithWillRetain = Out_C1_ConnAck__c2_ConnectionClosed
-    lambda 10 In_DeleteRetainedC1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 10 In_DeleteRetainedC2 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 10 In_SubscribeC2 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 10 In_UnSubScribeC2 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 10 In_DisconnectTCPC1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 10 In_DisconnectC1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 15 In_ConnectC2 = Out_Empty__c2_ConnectionClosed
-    lambda 15 In_ConnectC1WithWill = Out_C1_ConnectionClosed__Pub_c2_my_topic_bye
-    lambda 15 In_ConnectC1WithWillRetain = Out_C1_ConnectionClosed__Pub_c2_my_topic_bye
-    lambda 15 In_DeleteRetainedC1 = Out_C1_PubAck__Empty
-    lambda 15 In_DeleteRetainedC2 = Out_Empty__c2_PubAck
-    lambda 15 In_SubscribeC2 = Out_Empty__c2_SubAck__Pub_c2_my_topic_bye
-    lambda 15 In_UnSubScribeC2 = Out_Empty__c2_UnSubAck
-    lambda 15 In_DisconnectTCPC1 = Out_C1_ConnectionClosed__Pub_c2_my_topic_bye
-    lambda 15 In_DisconnectC1 = Out_C1_ConnectionClosed__Empty
-    lambda 14 In_ConnectC2 = Out_Empty__c2_ConnAck
-    lambda 14 In_ConnectC1WithWill = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 14 In_ConnectC1WithWillRetain = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 14 In_DeleteRetainedC1 = Out_C1_PubAck__c2_ConnectionClosed
-    lambda 14 In_DeleteRetainedC2 = Out_Empty__c2_ConnectionClosed
-    lambda 14 In_SubscribeC2 = Out_Empty__c2_ConnectionClosed
-    lambda 14 In_UnSubScribeC2 = Out_Empty__c2_ConnectionClosed
-    lambda 14 In_DisconnectTCPC1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 14 In_DisconnectC1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 16 In_ConnectC2 = Out_Empty__c2_ConnAck
-    lambda 16 In_ConnectC1WithWill = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 16 In_ConnectC1WithWillRetain = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 16 In_DeleteRetainedC1 = Out_C1_PubAck__c2_ConnectionClosed
-    lambda 16 In_DeleteRetainedC2 = Out_Empty__c2_ConnectionClosed
-    lambda 16 In_SubscribeC2 = Out_Empty__c2_ConnectionClosed
-    lambda 16 In_UnSubScribeC2 = Out_Empty__c2_ConnectionClosed
-    lambda 16 In_DisconnectTCPC1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda 16 In_DisconnectC1 = Out_C1_ConnectionClosed__c2_ConnectionClosed
-    lambda _ _ = error "haal-gen: undefined transition"
+    deltaTable =
+        "\1\2\3\0\0\0\0\0\0\
+        \\0\4\5\1\1\6\1\1\1\
+        \\4\0\0\2\2\2\2\0\0\
+        \\5\10\10\3\3\3\3\10\0\
+        \\2\1\1\4\4\7\4\1\1\
+        \\3\8\8\5\5\9\5\8\1\
+        \\0\7\9\6\6\6\1\6\6\
+        \\2\6\6\7\7\7\4\6\6\
+        \\10\11\12\8\1\13\8\8\8\
+        \\3\13\13\9\9\9\5\13\6\
+        \\8\14\16\10\10\10\10\10\10\
+        \\14\8\8\4\4\15\11\8\8\
+        \\16\8\8\5\5\15\12\8\8\
+        \\10\15\15\13\6\13\8\13\13\
+        \\11\10\10\2\14\14\14\10\10\
+        \\14\13\13\7\7\15\11\13\13\
+        \\12\10\10\3\16\16\16\10\10"
+    lambdaTable =
+        "\0\1\1\2\2\2\2\2\2\
+        \\2\6\6\7\8\9\10\7\7\
+        \\3\2\2\4\5\5\5\2\2\
+        \\3\2\2\4\5\5\5\2\2\
+        \\5\7\7\11\12\13\14\7\7\
+        \\5\7\7\11\12\13\14\7\7\
+        \\2\6\6\7\8\9\10\7\7\
+        \\5\16\16\11\12\13\14\16\7\
+        \\2\6\6\7\8\15\10\7\7\
+        \\5\16\16\11\12\13\14\16\7\
+        \\0\1\1\2\2\2\2\2\2\
+        \\5\7\7\11\12\17\14\7\7\
+        \\5\7\7\11\12\17\14\7\7\
+        \\2\6\6\7\8\15\10\7\7\
+        \\3\2\2\4\5\5\5\2\2\
+        \\5\16\16\11\12\17\14\16\7\
+        \\3\2\2\4\5\5\5\2\2"
diff --git a/src/Haal/Models/TCP/TCPLinuxClient.hs b/src/Haal/Models/TCP/TCPLinuxClient.hs
--- a/src/Haal/Models/TCP/TCPLinuxClient.hs
+++ b/src/Haal/Models/TCP/TCPLinuxClient.hs
@@ -5,8 +5,7 @@
     , tCPLinuxClient
     ) where
 
-import qualified Data.Set as Set
-import Haal.Automaton.MealyAutomaton (MealyAutomaton, mkMealyAutomaton)
+import Haal.Automaton.MealyAutomaton (MealyAutomaton, mkMealyAutomatonTable)
 
 data TCPLinuxClientInput
     = In_ACK_RST_V_V_0
@@ -35,308 +34,193 @@
     | Out_ACK_RST_NEXT_CURRENT_0
     deriving (Show, Eq, Ord, Enum, Bounded)
 
+{- Transitions (state  input -> next state / output):
+    0     In_ACK_RST_V_V_0  -> 0 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1  -> 0 / Out_RST_ZERO_ZERO_0
+          In_SYN_ACK_V_V_0  -> 0 / Out_RST_ZERO_ZERO_0
+          In_RST_V_V_0      -> 0 / Out_TIMEOUT
+          In_ACK_V_V_0      -> 0 / Out_RST_ZERO_ZERO_0
+          In_FIN_ACK_V_V_0  -> 0 / Out_RST_ZERO_ZERO_0
+          In_SYN_V_V_0      -> 0 / Out_ACK_RST_ZERO_NEXT_0
+          In_RCV            -> 0 / Out_TIMEOUT
+          In_CLOSE          -> 1 / Out_TIMEOUT
+          In_CONNECT        -> 2 / Out_SYN_FRESH_ZERO_0
+    1     In_ACK_RST_V_V_0  -> 1 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1  -> 1 / Out_RST_ZERO_ZERO_0
+          In_SYN_ACK_V_V_0  -> 1 / Out_RST_ZERO_ZERO_0
+          In_RST_V_V_0      -> 1 / Out_TIMEOUT
+          In_ACK_V_V_0      -> 1 / Out_RST_ZERO_ZERO_0
+          In_FIN_ACK_V_V_0  -> 1 / Out_RST_ZERO_ZERO_0
+          In_SYN_V_V_0      -> 1 / Out_ACK_RST_ZERO_NEXT_0
+          In_RCV            -> 1 / Out_TIMEOUT
+          In_CLOSE          -> 1 / Out_TIMEOUT
+          In_CONNECT        -> 1 / Out_TIMEOUT
+    2     In_ACK_RST_V_V_0  -> 1 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1  -> 2 / Out_TIMEOUT
+          In_SYN_ACK_V_V_0  -> 4 / Out_ACK_NEXT_NEXT_0
+          In_RST_V_V_0      -> 5 / Out_TIMEOUT
+          In_ACK_V_V_0      -> 2 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0  -> 2 / Out_TIMEOUT
+          In_SYN_V_V_0      -> 6 / Out_ACK_SYN_CURRENT_NEXT_0
+          In_RCV            -> 2 / Out_TIMEOUT
+          In_CLOSE          -> 3 / Out_TIMEOUT
+          In_CONNECT        -> 2 / Out_TIMEOUT
+    3     In_ACK_RST_V_V_0  -> 1 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1  -> 1 / Out_RST_NEXT_ZERO_0
+          In_SYN_ACK_V_V_0  -> 1 / Out_RST_NEXT_ZERO_0
+          In_RST_V_V_0      -> 1 / Out_TIMEOUT
+          In_ACK_V_V_0      -> 1 / Out_RST_NEXT_ZERO_0
+          In_FIN_ACK_V_V_0  -> 1 / Out_RST_NEXT_ZERO_0
+          In_SYN_V_V_0      -> 1 / Out_ACK_RST_ZERO_NEXT_0
+          In_RCV            -> 3 / Out_TIMEOUT
+          In_CLOSE          -> 3 / Out_TIMEOUT
+          In_CONNECT        -> 3 / Out_TIMEOUT
+    4     In_ACK_RST_V_V_0  -> 1 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1  -> 8 / Out_ACK_NEXT_NEXT_0
+          In_SYN_ACK_V_V_0  -> 4 / Out_ACK_NEXT_CURRENT_0
+          In_RST_V_V_0      -> 1 / Out_TIMEOUT
+          In_ACK_V_V_0      -> 4 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0  -> 9 / Out_ACK_NEXT_NEXT_0
+          In_SYN_V_V_0      -> 4 / Out_TIMEOUT
+          In_RCV            -> 10 / Out_TIMEOUT
+          In_CLOSE          -> 7 / Out_ACK_FIN_NEXT_CURRENT_0
+          In_CONNECT        -> 4 / Out_TIMEOUT
+    5     In_ACK_RST_V_V_0  -> 5 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1  -> 5 / Out_RST_ZERO_ZERO_0
+          In_SYN_ACK_V_V_0  -> 5 / Out_RST_ZERO_ZERO_0
+          In_RST_V_V_0      -> 5 / Out_TIMEOUT
+          In_ACK_V_V_0      -> 5 / Out_RST_ZERO_ZERO_0
+          In_FIN_ACK_V_V_0  -> 5 / Out_RST_ZERO_ZERO_0
+          In_SYN_V_V_0      -> 6 / Out_ACK_SYN_FRESH_NEXT_0
+          In_RCV            -> 5 / Out_TIMEOUT
+          In_CLOSE          -> 1 / Out_TIMEOUT
+          In_CONNECT        -> 5 / Out_TIMEOUT
+    6     In_ACK_RST_V_V_0  -> 1 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1  -> 8 / Out_ACK_NEXT_NEXT_0
+          In_SYN_ACK_V_V_0  -> 6 / Out_ACK_NEXT_CURRENT_0
+          In_RST_V_V_0      -> 1 / Out_TIMEOUT
+          In_ACK_V_V_0      -> 4 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0  -> 9 / Out_ACK_NEXT_NEXT_0
+          In_SYN_V_V_0      -> 6 / Out_TIMEOUT
+          In_RCV            -> 6 / Out_TIMEOUT
+          In_CLOSE          -> 7 / Out_ACK_FIN_NEXT_CURRENT_0
+          In_CONNECT        -> 6 / Out_TIMEOUT
+    7     In_ACK_RST_V_V_0  -> 1 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1  -> 1 / Out_RST_NEXT_ZERO_0
+          In_SYN_ACK_V_V_0  -> 7 / Out_ACK_NEXT_CURRENT_0
+          In_RST_V_V_0      -> 1 / Out_TIMEOUT
+          In_ACK_V_V_0      -> 12 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0  -> 13 / Out_ACK_NEXT_NEXT_0
+          In_SYN_V_V_0      -> 7 / Out_TIMEOUT
+          In_RCV            -> 7 / Out_TIMEOUT
+          In_CLOSE          -> 7 / Out_TIMEOUT
+          In_CONNECT        -> 7 / Out_TIMEOUT
+    8     In_ACK_RST_V_V_0  -> 1 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1  -> 8 / Out_ACK_NEXT_NEXT_0
+          In_SYN_ACK_V_V_0  -> 8 / Out_ACK_NEXT_CURRENT_0
+          In_RST_V_V_0      -> 1 / Out_TIMEOUT
+          In_ACK_V_V_0      -> 8 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0  -> 11 / Out_ACK_NEXT_NEXT_0
+          In_SYN_V_V_0      -> 8 / Out_TIMEOUT
+          In_RCV            -> 4 / Out_TIMEOUT
+          In_CLOSE          -> 1 / Out_ACK_RST_NEXT_CURRENT_0
+          In_CONNECT        -> 8 / Out_TIMEOUT
+    9     In_ACK_RST_V_V_0  -> 1 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1  -> 9 / Out_TIMEOUT
+          In_SYN_ACK_V_V_0  -> 9 / Out_ACK_NEXT_CURRENT_0
+          In_RST_V_V_0      -> 1 / Out_TIMEOUT
+          In_ACK_V_V_0      -> 9 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0  -> 9 / Out_TIMEOUT
+          In_SYN_V_V_0      -> 9 / Out_TIMEOUT
+          In_RCV            -> 9 / Out_TIMEOUT
+          In_CLOSE          -> 14 / Out_ACK_FIN_NEXT_CURRENT_0
+          In_CONNECT        -> 9 / Out_TIMEOUT
+    10    In_ACK_RST_V_V_0  -> 1 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1  -> 4 / Out_ACK_NEXT_NEXT_0
+          In_SYN_ACK_V_V_0  -> 10 / Out_ACK_NEXT_CURRENT_0
+          In_RST_V_V_0      -> 1 / Out_TIMEOUT
+          In_ACK_V_V_0      -> 10 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0  -> 9 / Out_ACK_NEXT_NEXT_0
+          In_SYN_V_V_0      -> 10 / Out_TIMEOUT
+          In_RCV            -> 10 / Out_TIMEOUT
+          In_CLOSE          -> 7 / Out_ACK_FIN_NEXT_CURRENT_0
+          In_CONNECT        -> 10 / Out_TIMEOUT
+    11    In_ACK_RST_V_V_0  -> 1 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1  -> 11 / Out_TIMEOUT
+          In_SYN_ACK_V_V_0  -> 11 / Out_ACK_NEXT_CURRENT_0
+          In_RST_V_V_0      -> 1 / Out_TIMEOUT
+          In_ACK_V_V_0      -> 11 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0  -> 11 / Out_TIMEOUT
+          In_SYN_V_V_0      -> 11 / Out_TIMEOUT
+          In_RCV            -> 9 / Out_TIMEOUT
+          In_CLOSE          -> 1 / Out_ACK_RST_NEXT_CURRENT_0
+          In_CONNECT        -> 11 / Out_TIMEOUT
+    12    In_ACK_RST_V_V_0  -> 1 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1  -> 1 / Out_RST_NEXT_ZERO_0
+          In_SYN_ACK_V_V_0  -> 1 / Out_RST_NEXT_ZERO_0
+          In_RST_V_V_0      -> 1 / Out_TIMEOUT
+          In_ACK_V_V_0      -> 12 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0  -> 13 / Out_ACK_NEXT_NEXT_0
+          In_SYN_V_V_0      -> 1 / Out_ACK_RST_ZERO_NEXT_0
+          In_RCV            -> 12 / Out_TIMEOUT
+          In_CLOSE          -> 12 / Out_TIMEOUT
+          In_CONNECT        -> 12 / Out_TIMEOUT
+    13    In_ACK_RST_V_V_0  -> 1 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1  -> 13 / Out_ACK_NEXT_CURRENT_0
+          In_SYN_ACK_V_V_0  -> 13 / Out_ACK_NEXT_CURRENT_0
+          In_RST_V_V_0      -> 1 / Out_TIMEOUT
+          In_ACK_V_V_0      -> 13 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0  -> 13 / Out_ACK_NEXT_CURRENT_0
+          In_SYN_V_V_0      -> 13 / Out_ACK_NEXT_CURRENT_0
+          In_RCV            -> 13 / Out_TIMEOUT
+          In_CLOSE          -> 13 / Out_TIMEOUT
+          In_CONNECT        -> 13 / Out_TIMEOUT
+    14    In_ACK_RST_V_V_0  -> 1 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1  -> 3 / Out_TIMEOUT
+          In_SYN_ACK_V_V_0  -> 14 / Out_ACK_NEXT_CURRENT_0
+          In_RST_V_V_0      -> 1 / Out_TIMEOUT
+          In_ACK_V_V_0      -> 3 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0  -> 3 / Out_TIMEOUT
+          In_SYN_V_V_0      -> 14 / Out_TIMEOUT
+          In_RCV            -> 14 / Out_TIMEOUT
+          In_CLOSE          -> 14 / Out_TIMEOUT
+          In_CONNECT        -> 14 / Out_TIMEOUT
+-}
 tCPLinuxClient :: MealyAutomaton Int TCPLinuxClientInput TCPLinuxClientOutput
-tCPLinuxClient = mkMealyAutomaton delta lambda (Set.fromList [0..14]) 0
+tCPLinuxClient =
+    case mkMealyAutomatonTable 15 0 deltaTable lambdaTable of
+        Right m -> m
+        Left err -> error ("haal-gen: invalid transition table: " ++ err)
   where
-    delta 0 In_ACK_RST_V_V_0 = 0
-    delta 0 In_ACK_PSH_V_V_1 = 0
-    delta 0 In_SYN_ACK_V_V_0 = 0
-    delta 0 In_RST_V_V_0 = 0
-    delta 0 In_ACK_V_V_0 = 0
-    delta 0 In_FIN_ACK_V_V_0 = 0
-    delta 0 In_SYN_V_V_0 = 0
-    delta 0 In_RCV = 0
-    delta 0 In_CLOSE = 1
-    delta 0 In_CONNECT = 2
-    delta 1 In_ACK_RST_V_V_0 = 1
-    delta 1 In_CLOSE = 1
-    delta 1 In_CONNECT = 1
-    delta 1 In_ACK_PSH_V_V_1 = 1
-    delta 1 In_SYN_ACK_V_V_0 = 1
-    delta 1 In_RST_V_V_0 = 1
-    delta 1 In_ACK_V_V_0 = 1
-    delta 1 In_FIN_ACK_V_V_0 = 1
-    delta 1 In_SYN_V_V_0 = 1
-    delta 1 In_RCV = 1
-    delta 2 In_ACK_RST_V_V_0 = 1
-    delta 2 In_CLOSE = 3
-    delta 2 In_CONNECT = 2
-    delta 2 In_ACK_PSH_V_V_1 = 2
-    delta 2 In_ACK_V_V_0 = 2
-    delta 2 In_FIN_ACK_V_V_0 = 2
-    delta 2 In_RCV = 2
-    delta 2 In_SYN_ACK_V_V_0 = 4
-    delta 2 In_RST_V_V_0 = 5
-    delta 2 In_SYN_V_V_0 = 6
-    delta 6 In_ACK_RST_V_V_0 = 1
-    delta 6 In_RST_V_V_0 = 1
-    delta 6 In_CLOSE = 7
-    delta 6 In_CONNECT = 6
-    delta 6 In_SYN_ACK_V_V_0 = 6
-    delta 6 In_SYN_V_V_0 = 6
-    delta 6 In_RCV = 6
-    delta 6 In_ACK_PSH_V_V_1 = 8
-    delta 6 In_ACK_V_V_0 = 4
-    delta 6 In_FIN_ACK_V_V_0 = 9
-    delta 4 In_ACK_RST_V_V_0 = 1
-    delta 4 In_RST_V_V_0 = 1
-    delta 4 In_CLOSE = 7
-    delta 4 In_CONNECT = 4
-    delta 4 In_SYN_ACK_V_V_0 = 4
-    delta 4 In_ACK_V_V_0 = 4
-    delta 4 In_SYN_V_V_0 = 4
-    delta 4 In_ACK_PSH_V_V_1 = 8
-    delta 4 In_FIN_ACK_V_V_0 = 9
-    delta 4 In_RCV = 10
-    delta 3 In_ACK_RST_V_V_0 = 1
-    delta 3 In_ACK_PSH_V_V_1 = 1
-    delta 3 In_SYN_ACK_V_V_0 = 1
-    delta 3 In_RST_V_V_0 = 1
-    delta 3 In_ACK_V_V_0 = 1
-    delta 3 In_FIN_ACK_V_V_0 = 1
-    delta 3 In_SYN_V_V_0 = 1
-    delta 3 In_CLOSE = 3
-    delta 3 In_CONNECT = 3
-    delta 3 In_RCV = 3
-    delta 5 In_ACK_RST_V_V_0 = 5
-    delta 5 In_CONNECT = 5
-    delta 5 In_ACK_PSH_V_V_1 = 5
-    delta 5 In_SYN_ACK_V_V_0 = 5
-    delta 5 In_RST_V_V_0 = 5
-    delta 5 In_ACK_V_V_0 = 5
-    delta 5 In_FIN_ACK_V_V_0 = 5
-    delta 5 In_RCV = 5
-    delta 5 In_CLOSE = 1
-    delta 5 In_SYN_V_V_0 = 6
-    delta 8 In_ACK_RST_V_V_0 = 1
-    delta 8 In_CLOSE = 1
-    delta 8 In_RST_V_V_0 = 1
-    delta 8 In_CONNECT = 8
-    delta 8 In_ACK_PSH_V_V_1 = 8
-    delta 8 In_SYN_ACK_V_V_0 = 8
-    delta 8 In_ACK_V_V_0 = 8
-    delta 8 In_SYN_V_V_0 = 8
-    delta 8 In_FIN_ACK_V_V_0 = 11
-    delta 8 In_RCV = 4
-    delta 7 In_ACK_RST_V_V_0 = 1
-    delta 7 In_ACK_PSH_V_V_1 = 1
-    delta 7 In_RST_V_V_0 = 1
-    delta 7 In_CLOSE = 7
-    delta 7 In_CONNECT = 7
-    delta 7 In_SYN_ACK_V_V_0 = 7
-    delta 7 In_SYN_V_V_0 = 7
-    delta 7 In_RCV = 7
-    delta 7 In_ACK_V_V_0 = 12
-    delta 7 In_FIN_ACK_V_V_0 = 13
-    delta 9 In_ACK_RST_V_V_0 = 1
-    delta 9 In_RST_V_V_0 = 1
-    delta 9 In_CLOSE = 14
-    delta 9 In_CONNECT = 9
-    delta 9 In_ACK_PSH_V_V_1 = 9
-    delta 9 In_SYN_ACK_V_V_0 = 9
-    delta 9 In_ACK_V_V_0 = 9
-    delta 9 In_FIN_ACK_V_V_0 = 9
-    delta 9 In_SYN_V_V_0 = 9
-    delta 9 In_RCV = 9
-    delta 10 In_ACK_RST_V_V_0 = 1
-    delta 10 In_RST_V_V_0 = 1
-    delta 10 In_CLOSE = 7
-    delta 10 In_CONNECT = 10
-    delta 10 In_SYN_ACK_V_V_0 = 10
-    delta 10 In_ACK_V_V_0 = 10
-    delta 10 In_SYN_V_V_0 = 10
-    delta 10 In_RCV = 10
-    delta 10 In_ACK_PSH_V_V_1 = 4
-    delta 10 In_FIN_ACK_V_V_0 = 9
-    delta 11 In_ACK_RST_V_V_0 = 1
-    delta 11 In_CLOSE = 1
-    delta 11 In_RST_V_V_0 = 1
-    delta 11 In_CONNECT = 11
-    delta 11 In_ACK_PSH_V_V_1 = 11
-    delta 11 In_SYN_ACK_V_V_0 = 11
-    delta 11 In_ACK_V_V_0 = 11
-    delta 11 In_FIN_ACK_V_V_0 = 11
-    delta 11 In_SYN_V_V_0 = 11
-    delta 11 In_RCV = 9
-    delta 12 In_ACK_RST_V_V_0 = 1
-    delta 12 In_ACK_PSH_V_V_1 = 1
-    delta 12 In_SYN_ACK_V_V_0 = 1
-    delta 12 In_RST_V_V_0 = 1
-    delta 12 In_SYN_V_V_0 = 1
-    delta 12 In_CLOSE = 12
-    delta 12 In_CONNECT = 12
-    delta 12 In_ACK_V_V_0 = 12
-    delta 12 In_RCV = 12
-    delta 12 In_FIN_ACK_V_V_0 = 13
-    delta 13 In_ACK_RST_V_V_0 = 1
-    delta 13 In_RST_V_V_0 = 1
-    delta 13 In_CLOSE = 13
-    delta 13 In_CONNECT = 13
-    delta 13 In_ACK_PSH_V_V_1 = 13
-    delta 13 In_SYN_ACK_V_V_0 = 13
-    delta 13 In_ACK_V_V_0 = 13
-    delta 13 In_FIN_ACK_V_V_0 = 13
-    delta 13 In_SYN_V_V_0 = 13
-    delta 13 In_RCV = 13
-    delta 14 In_ACK_RST_V_V_0 = 1
-    delta 14 In_RST_V_V_0 = 1
-    delta 14 In_CLOSE = 14
-    delta 14 In_CONNECT = 14
-    delta 14 In_SYN_ACK_V_V_0 = 14
-    delta 14 In_SYN_V_V_0 = 14
-    delta 14 In_RCV = 14
-    delta 14 In_ACK_PSH_V_V_1 = 3
-    delta 14 In_ACK_V_V_0 = 3
-    delta 14 In_FIN_ACK_V_V_0 = 3
-    delta _ _ = error "haal-gen: undefined transition"
-    lambda 0 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 0 In_ACK_PSH_V_V_1 = Out_RST_ZERO_ZERO_0
-    lambda 0 In_SYN_ACK_V_V_0 = Out_RST_ZERO_ZERO_0
-    lambda 0 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 0 In_ACK_V_V_0 = Out_RST_ZERO_ZERO_0
-    lambda 0 In_FIN_ACK_V_V_0 = Out_RST_ZERO_ZERO_0
-    lambda 0 In_SYN_V_V_0 = Out_ACK_RST_ZERO_NEXT_0
-    lambda 0 In_RCV = Out_TIMEOUT
-    lambda 0 In_CLOSE = Out_TIMEOUT
-    lambda 0 In_CONNECT = Out_SYN_FRESH_ZERO_0
-    lambda 1 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 1 In_CLOSE = Out_TIMEOUT
-    lambda 1 In_CONNECT = Out_TIMEOUT
-    lambda 1 In_ACK_PSH_V_V_1 = Out_RST_ZERO_ZERO_0
-    lambda 1 In_SYN_ACK_V_V_0 = Out_RST_ZERO_ZERO_0
-    lambda 1 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 1 In_ACK_V_V_0 = Out_RST_ZERO_ZERO_0
-    lambda 1 In_FIN_ACK_V_V_0 = Out_RST_ZERO_ZERO_0
-    lambda 1 In_SYN_V_V_0 = Out_ACK_RST_ZERO_NEXT_0
-    lambda 1 In_RCV = Out_TIMEOUT
-    lambda 2 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 2 In_CLOSE = Out_TIMEOUT
-    lambda 2 In_CONNECT = Out_TIMEOUT
-    lambda 2 In_ACK_PSH_V_V_1 = Out_TIMEOUT
-    lambda 2 In_ACK_V_V_0 = Out_TIMEOUT
-    lambda 2 In_FIN_ACK_V_V_0 = Out_TIMEOUT
-    lambda 2 In_RCV = Out_TIMEOUT
-    lambda 2 In_SYN_ACK_V_V_0 = Out_ACK_NEXT_NEXT_0
-    lambda 2 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 2 In_SYN_V_V_0 = Out_ACK_SYN_CURRENT_NEXT_0
-    lambda 6 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 6 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 6 In_CLOSE = Out_ACK_FIN_NEXT_CURRENT_0
-    lambda 6 In_CONNECT = Out_TIMEOUT
-    lambda 6 In_SYN_ACK_V_V_0 = Out_ACK_NEXT_CURRENT_0
-    lambda 6 In_SYN_V_V_0 = Out_TIMEOUT
-    lambda 6 In_RCV = Out_TIMEOUT
-    lambda 6 In_ACK_PSH_V_V_1 = Out_ACK_NEXT_NEXT_0
-    lambda 6 In_ACK_V_V_0 = Out_TIMEOUT
-    lambda 6 In_FIN_ACK_V_V_0 = Out_ACK_NEXT_NEXT_0
-    lambda 4 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 4 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 4 In_CLOSE = Out_ACK_FIN_NEXT_CURRENT_0
-    lambda 4 In_CONNECT = Out_TIMEOUT
-    lambda 4 In_SYN_ACK_V_V_0 = Out_ACK_NEXT_CURRENT_0
-    lambda 4 In_ACK_V_V_0 = Out_TIMEOUT
-    lambda 4 In_SYN_V_V_0 = Out_TIMEOUT
-    lambda 4 In_ACK_PSH_V_V_1 = Out_ACK_NEXT_NEXT_0
-    lambda 4 In_FIN_ACK_V_V_0 = Out_ACK_NEXT_NEXT_0
-    lambda 4 In_RCV = Out_TIMEOUT
-    lambda 3 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 3 In_ACK_PSH_V_V_1 = Out_RST_NEXT_ZERO_0
-    lambda 3 In_SYN_ACK_V_V_0 = Out_RST_NEXT_ZERO_0
-    lambda 3 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 3 In_ACK_V_V_0 = Out_RST_NEXT_ZERO_0
-    lambda 3 In_FIN_ACK_V_V_0 = Out_RST_NEXT_ZERO_0
-    lambda 3 In_SYN_V_V_0 = Out_ACK_RST_ZERO_NEXT_0
-    lambda 3 In_CLOSE = Out_TIMEOUT
-    lambda 3 In_CONNECT = Out_TIMEOUT
-    lambda 3 In_RCV = Out_TIMEOUT
-    lambda 5 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 5 In_CONNECT = Out_TIMEOUT
-    lambda 5 In_ACK_PSH_V_V_1 = Out_RST_ZERO_ZERO_0
-    lambda 5 In_SYN_ACK_V_V_0 = Out_RST_ZERO_ZERO_0
-    lambda 5 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 5 In_ACK_V_V_0 = Out_RST_ZERO_ZERO_0
-    lambda 5 In_FIN_ACK_V_V_0 = Out_RST_ZERO_ZERO_0
-    lambda 5 In_RCV = Out_TIMEOUT
-    lambda 5 In_CLOSE = Out_TIMEOUT
-    lambda 5 In_SYN_V_V_0 = Out_ACK_SYN_FRESH_NEXT_0
-    lambda 8 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 8 In_CLOSE = Out_ACK_RST_NEXT_CURRENT_0
-    lambda 8 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 8 In_CONNECT = Out_TIMEOUT
-    lambda 8 In_ACK_PSH_V_V_1 = Out_ACK_NEXT_NEXT_0
-    lambda 8 In_SYN_ACK_V_V_0 = Out_ACK_NEXT_CURRENT_0
-    lambda 8 In_ACK_V_V_0 = Out_TIMEOUT
-    lambda 8 In_SYN_V_V_0 = Out_TIMEOUT
-    lambda 8 In_FIN_ACK_V_V_0 = Out_ACK_NEXT_NEXT_0
-    lambda 8 In_RCV = Out_TIMEOUT
-    lambda 7 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 7 In_ACK_PSH_V_V_1 = Out_RST_NEXT_ZERO_0
-    lambda 7 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 7 In_CLOSE = Out_TIMEOUT
-    lambda 7 In_CONNECT = Out_TIMEOUT
-    lambda 7 In_SYN_ACK_V_V_0 = Out_ACK_NEXT_CURRENT_0
-    lambda 7 In_SYN_V_V_0 = Out_TIMEOUT
-    lambda 7 In_RCV = Out_TIMEOUT
-    lambda 7 In_ACK_V_V_0 = Out_TIMEOUT
-    lambda 7 In_FIN_ACK_V_V_0 = Out_ACK_NEXT_NEXT_0
-    lambda 9 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 9 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 9 In_CLOSE = Out_ACK_FIN_NEXT_CURRENT_0
-    lambda 9 In_CONNECT = Out_TIMEOUT
-    lambda 9 In_ACK_PSH_V_V_1 = Out_TIMEOUT
-    lambda 9 In_SYN_ACK_V_V_0 = Out_ACK_NEXT_CURRENT_0
-    lambda 9 In_ACK_V_V_0 = Out_TIMEOUT
-    lambda 9 In_FIN_ACK_V_V_0 = Out_TIMEOUT
-    lambda 9 In_SYN_V_V_0 = Out_TIMEOUT
-    lambda 9 In_RCV = Out_TIMEOUT
-    lambda 10 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 10 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 10 In_CLOSE = Out_ACK_FIN_NEXT_CURRENT_0
-    lambda 10 In_CONNECT = Out_TIMEOUT
-    lambda 10 In_SYN_ACK_V_V_0 = Out_ACK_NEXT_CURRENT_0
-    lambda 10 In_ACK_V_V_0 = Out_TIMEOUT
-    lambda 10 In_SYN_V_V_0 = Out_TIMEOUT
-    lambda 10 In_RCV = Out_TIMEOUT
-    lambda 10 In_ACK_PSH_V_V_1 = Out_ACK_NEXT_NEXT_0
-    lambda 10 In_FIN_ACK_V_V_0 = Out_ACK_NEXT_NEXT_0
-    lambda 11 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 11 In_CLOSE = Out_ACK_RST_NEXT_CURRENT_0
-    lambda 11 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 11 In_CONNECT = Out_TIMEOUT
-    lambda 11 In_ACK_PSH_V_V_1 = Out_TIMEOUT
-    lambda 11 In_SYN_ACK_V_V_0 = Out_ACK_NEXT_CURRENT_0
-    lambda 11 In_ACK_V_V_0 = Out_TIMEOUT
-    lambda 11 In_FIN_ACK_V_V_0 = Out_TIMEOUT
-    lambda 11 In_SYN_V_V_0 = Out_TIMEOUT
-    lambda 11 In_RCV = Out_TIMEOUT
-    lambda 12 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 12 In_ACK_PSH_V_V_1 = Out_RST_NEXT_ZERO_0
-    lambda 12 In_SYN_ACK_V_V_0 = Out_RST_NEXT_ZERO_0
-    lambda 12 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 12 In_SYN_V_V_0 = Out_ACK_RST_ZERO_NEXT_0
-    lambda 12 In_CLOSE = Out_TIMEOUT
-    lambda 12 In_CONNECT = Out_TIMEOUT
-    lambda 12 In_ACK_V_V_0 = Out_TIMEOUT
-    lambda 12 In_RCV = Out_TIMEOUT
-    lambda 12 In_FIN_ACK_V_V_0 = Out_ACK_NEXT_NEXT_0
-    lambda 13 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 13 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 13 In_CLOSE = Out_TIMEOUT
-    lambda 13 In_CONNECT = Out_TIMEOUT
-    lambda 13 In_ACK_PSH_V_V_1 = Out_ACK_NEXT_CURRENT_0
-    lambda 13 In_SYN_ACK_V_V_0 = Out_ACK_NEXT_CURRENT_0
-    lambda 13 In_ACK_V_V_0 = Out_TIMEOUT
-    lambda 13 In_FIN_ACK_V_V_0 = Out_ACK_NEXT_CURRENT_0
-    lambda 13 In_SYN_V_V_0 = Out_ACK_NEXT_CURRENT_0
-    lambda 13 In_RCV = Out_TIMEOUT
-    lambda 14 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 14 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 14 In_CLOSE = Out_TIMEOUT
-    lambda 14 In_CONNECT = Out_TIMEOUT
-    lambda 14 In_SYN_ACK_V_V_0 = Out_ACK_NEXT_CURRENT_0
-    lambda 14 In_SYN_V_V_0 = Out_TIMEOUT
-    lambda 14 In_RCV = Out_TIMEOUT
-    lambda 14 In_ACK_PSH_V_V_1 = Out_TIMEOUT
-    lambda 14 In_ACK_V_V_0 = Out_TIMEOUT
-    lambda 14 In_FIN_ACK_V_V_0 = Out_TIMEOUT
-    lambda _ _ = error "haal-gen: undefined transition"
+    deltaTable =
+        "\0\0\0\0\0\0\0\0\1\2\
+        \\1\1\1\1\1\1\1\1\1\1\
+        \\1\2\4\5\2\2\6\2\3\2\
+        \\1\1\1\1\1\1\1\3\3\3\
+        \\1\8\4\1\4\9\4\10\7\4\
+        \\5\5\5\5\5\5\6\5\1\5\
+        \\1\8\6\1\4\9\6\6\7\6\
+        \\1\1\7\1\12\13\7\7\7\7\
+        \\1\8\8\1\8\11\8\4\1\8\
+        \\1\9\9\1\9\9\9\9\14\9\
+        \\1\4\10\1\10\9\10\10\7\10\
+        \\1\11\11\1\11\11\11\9\1\11\
+        \\1\1\1\1\12\13\1\12\12\12\
+        \\1\13\13\1\13\13\13\13\13\13\
+        \\1\3\14\1\3\3\14\14\14\14"
+    lambdaTable =
+        "\0\1\1\0\1\1\2\0\0\3\
+        \\0\1\1\0\1\1\2\0\0\0\
+        \\0\0\4\0\0\0\5\0\0\0\
+        \\0\8\8\0\8\8\2\0\0\0\
+        \\0\4\7\0\0\4\0\0\6\0\
+        \\0\1\1\0\1\1\9\0\0\0\
+        \\0\4\7\0\0\4\0\0\6\0\
+        \\0\8\7\0\0\4\0\0\0\0\
+        \\0\4\7\0\0\4\0\0\10\0\
+        \\0\0\7\0\0\0\0\0\6\0\
+        \\0\4\7\0\0\4\0\0\6\0\
+        \\0\0\7\0\0\0\0\0\10\0\
+        \\0\8\8\0\0\4\2\0\0\0\
+        \\0\7\7\0\0\7\7\0\0\0\
+        \\0\0\7\0\0\0\0\0\0\0"
diff --git a/src/Haal/Models/TCP/TCPLinuxServer.hs b/src/Haal/Models/TCP/TCPLinuxServer.hs
--- a/src/Haal/Models/TCP/TCPLinuxServer.hs
+++ b/src/Haal/Models/TCP/TCPLinuxServer.hs
@@ -5,1406 +5,840 @@
     , tCPLinuxServer
     ) where
 
-import qualified Data.Set as Set
-import Haal.Automaton.MealyAutomaton (MealyAutomaton, mkMealyAutomaton)
-
-data TCPLinuxServerInput
-    = In_CLOSECONNECTION
-    | In_ACK_PSH_V_V_1
-    | In_SYN_ACK_V_V_0
-    | In_RST_V_V_0
-    | In_ACCEPT
-    | In_FIN_ACK_V_V_0
-    | In_LISTEN
-    | In_SYN_V_V_0
-    | In_RCV
-    | In_ACK_RST_V_V_0
-    | In_CLOSE
-    | In_ACK_V_V_0
-    deriving (Show, Eq, Ord, Enum, Bounded)
-
-data TCPLinuxServerOutput
-    = Out_TIMEOUT
-    | Out_RST_ZERO_ZERO_0
-    | Out_ACK_RST_ZERO_NEXT_0
-    | Out_ACK_SYN_FRESH_NEXT_0
-    | Out_ACK_NEXT_NEXT_0
-    | Out_RST_NEXT_ZERO_0
-    | Out_ACK_NEXT_CURRENT_0
-    | Out_ACK_RST_NEXT_CURRENT_0
-    | Out_ACK_FIN_NEXT_CURRENT_0
-    deriving (Show, Eq, Ord, Enum, Bounded)
-
-tCPLinuxServer :: MealyAutomaton Int TCPLinuxServerInput TCPLinuxServerOutput
-tCPLinuxServer = mkMealyAutomaton delta lambda (Set.fromList [0..56]) 0
-  where
-    delta 0 In_CLOSECONNECTION = 0
-    delta 0 In_ACK_PSH_V_V_1 = 0
-    delta 0 In_SYN_ACK_V_V_0 = 0
-    delta 0 In_RST_V_V_0 = 0
-    delta 0 In_ACCEPT = 0
-    delta 0 In_FIN_ACK_V_V_0 = 0
-    delta 0 In_LISTEN = 1
-    delta 0 In_SYN_V_V_0 = 0
-    delta 0 In_RCV = 0
-    delta 0 In_ACK_RST_V_V_0 = 0
-    delta 0 In_CLOSE = 2
-    delta 0 In_ACK_V_V_0 = 0
-    delta 1 In_CLOSECONNECTION = 1
-    delta 1 In_ACK_PSH_V_V_1 = 1
-    delta 1 In_SYN_ACK_V_V_0 = 1
-    delta 1 In_RST_V_V_0 = 1
-    delta 1 In_ACCEPT = 3
-    delta 1 In_FIN_ACK_V_V_0 = 1
-    delta 1 In_LISTEN = 1
-    delta 1 In_SYN_V_V_0 = 4
-    delta 1 In_RCV = 1
-    delta 1 In_ACK_RST_V_V_0 = 1
-    delta 1 In_CLOSE = 2
-    delta 1 In_ACK_V_V_0 = 1
-    delta 2 In_CLOSECONNECTION = 2
-    delta 2 In_ACK_PSH_V_V_1 = 2
-    delta 2 In_SYN_ACK_V_V_0 = 2
-    delta 2 In_RST_V_V_0 = 2
-    delta 2 In_ACCEPT = 2
-    delta 2 In_FIN_ACK_V_V_0 = 2
-    delta 2 In_LISTEN = 2
-    delta 2 In_SYN_V_V_0 = 2
-    delta 2 In_RCV = 2
-    delta 2 In_ACK_RST_V_V_0 = 2
-    delta 2 In_CLOSE = 2
-    delta 2 In_ACK_V_V_0 = 2
-    delta 4 In_CLOSECONNECTION = 4
-    delta 4 In_ACK_PSH_V_V_1 = 5
-    delta 4 In_SYN_ACK_V_V_0 = 1
-    delta 4 In_RST_V_V_0 = 1
-    delta 4 In_ACCEPT = 6
-    delta 4 In_FIN_ACK_V_V_0 = 7
-    delta 4 In_LISTEN = 4
-    delta 4 In_SYN_V_V_0 = 1
-    delta 4 In_RCV = 4
-    delta 4 In_ACK_RST_V_V_0 = 1
-    delta 4 In_CLOSE = 8
-    delta 4 In_ACK_V_V_0 = 9
-    delta 3 In_CLOSECONNECTION = 1
-    delta 3 In_ACK_PSH_V_V_1 = 3
-    delta 3 In_SYN_ACK_V_V_0 = 3
-    delta 3 In_RST_V_V_0 = 3
-    delta 3 In_ACCEPT = 3
-    delta 3 In_FIN_ACK_V_V_0 = 3
-    delta 3 In_LISTEN = 3
-    delta 3 In_SYN_V_V_0 = 6
-    delta 3 In_RCV = 3
-    delta 3 In_ACK_RST_V_V_0 = 3
-    delta 3 In_CLOSE = 2
-    delta 3 In_ACK_V_V_0 = 3
-    delta 5 In_CLOSECONNECTION = 5
-    delta 5 In_ACK_PSH_V_V_1 = 5
-    delta 5 In_SYN_ACK_V_V_0 = 5
-    delta 5 In_RST_V_V_0 = 10
-    delta 5 In_ACCEPT = 11
-    delta 5 In_FIN_ACK_V_V_0 = 12
-    delta 5 In_LISTEN = 5
-    delta 5 In_SYN_V_V_0 = 5
-    delta 5 In_RCV = 5
-    delta 5 In_ACK_RST_V_V_0 = 10
-    delta 5 In_CLOSE = 2
-    delta 5 In_ACK_V_V_0 = 5
-    delta 9 In_CLOSECONNECTION = 9
-    delta 9 In_ACK_PSH_V_V_1 = 5
-    delta 9 In_SYN_ACK_V_V_0 = 9
-    delta 9 In_RST_V_V_0 = 10
-    delta 9 In_ACCEPT = 13
-    delta 9 In_FIN_ACK_V_V_0 = 7
-    delta 9 In_LISTEN = 9
-    delta 9 In_SYN_V_V_0 = 9
-    delta 9 In_RCV = 9
-    delta 9 In_ACK_RST_V_V_0 = 10
-    delta 9 In_CLOSE = 2
-    delta 9 In_ACK_V_V_0 = 9
-    delta 7 In_CLOSECONNECTION = 7
-    delta 7 In_ACK_PSH_V_V_1 = 7
-    delta 7 In_SYN_ACK_V_V_0 = 7
-    delta 7 In_RST_V_V_0 = 10
-    delta 7 In_ACCEPT = 14
-    delta 7 In_FIN_ACK_V_V_0 = 7
-    delta 7 In_LISTEN = 7
-    delta 7 In_SYN_V_V_0 = 7
-    delta 7 In_RCV = 7
-    delta 7 In_ACK_RST_V_V_0 = 10
-    delta 7 In_CLOSE = 2
-    delta 7 In_ACK_V_V_0 = 7
-    delta 8 In_CLOSECONNECTION = 8
-    delta 8 In_ACK_PSH_V_V_1 = 2
-    delta 8 In_SYN_ACK_V_V_0 = 2
-    delta 8 In_RST_V_V_0 = 2
-    delta 8 In_ACCEPT = 8
-    delta 8 In_FIN_ACK_V_V_0 = 2
-    delta 8 In_LISTEN = 8
-    delta 8 In_SYN_V_V_0 = 2
-    delta 8 In_RCV = 8
-    delta 8 In_ACK_RST_V_V_0 = 2
-    delta 8 In_CLOSE = 8
-    delta 8 In_ACK_V_V_0 = 2
-    delta 6 In_CLOSECONNECTION = 4
-    delta 6 In_ACK_PSH_V_V_1 = 11
-    delta 6 In_SYN_ACK_V_V_0 = 3
-    delta 6 In_RST_V_V_0 = 3
-    delta 6 In_ACCEPT = 6
-    delta 6 In_FIN_ACK_V_V_0 = 14
-    delta 6 In_LISTEN = 6
-    delta 6 In_SYN_V_V_0 = 3
-    delta 6 In_RCV = 6
-    delta 6 In_ACK_RST_V_V_0 = 3
-    delta 6 In_CLOSE = 8
-    delta 6 In_ACK_V_V_0 = 13
-    delta 12 In_CLOSECONNECTION = 12
-    delta 12 In_ACK_PSH_V_V_1 = 12
-    delta 12 In_SYN_ACK_V_V_0 = 12
-    delta 12 In_RST_V_V_0 = 10
-    delta 12 In_ACCEPT = 15
-    delta 12 In_FIN_ACK_V_V_0 = 12
-    delta 12 In_LISTEN = 12
-    delta 12 In_SYN_V_V_0 = 12
-    delta 12 In_RCV = 12
-    delta 12 In_ACK_RST_V_V_0 = 10
-    delta 12 In_CLOSE = 2
-    delta 12 In_ACK_V_V_0 = 12
-    delta 11 In_CLOSECONNECTION = 1
-    delta 11 In_ACK_PSH_V_V_1 = 11
-    delta 11 In_SYN_ACK_V_V_0 = 11
-    delta 11 In_RST_V_V_0 = 16
-    delta 11 In_ACCEPT = 11
-    delta 11 In_FIN_ACK_V_V_0 = 15
-    delta 11 In_LISTEN = 11
-    delta 11 In_SYN_V_V_0 = 11
-    delta 11 In_RCV = 13
-    delta 11 In_ACK_RST_V_V_0 = 16
-    delta 11 In_CLOSE = 17
-    delta 11 In_ACK_V_V_0 = 11
-    delta 10 In_CLOSECONNECTION = 10
-    delta 10 In_ACK_PSH_V_V_1 = 10
-    delta 10 In_SYN_ACK_V_V_0 = 10
-    delta 10 In_RST_V_V_0 = 10
-    delta 10 In_ACCEPT = 16
-    delta 10 In_FIN_ACK_V_V_0 = 10
-    delta 10 In_LISTEN = 10
-    delta 10 In_SYN_V_V_0 = 18
-    delta 10 In_RCV = 10
-    delta 10 In_ACK_RST_V_V_0 = 10
-    delta 10 In_CLOSE = 2
-    delta 10 In_ACK_V_V_0 = 10
-    delta 13 In_CLOSECONNECTION = 19
-    delta 13 In_ACK_PSH_V_V_1 = 11
-    delta 13 In_SYN_ACK_V_V_0 = 13
-    delta 13 In_RST_V_V_0 = 16
-    delta 13 In_ACCEPT = 13
-    delta 13 In_FIN_ACK_V_V_0 = 14
-    delta 13 In_LISTEN = 13
-    delta 13 In_SYN_V_V_0 = 13
-    delta 13 In_RCV = 20
-    delta 13 In_ACK_RST_V_V_0 = 16
-    delta 13 In_CLOSE = 21
-    delta 13 In_ACK_V_V_0 = 13
-    delta 14 In_CLOSECONNECTION = 22
-    delta 14 In_ACK_PSH_V_V_1 = 14
-    delta 14 In_SYN_ACK_V_V_0 = 14
-    delta 14 In_RST_V_V_0 = 16
-    delta 14 In_ACCEPT = 14
-    delta 14 In_FIN_ACK_V_V_0 = 14
-    delta 14 In_LISTEN = 14
-    delta 14 In_SYN_V_V_0 = 14
-    delta 14 In_RCV = 14
-    delta 14 In_ACK_RST_V_V_0 = 16
-    delta 14 In_CLOSE = 23
-    delta 14 In_ACK_V_V_0 = 14
-    delta 15 In_CLOSECONNECTION = 1
-    delta 15 In_ACK_PSH_V_V_1 = 15
-    delta 15 In_SYN_ACK_V_V_0 = 15
-    delta 15 In_RST_V_V_0 = 16
-    delta 15 In_ACCEPT = 15
-    delta 15 In_FIN_ACK_V_V_0 = 15
-    delta 15 In_LISTEN = 15
-    delta 15 In_SYN_V_V_0 = 15
-    delta 15 In_RCV = 14
-    delta 15 In_ACK_RST_V_V_0 = 16
-    delta 15 In_CLOSE = 24
-    delta 15 In_ACK_V_V_0 = 15
-    delta 17 In_CLOSECONNECTION = 2
-    delta 17 In_ACK_PSH_V_V_1 = 17
-    delta 17 In_SYN_ACK_V_V_0 = 17
-    delta 17 In_RST_V_V_0 = 2
-    delta 17 In_ACCEPT = 17
-    delta 17 In_FIN_ACK_V_V_0 = 24
-    delta 17 In_LISTEN = 17
-    delta 17 In_SYN_V_V_0 = 17
-    delta 17 In_RCV = 21
-    delta 17 In_ACK_RST_V_V_0 = 2
-    delta 17 In_CLOSE = 17
-    delta 17 In_ACK_V_V_0 = 17
-    delta 16 In_CLOSECONNECTION = 1
-    delta 16 In_ACK_PSH_V_V_1 = 16
-    delta 16 In_SYN_ACK_V_V_0 = 16
-    delta 16 In_RST_V_V_0 = 16
-    delta 16 In_ACCEPT = 16
-    delta 16 In_FIN_ACK_V_V_0 = 16
-    delta 16 In_LISTEN = 16
-    delta 16 In_SYN_V_V_0 = 25
-    delta 16 In_RCV = 16
-    delta 16 In_ACK_RST_V_V_0 = 16
-    delta 16 In_CLOSE = 2
-    delta 16 In_ACK_V_V_0 = 16
-    delta 18 In_CLOSECONNECTION = 18
-    delta 18 In_ACK_PSH_V_V_1 = 26
-    delta 18 In_SYN_ACK_V_V_0 = 10
-    delta 18 In_RST_V_V_0 = 10
-    delta 18 In_ACCEPT = 25
-    delta 18 In_FIN_ACK_V_V_0 = 27
-    delta 18 In_LISTEN = 18
-    delta 18 In_SYN_V_V_0 = 10
-    delta 18 In_RCV = 18
-    delta 18 In_ACK_RST_V_V_0 = 10
-    delta 18 In_CLOSE = 8
-    delta 18 In_ACK_V_V_0 = 28
-    delta 19 In_CLOSECONNECTION = 19
-    delta 19 In_ACK_PSH_V_V_1 = 1
-    delta 19 In_SYN_ACK_V_V_0 = 19
-    delta 19 In_RST_V_V_0 = 1
-    delta 19 In_ACCEPT = 29
-    delta 19 In_FIN_ACK_V_V_0 = 30
-    delta 19 In_LISTEN = 19
-    delta 19 In_SYN_V_V_0 = 19
-    delta 19 In_RCV = 19
-    delta 19 In_ACK_RST_V_V_0 = 1
-    delta 19 In_CLOSE = 31
-    delta 19 In_ACK_V_V_0 = 32
-    delta 20 In_CLOSECONNECTION = 19
-    delta 20 In_ACK_PSH_V_V_1 = 13
-    delta 20 In_SYN_ACK_V_V_0 = 20
-    delta 20 In_RST_V_V_0 = 16
-    delta 20 In_ACCEPT = 20
-    delta 20 In_FIN_ACK_V_V_0 = 14
-    delta 20 In_LISTEN = 20
-    delta 20 In_SYN_V_V_0 = 20
-    delta 20 In_RCV = 20
-    delta 20 In_ACK_RST_V_V_0 = 16
-    delta 20 In_CLOSE = 21
-    delta 20 In_ACK_V_V_0 = 20
-    delta 21 In_CLOSECONNECTION = 31
-    delta 21 In_ACK_PSH_V_V_1 = 17
-    delta 21 In_SYN_ACK_V_V_0 = 21
-    delta 21 In_RST_V_V_0 = 2
-    delta 21 In_ACCEPT = 21
-    delta 21 In_FIN_ACK_V_V_0 = 23
-    delta 21 In_LISTEN = 21
-    delta 21 In_SYN_V_V_0 = 21
-    delta 21 In_RCV = 33
-    delta 21 In_ACK_RST_V_V_0 = 2
-    delta 21 In_CLOSE = 21
-    delta 21 In_ACK_V_V_0 = 21
-    delta 23 In_CLOSECONNECTION = 34
-    delta 23 In_ACK_PSH_V_V_1 = 23
-    delta 23 In_SYN_ACK_V_V_0 = 23
-    delta 23 In_RST_V_V_0 = 2
-    delta 23 In_ACCEPT = 23
-    delta 23 In_FIN_ACK_V_V_0 = 23
-    delta 23 In_LISTEN = 23
-    delta 23 In_SYN_V_V_0 = 23
-    delta 23 In_RCV = 23
-    delta 23 In_ACK_RST_V_V_0 = 2
-    delta 23 In_CLOSE = 23
-    delta 23 In_ACK_V_V_0 = 23
-    delta 22 In_CLOSECONNECTION = 22
-    delta 22 In_ACK_PSH_V_V_1 = 35
-    delta 22 In_SYN_ACK_V_V_0 = 22
-    delta 22 In_RST_V_V_0 = 1
-    delta 22 In_ACCEPT = 36
-    delta 22 In_FIN_ACK_V_V_0 = 35
-    delta 22 In_LISTEN = 22
-    delta 22 In_SYN_V_V_0 = 22
-    delta 22 In_RCV = 22
-    delta 22 In_ACK_RST_V_V_0 = 1
-    delta 22 In_CLOSE = 34
-    delta 22 In_ACK_V_V_0 = 35
-    delta 24 In_CLOSECONNECTION = 2
-    delta 24 In_ACK_PSH_V_V_1 = 24
-    delta 24 In_SYN_ACK_V_V_0 = 24
-    delta 24 In_RST_V_V_0 = 2
-    delta 24 In_ACCEPT = 24
-    delta 24 In_FIN_ACK_V_V_0 = 24
-    delta 24 In_LISTEN = 24
-    delta 24 In_SYN_V_V_0 = 24
-    delta 24 In_RCV = 23
-    delta 24 In_ACK_RST_V_V_0 = 2
-    delta 24 In_CLOSE = 24
-    delta 24 In_ACK_V_V_0 = 24
-    delta 25 In_CLOSECONNECTION = 4
-    delta 25 In_ACK_PSH_V_V_1 = 37
-    delta 25 In_SYN_ACK_V_V_0 = 16
-    delta 25 In_RST_V_V_0 = 16
-    delta 25 In_ACCEPT = 25
-    delta 25 In_FIN_ACK_V_V_0 = 38
-    delta 25 In_LISTEN = 25
-    delta 25 In_SYN_V_V_0 = 16
-    delta 25 In_RCV = 25
-    delta 25 In_ACK_RST_V_V_0 = 16
-    delta 25 In_CLOSE = 8
-    delta 25 In_ACK_V_V_0 = 39
-    delta 27 In_CLOSECONNECTION = 27
-    delta 27 In_ACK_PSH_V_V_1 = 27
-    delta 27 In_SYN_ACK_V_V_0 = 27
-    delta 27 In_RST_V_V_0 = 40
-    delta 27 In_ACCEPT = 38
-    delta 27 In_FIN_ACK_V_V_0 = 27
-    delta 27 In_LISTEN = 27
-    delta 27 In_SYN_V_V_0 = 27
-    delta 27 In_RCV = 27
-    delta 27 In_ACK_RST_V_V_0 = 40
-    delta 27 In_CLOSE = 2
-    delta 27 In_ACK_V_V_0 = 27
-    delta 28 In_CLOSECONNECTION = 28
-    delta 28 In_ACK_PSH_V_V_1 = 26
-    delta 28 In_SYN_ACK_V_V_0 = 28
-    delta 28 In_RST_V_V_0 = 40
-    delta 28 In_ACCEPT = 39
-    delta 28 In_FIN_ACK_V_V_0 = 27
-    delta 28 In_LISTEN = 28
-    delta 28 In_SYN_V_V_0 = 28
-    delta 28 In_RCV = 28
-    delta 28 In_ACK_RST_V_V_0 = 40
-    delta 28 In_CLOSE = 2
-    delta 28 In_ACK_V_V_0 = 28
-    delta 26 In_CLOSECONNECTION = 26
-    delta 26 In_ACK_PSH_V_V_1 = 26
-    delta 26 In_SYN_ACK_V_V_0 = 26
-    delta 26 In_RST_V_V_0 = 40
-    delta 26 In_ACCEPT = 37
-    delta 26 In_FIN_ACK_V_V_0 = 41
-    delta 26 In_LISTEN = 26
-    delta 26 In_SYN_V_V_0 = 26
-    delta 26 In_RCV = 26
-    delta 26 In_ACK_RST_V_V_0 = 40
-    delta 26 In_CLOSE = 2
-    delta 26 In_ACK_V_V_0 = 26
-    delta 31 In_CLOSECONNECTION = 31
-    delta 31 In_ACK_PSH_V_V_1 = 2
-    delta 31 In_SYN_ACK_V_V_0 = 31
-    delta 31 In_RST_V_V_0 = 2
-    delta 31 In_ACCEPT = 31
-    delta 31 In_FIN_ACK_V_V_0 = 42
-    delta 31 In_LISTEN = 31
-    delta 31 In_SYN_V_V_0 = 31
-    delta 31 In_RCV = 31
-    delta 31 In_ACK_RST_V_V_0 = 2
-    delta 31 In_CLOSE = 31
-    delta 31 In_ACK_V_V_0 = 43
-    delta 32 In_CLOSECONNECTION = 32
-    delta 32 In_ACK_PSH_V_V_1 = 1
-    delta 32 In_SYN_ACK_V_V_0 = 1
-    delta 32 In_RST_V_V_0 = 1
-    delta 32 In_ACCEPT = 44
-    delta 32 In_FIN_ACK_V_V_0 = 30
-    delta 32 In_LISTEN = 32
-    delta 32 In_SYN_V_V_0 = 1
-    delta 32 In_RCV = 32
-    delta 32 In_ACK_RST_V_V_0 = 1
-    delta 32 In_CLOSE = 43
-    delta 32 In_ACK_V_V_0 = 32
-    delta 29 In_CLOSECONNECTION = 19
-    delta 29 In_ACK_PSH_V_V_1 = 3
-    delta 29 In_SYN_ACK_V_V_0 = 29
-    delta 29 In_RST_V_V_0 = 3
-    delta 29 In_ACCEPT = 29
-    delta 29 In_FIN_ACK_V_V_0 = 45
-    delta 29 In_LISTEN = 29
-    delta 29 In_SYN_V_V_0 = 29
-    delta 29 In_RCV = 29
-    delta 29 In_ACK_RST_V_V_0 = 3
-    delta 29 In_CLOSE = 31
-    delta 29 In_ACK_V_V_0 = 44
-    delta 30 In_CLOSECONNECTION = 30
-    delta 30 In_ACK_PSH_V_V_1 = 30
-    delta 30 In_SYN_ACK_V_V_0 = 30
-    delta 30 In_RST_V_V_0 = 1
-    delta 30 In_ACCEPT = 45
-    delta 30 In_FIN_ACK_V_V_0 = 30
-    delta 30 In_LISTEN = 30
-    delta 30 In_SYN_V_V_0 = 30
-    delta 30 In_RCV = 30
-    delta 30 In_ACK_RST_V_V_0 = 1
-    delta 30 In_CLOSE = 42
-    delta 30 In_ACK_V_V_0 = 30
-    delta 33 In_CLOSECONNECTION = 31
-    delta 33 In_ACK_PSH_V_V_1 = 21
-    delta 33 In_SYN_ACK_V_V_0 = 33
-    delta 33 In_RST_V_V_0 = 2
-    delta 33 In_ACCEPT = 33
-    delta 33 In_FIN_ACK_V_V_0 = 23
-    delta 33 In_LISTEN = 33
-    delta 33 In_SYN_V_V_0 = 33
-    delta 33 In_RCV = 33
-    delta 33 In_ACK_RST_V_V_0 = 2
-    delta 33 In_CLOSE = 21
-    delta 33 In_ACK_V_V_0 = 33
-    delta 34 In_CLOSECONNECTION = 34
-    delta 34 In_ACK_PSH_V_V_1 = 8
-    delta 34 In_SYN_ACK_V_V_0 = 34
-    delta 34 In_RST_V_V_0 = 2
-    delta 34 In_ACCEPT = 34
-    delta 34 In_FIN_ACK_V_V_0 = 8
-    delta 34 In_LISTEN = 34
-    delta 34 In_SYN_V_V_0 = 34
-    delta 34 In_RCV = 34
-    delta 34 In_ACK_RST_V_V_0 = 2
-    delta 34 In_CLOSE = 34
-    delta 34 In_ACK_V_V_0 = 8
-    delta 35 In_CLOSECONNECTION = 35
-    delta 35 In_ACK_PSH_V_V_1 = 1
-    delta 35 In_SYN_ACK_V_V_0 = 1
-    delta 35 In_RST_V_V_0 = 1
-    delta 35 In_ACCEPT = 46
-    delta 35 In_FIN_ACK_V_V_0 = 1
-    delta 35 In_LISTEN = 35
-    delta 35 In_SYN_V_V_0 = 4
-    delta 35 In_RCV = 35
-    delta 35 In_ACK_RST_V_V_0 = 1
-    delta 35 In_CLOSE = 8
-    delta 35 In_ACK_V_V_0 = 1
-    delta 36 In_CLOSECONNECTION = 22
-    delta 36 In_ACK_PSH_V_V_1 = 46
-    delta 36 In_SYN_ACK_V_V_0 = 36
-    delta 36 In_RST_V_V_0 = 3
-    delta 36 In_ACCEPT = 36
-    delta 36 In_FIN_ACK_V_V_0 = 46
-    delta 36 In_LISTEN = 36
-    delta 36 In_SYN_V_V_0 = 36
-    delta 36 In_RCV = 36
-    delta 36 In_ACK_RST_V_V_0 = 3
-    delta 36 In_CLOSE = 34
-    delta 36 In_ACK_V_V_0 = 46
-    delta 37 In_CLOSECONNECTION = 5
-    delta 37 In_ACK_PSH_V_V_1 = 37
-    delta 37 In_SYN_ACK_V_V_0 = 37
-    delta 37 In_RST_V_V_0 = 47
-    delta 37 In_ACCEPT = 37
-    delta 37 In_FIN_ACK_V_V_0 = 48
-    delta 37 In_LISTEN = 37
-    delta 37 In_SYN_V_V_0 = 37
-    delta 37 In_RCV = 37
-    delta 37 In_ACK_RST_V_V_0 = 47
-    delta 37 In_CLOSE = 2
-    delta 37 In_ACK_V_V_0 = 37
-    delta 38 In_CLOSECONNECTION = 7
-    delta 38 In_ACK_PSH_V_V_1 = 38
-    delta 38 In_SYN_ACK_V_V_0 = 38
-    delta 38 In_RST_V_V_0 = 47
-    delta 38 In_ACCEPT = 38
-    delta 38 In_FIN_ACK_V_V_0 = 38
-    delta 38 In_LISTEN = 38
-    delta 38 In_SYN_V_V_0 = 38
-    delta 38 In_RCV = 38
-    delta 38 In_ACK_RST_V_V_0 = 47
-    delta 38 In_CLOSE = 2
-    delta 38 In_ACK_V_V_0 = 38
-    delta 39 In_CLOSECONNECTION = 9
-    delta 39 In_ACK_PSH_V_V_1 = 37
-    delta 39 In_SYN_ACK_V_V_0 = 39
-    delta 39 In_RST_V_V_0 = 47
-    delta 39 In_ACCEPT = 39
-    delta 39 In_FIN_ACK_V_V_0 = 38
-    delta 39 In_LISTEN = 39
-    delta 39 In_SYN_V_V_0 = 39
-    delta 39 In_RCV = 39
-    delta 39 In_ACK_RST_V_V_0 = 47
-    delta 39 In_CLOSE = 2
-    delta 39 In_ACK_V_V_0 = 39
-    delta 40 In_CLOSECONNECTION = 40
-    delta 40 In_ACK_PSH_V_V_1 = 40
-    delta 40 In_SYN_ACK_V_V_0 = 40
-    delta 40 In_RST_V_V_0 = 40
-    delta 40 In_ACCEPT = 47
-    delta 40 In_FIN_ACK_V_V_0 = 40
-    delta 40 In_LISTEN = 40
-    delta 40 In_SYN_V_V_0 = 49
-    delta 40 In_RCV = 40
-    delta 40 In_ACK_RST_V_V_0 = 40
-    delta 40 In_CLOSE = 2
-    delta 40 In_ACK_V_V_0 = 40
-    delta 41 In_CLOSECONNECTION = 41
-    delta 41 In_ACK_PSH_V_V_1 = 41
-    delta 41 In_SYN_ACK_V_V_0 = 41
-    delta 41 In_RST_V_V_0 = 40
-    delta 41 In_ACCEPT = 48
-    delta 41 In_FIN_ACK_V_V_0 = 41
-    delta 41 In_LISTEN = 41
-    delta 41 In_SYN_V_V_0 = 41
-    delta 41 In_RCV = 41
-    delta 41 In_ACK_RST_V_V_0 = 40
-    delta 41 In_CLOSE = 2
-    delta 41 In_ACK_V_V_0 = 41
-    delta 43 In_CLOSECONNECTION = 43
-    delta 43 In_ACK_PSH_V_V_1 = 2
-    delta 43 In_SYN_ACK_V_V_0 = 2
-    delta 43 In_RST_V_V_0 = 2
-    delta 43 In_ACCEPT = 43
-    delta 43 In_FIN_ACK_V_V_0 = 42
-    delta 43 In_LISTEN = 43
-    delta 43 In_SYN_V_V_0 = 2
-    delta 43 In_RCV = 43
-    delta 43 In_ACK_RST_V_V_0 = 2
-    delta 43 In_CLOSE = 43
-    delta 43 In_ACK_V_V_0 = 43
-    delta 42 In_CLOSECONNECTION = 42
-    delta 42 In_ACK_PSH_V_V_1 = 42
-    delta 42 In_SYN_ACK_V_V_0 = 42
-    delta 42 In_RST_V_V_0 = 2
-    delta 42 In_ACCEPT = 42
-    delta 42 In_FIN_ACK_V_V_0 = 42
-    delta 42 In_LISTEN = 42
-    delta 42 In_SYN_V_V_0 = 42
-    delta 42 In_RCV = 42
-    delta 42 In_ACK_RST_V_V_0 = 2
-    delta 42 In_CLOSE = 42
-    delta 42 In_ACK_V_V_0 = 42
-    delta 44 In_CLOSECONNECTION = 32
-    delta 44 In_ACK_PSH_V_V_1 = 3
-    delta 44 In_SYN_ACK_V_V_0 = 3
-    delta 44 In_RST_V_V_0 = 3
-    delta 44 In_ACCEPT = 44
-    delta 44 In_FIN_ACK_V_V_0 = 45
-    delta 44 In_LISTEN = 44
-    delta 44 In_SYN_V_V_0 = 3
-    delta 44 In_RCV = 44
-    delta 44 In_ACK_RST_V_V_0 = 3
-    delta 44 In_CLOSE = 43
-    delta 44 In_ACK_V_V_0 = 44
-    delta 45 In_CLOSECONNECTION = 30
-    delta 45 In_ACK_PSH_V_V_1 = 45
-    delta 45 In_SYN_ACK_V_V_0 = 45
-    delta 45 In_RST_V_V_0 = 3
-    delta 45 In_ACCEPT = 45
-    delta 45 In_FIN_ACK_V_V_0 = 45
-    delta 45 In_LISTEN = 45
-    delta 45 In_SYN_V_V_0 = 45
-    delta 45 In_RCV = 45
-    delta 45 In_ACK_RST_V_V_0 = 3
-    delta 45 In_CLOSE = 42
-    delta 45 In_ACK_V_V_0 = 45
-    delta 46 In_CLOSECONNECTION = 35
-    delta 46 In_ACK_PSH_V_V_1 = 3
-    delta 46 In_SYN_ACK_V_V_0 = 3
-    delta 46 In_RST_V_V_0 = 3
-    delta 46 In_ACCEPT = 46
-    delta 46 In_FIN_ACK_V_V_0 = 3
-    delta 46 In_LISTEN = 46
-    delta 46 In_SYN_V_V_0 = 6
-    delta 46 In_RCV = 46
-    delta 46 In_ACK_RST_V_V_0 = 3
-    delta 46 In_CLOSE = 8
-    delta 46 In_ACK_V_V_0 = 3
-    delta 48 In_CLOSECONNECTION = 12
-    delta 48 In_ACK_PSH_V_V_1 = 48
-    delta 48 In_SYN_ACK_V_V_0 = 48
-    delta 48 In_RST_V_V_0 = 47
-    delta 48 In_ACCEPT = 48
-    delta 48 In_FIN_ACK_V_V_0 = 48
-    delta 48 In_LISTEN = 48
-    delta 48 In_SYN_V_V_0 = 48
-    delta 48 In_RCV = 48
-    delta 48 In_ACK_RST_V_V_0 = 47
-    delta 48 In_CLOSE = 2
-    delta 48 In_ACK_V_V_0 = 48
-    delta 47 In_CLOSECONNECTION = 10
-    delta 47 In_ACK_PSH_V_V_1 = 47
-    delta 47 In_SYN_ACK_V_V_0 = 47
-    delta 47 In_RST_V_V_0 = 47
-    delta 47 In_ACCEPT = 47
-    delta 47 In_FIN_ACK_V_V_0 = 47
-    delta 47 In_LISTEN = 47
-    delta 47 In_SYN_V_V_0 = 50
-    delta 47 In_RCV = 47
-    delta 47 In_ACK_RST_V_V_0 = 47
-    delta 47 In_CLOSE = 2
-    delta 47 In_ACK_V_V_0 = 47
-    delta 49 In_CLOSECONNECTION = 49
-    delta 49 In_ACK_PSH_V_V_1 = 49
-    delta 49 In_SYN_ACK_V_V_0 = 40
-    delta 49 In_RST_V_V_0 = 40
-    delta 49 In_ACCEPT = 50
-    delta 49 In_FIN_ACK_V_V_0 = 49
-    delta 49 In_LISTEN = 49
-    delta 49 In_SYN_V_V_0 = 40
-    delta 49 In_RCV = 49
-    delta 49 In_ACK_RST_V_V_0 = 40
-    delta 49 In_CLOSE = 8
-    delta 49 In_ACK_V_V_0 = 49
-    delta 50 In_CLOSECONNECTION = 18
-    delta 50 In_ACK_PSH_V_V_1 = 51
-    delta 50 In_SYN_ACK_V_V_0 = 47
-    delta 50 In_RST_V_V_0 = 47
-    delta 50 In_ACCEPT = 50
-    delta 50 In_FIN_ACK_V_V_0 = 52
-    delta 50 In_LISTEN = 50
-    delta 50 In_SYN_V_V_0 = 47
-    delta 50 In_RCV = 50
-    delta 50 In_ACK_RST_V_V_0 = 47
-    delta 50 In_CLOSE = 8
-    delta 50 In_ACK_V_V_0 = 53
-    delta 53 In_CLOSECONNECTION = 28
-    delta 53 In_ACK_PSH_V_V_1 = 51
-    delta 53 In_SYN_ACK_V_V_0 = 53
-    delta 53 In_RST_V_V_0 = 54
-    delta 53 In_ACCEPT = 53
-    delta 53 In_FIN_ACK_V_V_0 = 52
-    delta 53 In_LISTEN = 53
-    delta 53 In_SYN_V_V_0 = 53
-    delta 53 In_RCV = 53
-    delta 53 In_ACK_RST_V_V_0 = 54
-    delta 53 In_CLOSE = 2
-    delta 53 In_ACK_V_V_0 = 53
-    delta 51 In_CLOSECONNECTION = 26
-    delta 51 In_ACK_PSH_V_V_1 = 51
-    delta 51 In_SYN_ACK_V_V_0 = 51
-    delta 51 In_RST_V_V_0 = 54
-    delta 51 In_ACCEPT = 51
-    delta 51 In_FIN_ACK_V_V_0 = 55
-    delta 51 In_LISTEN = 51
-    delta 51 In_SYN_V_V_0 = 51
-    delta 51 In_RCV = 51
-    delta 51 In_ACK_RST_V_V_0 = 54
-    delta 51 In_CLOSE = 2
-    delta 51 In_ACK_V_V_0 = 51
-    delta 52 In_CLOSECONNECTION = 27
-    delta 52 In_ACK_PSH_V_V_1 = 52
-    delta 52 In_SYN_ACK_V_V_0 = 52
-    delta 52 In_RST_V_V_0 = 54
-    delta 52 In_ACCEPT = 52
-    delta 52 In_FIN_ACK_V_V_0 = 52
-    delta 52 In_LISTEN = 52
-    delta 52 In_SYN_V_V_0 = 52
-    delta 52 In_RCV = 52
-    delta 52 In_ACK_RST_V_V_0 = 54
-    delta 52 In_CLOSE = 2
-    delta 52 In_ACK_V_V_0 = 52
-    delta 54 In_CLOSECONNECTION = 40
-    delta 54 In_ACK_PSH_V_V_1 = 54
-    delta 54 In_SYN_ACK_V_V_0 = 54
-    delta 54 In_RST_V_V_0 = 54
-    delta 54 In_ACCEPT = 54
-    delta 54 In_FIN_ACK_V_V_0 = 54
-    delta 54 In_LISTEN = 54
-    delta 54 In_SYN_V_V_0 = 56
-    delta 54 In_RCV = 54
-    delta 54 In_ACK_RST_V_V_0 = 54
-    delta 54 In_CLOSE = 2
-    delta 54 In_ACK_V_V_0 = 54
-    delta 55 In_CLOSECONNECTION = 41
-    delta 55 In_ACK_PSH_V_V_1 = 55
-    delta 55 In_SYN_ACK_V_V_0 = 55
-    delta 55 In_RST_V_V_0 = 54
-    delta 55 In_ACCEPT = 55
-    delta 55 In_FIN_ACK_V_V_0 = 55
-    delta 55 In_LISTEN = 55
-    delta 55 In_SYN_V_V_0 = 55
-    delta 55 In_RCV = 55
-    delta 55 In_ACK_RST_V_V_0 = 54
-    delta 55 In_CLOSE = 2
-    delta 55 In_ACK_V_V_0 = 55
-    delta 56 In_CLOSECONNECTION = 49
-    delta 56 In_ACK_PSH_V_V_1 = 56
-    delta 56 In_SYN_ACK_V_V_0 = 54
-    delta 56 In_RST_V_V_0 = 54
-    delta 56 In_ACCEPT = 56
-    delta 56 In_FIN_ACK_V_V_0 = 56
-    delta 56 In_LISTEN = 56
-    delta 56 In_SYN_V_V_0 = 54
-    delta 56 In_RCV = 56
-    delta 56 In_ACK_RST_V_V_0 = 54
-    delta 56 In_CLOSE = 8
-    delta 56 In_ACK_V_V_0 = 56
-    delta _ _ = error "haal-gen: undefined transition"
-    lambda 0 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 0 In_ACK_PSH_V_V_1 = Out_RST_ZERO_ZERO_0
-    lambda 0 In_SYN_ACK_V_V_0 = Out_RST_ZERO_ZERO_0
-    lambda 0 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 0 In_ACCEPT = Out_TIMEOUT
-    lambda 0 In_FIN_ACK_V_V_0 = Out_RST_ZERO_ZERO_0
-    lambda 0 In_LISTEN = Out_TIMEOUT
-    lambda 0 In_SYN_V_V_0 = Out_ACK_RST_ZERO_NEXT_0
-    lambda 0 In_RCV = Out_TIMEOUT
-    lambda 0 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 0 In_CLOSE = Out_TIMEOUT
-    lambda 0 In_ACK_V_V_0 = Out_RST_ZERO_ZERO_0
-    lambda 1 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 1 In_ACK_PSH_V_V_1 = Out_RST_ZERO_ZERO_0
-    lambda 1 In_SYN_ACK_V_V_0 = Out_RST_ZERO_ZERO_0
-    lambda 1 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 1 In_ACCEPT = Out_TIMEOUT
-    lambda 1 In_FIN_ACK_V_V_0 = Out_RST_ZERO_ZERO_0
-    lambda 1 In_LISTEN = Out_TIMEOUT
-    lambda 1 In_SYN_V_V_0 = Out_ACK_SYN_FRESH_NEXT_0
-    lambda 1 In_RCV = Out_TIMEOUT
-    lambda 1 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 1 In_CLOSE = Out_TIMEOUT
-    lambda 1 In_ACK_V_V_0 = Out_RST_ZERO_ZERO_0
-    lambda 2 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 2 In_ACK_PSH_V_V_1 = Out_RST_ZERO_ZERO_0
-    lambda 2 In_SYN_ACK_V_V_0 = Out_RST_ZERO_ZERO_0
-    lambda 2 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 2 In_ACCEPT = Out_TIMEOUT
-    lambda 2 In_FIN_ACK_V_V_0 = Out_RST_ZERO_ZERO_0
-    lambda 2 In_LISTEN = Out_TIMEOUT
-    lambda 2 In_SYN_V_V_0 = Out_ACK_RST_ZERO_NEXT_0
-    lambda 2 In_RCV = Out_TIMEOUT
-    lambda 2 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 2 In_CLOSE = Out_TIMEOUT
-    lambda 2 In_ACK_V_V_0 = Out_RST_ZERO_ZERO_0
-    lambda 4 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 4 In_ACK_PSH_V_V_1 = Out_ACK_NEXT_NEXT_0
-    lambda 4 In_SYN_ACK_V_V_0 = Out_RST_NEXT_ZERO_0
-    lambda 4 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 4 In_ACCEPT = Out_TIMEOUT
-    lambda 4 In_FIN_ACK_V_V_0 = Out_ACK_NEXT_NEXT_0
-    lambda 4 In_LISTEN = Out_TIMEOUT
-    lambda 4 In_SYN_V_V_0 = Out_ACK_RST_ZERO_NEXT_0
-    lambda 4 In_RCV = Out_TIMEOUT
-    lambda 4 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 4 In_CLOSE = Out_TIMEOUT
-    lambda 4 In_ACK_V_V_0 = Out_TIMEOUT
-    lambda 3 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 3 In_ACK_PSH_V_V_1 = Out_RST_ZERO_ZERO_0
-    lambda 3 In_SYN_ACK_V_V_0 = Out_RST_ZERO_ZERO_0
-    lambda 3 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 3 In_ACCEPT = Out_TIMEOUT
-    lambda 3 In_FIN_ACK_V_V_0 = Out_RST_ZERO_ZERO_0
-    lambda 3 In_LISTEN = Out_TIMEOUT
-    lambda 3 In_SYN_V_V_0 = Out_ACK_SYN_FRESH_NEXT_0
-    lambda 3 In_RCV = Out_TIMEOUT
-    lambda 3 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 3 In_CLOSE = Out_TIMEOUT
-    lambda 3 In_ACK_V_V_0 = Out_RST_ZERO_ZERO_0
-    lambda 5 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 5 In_ACK_PSH_V_V_1 = Out_ACK_NEXT_NEXT_0
-    lambda 5 In_SYN_ACK_V_V_0 = Out_ACK_NEXT_CURRENT_0
-    lambda 5 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 5 In_ACCEPT = Out_TIMEOUT
-    lambda 5 In_FIN_ACK_V_V_0 = Out_ACK_NEXT_NEXT_0
-    lambda 5 In_LISTEN = Out_TIMEOUT
-    lambda 5 In_SYN_V_V_0 = Out_TIMEOUT
-    lambda 5 In_RCV = Out_TIMEOUT
-    lambda 5 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 5 In_CLOSE = Out_ACK_RST_NEXT_CURRENT_0
-    lambda 5 In_ACK_V_V_0 = Out_TIMEOUT
-    lambda 9 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 9 In_ACK_PSH_V_V_1 = Out_ACK_NEXT_NEXT_0
-    lambda 9 In_SYN_ACK_V_V_0 = Out_ACK_NEXT_CURRENT_0
-    lambda 9 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 9 In_ACCEPT = Out_TIMEOUT
-    lambda 9 In_FIN_ACK_V_V_0 = Out_ACK_NEXT_NEXT_0
-    lambda 9 In_LISTEN = Out_TIMEOUT
-    lambda 9 In_SYN_V_V_0 = Out_TIMEOUT
-    lambda 9 In_RCV = Out_TIMEOUT
-    lambda 9 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 9 In_CLOSE = Out_ACK_RST_NEXT_CURRENT_0
-    lambda 9 In_ACK_V_V_0 = Out_TIMEOUT
-    lambda 7 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 7 In_ACK_PSH_V_V_1 = Out_TIMEOUT
-    lambda 7 In_SYN_ACK_V_V_0 = Out_ACK_NEXT_CURRENT_0
-    lambda 7 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 7 In_ACCEPT = Out_TIMEOUT
-    lambda 7 In_FIN_ACK_V_V_0 = Out_TIMEOUT
-    lambda 7 In_LISTEN = Out_TIMEOUT
-    lambda 7 In_SYN_V_V_0 = Out_TIMEOUT
-    lambda 7 In_RCV = Out_TIMEOUT
-    lambda 7 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 7 In_CLOSE = Out_ACK_RST_NEXT_CURRENT_0
-    lambda 7 In_ACK_V_V_0 = Out_TIMEOUT
-    lambda 8 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 8 In_ACK_PSH_V_V_1 = Out_RST_NEXT_ZERO_0
-    lambda 8 In_SYN_ACK_V_V_0 = Out_RST_NEXT_ZERO_0
-    lambda 8 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 8 In_ACCEPT = Out_TIMEOUT
-    lambda 8 In_FIN_ACK_V_V_0 = Out_RST_NEXT_ZERO_0
-    lambda 8 In_LISTEN = Out_TIMEOUT
-    lambda 8 In_SYN_V_V_0 = Out_ACK_RST_ZERO_NEXT_0
-    lambda 8 In_RCV = Out_TIMEOUT
-    lambda 8 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 8 In_CLOSE = Out_TIMEOUT
-    lambda 8 In_ACK_V_V_0 = Out_RST_NEXT_ZERO_0
-    lambda 6 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 6 In_ACK_PSH_V_V_1 = Out_ACK_NEXT_NEXT_0
-    lambda 6 In_SYN_ACK_V_V_0 = Out_RST_NEXT_ZERO_0
-    lambda 6 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 6 In_ACCEPT = Out_TIMEOUT
-    lambda 6 In_FIN_ACK_V_V_0 = Out_ACK_NEXT_NEXT_0
-    lambda 6 In_LISTEN = Out_TIMEOUT
-    lambda 6 In_SYN_V_V_0 = Out_ACK_RST_ZERO_NEXT_0
-    lambda 6 In_RCV = Out_TIMEOUT
-    lambda 6 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 6 In_CLOSE = Out_TIMEOUT
-    lambda 6 In_ACK_V_V_0 = Out_TIMEOUT
-    lambda 12 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 12 In_ACK_PSH_V_V_1 = Out_TIMEOUT
-    lambda 12 In_SYN_ACK_V_V_0 = Out_ACK_NEXT_CURRENT_0
-    lambda 12 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 12 In_ACCEPT = Out_TIMEOUT
-    lambda 12 In_FIN_ACK_V_V_0 = Out_TIMEOUT
-    lambda 12 In_LISTEN = Out_TIMEOUT
-    lambda 12 In_SYN_V_V_0 = Out_TIMEOUT
-    lambda 12 In_RCV = Out_TIMEOUT
-    lambda 12 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 12 In_CLOSE = Out_ACK_RST_NEXT_CURRENT_0
-    lambda 12 In_ACK_V_V_0 = Out_TIMEOUT
-    lambda 11 In_CLOSECONNECTION = Out_ACK_RST_NEXT_CURRENT_0
-    lambda 11 In_ACK_PSH_V_V_1 = Out_ACK_NEXT_NEXT_0
-    lambda 11 In_SYN_ACK_V_V_0 = Out_ACK_NEXT_CURRENT_0
-    lambda 11 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 11 In_ACCEPT = Out_TIMEOUT
-    lambda 11 In_FIN_ACK_V_V_0 = Out_ACK_NEXT_NEXT_0
-    lambda 11 In_LISTEN = Out_TIMEOUT
-    lambda 11 In_SYN_V_V_0 = Out_TIMEOUT
-    lambda 11 In_RCV = Out_TIMEOUT
-    lambda 11 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 11 In_CLOSE = Out_TIMEOUT
-    lambda 11 In_ACK_V_V_0 = Out_TIMEOUT
-    lambda 10 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 10 In_ACK_PSH_V_V_1 = Out_RST_ZERO_ZERO_0
-    lambda 10 In_SYN_ACK_V_V_0 = Out_RST_ZERO_ZERO_0
-    lambda 10 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 10 In_ACCEPT = Out_TIMEOUT
-    lambda 10 In_FIN_ACK_V_V_0 = Out_RST_ZERO_ZERO_0
-    lambda 10 In_LISTEN = Out_TIMEOUT
-    lambda 10 In_SYN_V_V_0 = Out_ACK_SYN_FRESH_NEXT_0
-    lambda 10 In_RCV = Out_TIMEOUT
-    lambda 10 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 10 In_CLOSE = Out_TIMEOUT
-    lambda 10 In_ACK_V_V_0 = Out_RST_ZERO_ZERO_0
-    lambda 13 In_CLOSECONNECTION = Out_ACK_FIN_NEXT_CURRENT_0
-    lambda 13 In_ACK_PSH_V_V_1 = Out_ACK_NEXT_NEXT_0
-    lambda 13 In_SYN_ACK_V_V_0 = Out_ACK_NEXT_CURRENT_0
-    lambda 13 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 13 In_ACCEPT = Out_TIMEOUT
-    lambda 13 In_FIN_ACK_V_V_0 = Out_ACK_NEXT_NEXT_0
-    lambda 13 In_LISTEN = Out_TIMEOUT
-    lambda 13 In_SYN_V_V_0 = Out_TIMEOUT
-    lambda 13 In_RCV = Out_TIMEOUT
-    lambda 13 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 13 In_CLOSE = Out_TIMEOUT
-    lambda 13 In_ACK_V_V_0 = Out_TIMEOUT
-    lambda 14 In_CLOSECONNECTION = Out_ACK_FIN_NEXT_CURRENT_0
-    lambda 14 In_ACK_PSH_V_V_1 = Out_TIMEOUT
-    lambda 14 In_SYN_ACK_V_V_0 = Out_ACK_NEXT_CURRENT_0
-    lambda 14 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 14 In_ACCEPT = Out_TIMEOUT
-    lambda 14 In_FIN_ACK_V_V_0 = Out_TIMEOUT
-    lambda 14 In_LISTEN = Out_TIMEOUT
-    lambda 14 In_SYN_V_V_0 = Out_TIMEOUT
-    lambda 14 In_RCV = Out_TIMEOUT
-    lambda 14 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 14 In_CLOSE = Out_TIMEOUT
-    lambda 14 In_ACK_V_V_0 = Out_TIMEOUT
-    lambda 15 In_CLOSECONNECTION = Out_ACK_RST_NEXT_CURRENT_0
-    lambda 15 In_ACK_PSH_V_V_1 = Out_TIMEOUT
-    lambda 15 In_SYN_ACK_V_V_0 = Out_ACK_NEXT_CURRENT_0
-    lambda 15 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 15 In_ACCEPT = Out_TIMEOUT
-    lambda 15 In_FIN_ACK_V_V_0 = Out_TIMEOUT
-    lambda 15 In_LISTEN = Out_TIMEOUT
-    lambda 15 In_SYN_V_V_0 = Out_TIMEOUT
-    lambda 15 In_RCV = Out_TIMEOUT
-    lambda 15 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 15 In_CLOSE = Out_TIMEOUT
-    lambda 15 In_ACK_V_V_0 = Out_TIMEOUT
-    lambda 17 In_CLOSECONNECTION = Out_ACK_RST_NEXT_CURRENT_0
-    lambda 17 In_ACK_PSH_V_V_1 = Out_ACK_NEXT_NEXT_0
-    lambda 17 In_SYN_ACK_V_V_0 = Out_ACK_NEXT_CURRENT_0
-    lambda 17 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 17 In_ACCEPT = Out_TIMEOUT
-    lambda 17 In_FIN_ACK_V_V_0 = Out_ACK_NEXT_NEXT_0
-    lambda 17 In_LISTEN = Out_TIMEOUT
-    lambda 17 In_SYN_V_V_0 = Out_TIMEOUT
-    lambda 17 In_RCV = Out_TIMEOUT
-    lambda 17 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 17 In_CLOSE = Out_TIMEOUT
-    lambda 17 In_ACK_V_V_0 = Out_TIMEOUT
-    lambda 16 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 16 In_ACK_PSH_V_V_1 = Out_RST_ZERO_ZERO_0
-    lambda 16 In_SYN_ACK_V_V_0 = Out_RST_ZERO_ZERO_0
-    lambda 16 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 16 In_ACCEPT = Out_TIMEOUT
-    lambda 16 In_FIN_ACK_V_V_0 = Out_RST_ZERO_ZERO_0
-    lambda 16 In_LISTEN = Out_TIMEOUT
-    lambda 16 In_SYN_V_V_0 = Out_ACK_SYN_FRESH_NEXT_0
-    lambda 16 In_RCV = Out_TIMEOUT
-    lambda 16 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 16 In_CLOSE = Out_TIMEOUT
-    lambda 16 In_ACK_V_V_0 = Out_RST_ZERO_ZERO_0
-    lambda 18 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 18 In_ACK_PSH_V_V_1 = Out_ACK_NEXT_NEXT_0
-    lambda 18 In_SYN_ACK_V_V_0 = Out_RST_NEXT_ZERO_0
-    lambda 18 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 18 In_ACCEPT = Out_TIMEOUT
-    lambda 18 In_FIN_ACK_V_V_0 = Out_ACK_NEXT_NEXT_0
-    lambda 18 In_LISTEN = Out_TIMEOUT
-    lambda 18 In_SYN_V_V_0 = Out_ACK_RST_ZERO_NEXT_0
-    lambda 18 In_RCV = Out_TIMEOUT
-    lambda 18 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 18 In_CLOSE = Out_TIMEOUT
-    lambda 18 In_ACK_V_V_0 = Out_TIMEOUT
-    lambda 19 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 19 In_ACK_PSH_V_V_1 = Out_RST_NEXT_ZERO_0
-    lambda 19 In_SYN_ACK_V_V_0 = Out_ACK_NEXT_CURRENT_0
-    lambda 19 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 19 In_ACCEPT = Out_TIMEOUT
-    lambda 19 In_FIN_ACK_V_V_0 = Out_ACK_NEXT_NEXT_0
-    lambda 19 In_LISTEN = Out_TIMEOUT
-    lambda 19 In_SYN_V_V_0 = Out_TIMEOUT
-    lambda 19 In_RCV = Out_TIMEOUT
-    lambda 19 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 19 In_CLOSE = Out_TIMEOUT
-    lambda 19 In_ACK_V_V_0 = Out_TIMEOUT
-    lambda 20 In_CLOSECONNECTION = Out_ACK_FIN_NEXT_CURRENT_0
-    lambda 20 In_ACK_PSH_V_V_1 = Out_ACK_NEXT_NEXT_0
-    lambda 20 In_SYN_ACK_V_V_0 = Out_ACK_NEXT_CURRENT_0
-    lambda 20 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 20 In_ACCEPT = Out_TIMEOUT
-    lambda 20 In_FIN_ACK_V_V_0 = Out_ACK_NEXT_NEXT_0
-    lambda 20 In_LISTEN = Out_TIMEOUT
-    lambda 20 In_SYN_V_V_0 = Out_TIMEOUT
-    lambda 20 In_RCV = Out_TIMEOUT
-    lambda 20 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 20 In_CLOSE = Out_TIMEOUT
-    lambda 20 In_ACK_V_V_0 = Out_TIMEOUT
-    lambda 21 In_CLOSECONNECTION = Out_ACK_FIN_NEXT_CURRENT_0
-    lambda 21 In_ACK_PSH_V_V_1 = Out_ACK_NEXT_NEXT_0
-    lambda 21 In_SYN_ACK_V_V_0 = Out_ACK_NEXT_CURRENT_0
-    lambda 21 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 21 In_ACCEPT = Out_TIMEOUT
-    lambda 21 In_FIN_ACK_V_V_0 = Out_ACK_NEXT_NEXT_0
-    lambda 21 In_LISTEN = Out_TIMEOUT
-    lambda 21 In_SYN_V_V_0 = Out_TIMEOUT
-    lambda 21 In_RCV = Out_TIMEOUT
-    lambda 21 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 21 In_CLOSE = Out_TIMEOUT
-    lambda 21 In_ACK_V_V_0 = Out_TIMEOUT
-    lambda 23 In_CLOSECONNECTION = Out_ACK_FIN_NEXT_CURRENT_0
-    lambda 23 In_ACK_PSH_V_V_1 = Out_TIMEOUT
-    lambda 23 In_SYN_ACK_V_V_0 = Out_ACK_NEXT_CURRENT_0
-    lambda 23 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 23 In_ACCEPT = Out_TIMEOUT
-    lambda 23 In_FIN_ACK_V_V_0 = Out_TIMEOUT
-    lambda 23 In_LISTEN = Out_TIMEOUT
-    lambda 23 In_SYN_V_V_0 = Out_TIMEOUT
-    lambda 23 In_RCV = Out_TIMEOUT
-    lambda 23 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 23 In_CLOSE = Out_TIMEOUT
-    lambda 23 In_ACK_V_V_0 = Out_TIMEOUT
-    lambda 22 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 22 In_ACK_PSH_V_V_1 = Out_TIMEOUT
-    lambda 22 In_SYN_ACK_V_V_0 = Out_ACK_NEXT_CURRENT_0
-    lambda 22 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 22 In_ACCEPT = Out_TIMEOUT
-    lambda 22 In_FIN_ACK_V_V_0 = Out_TIMEOUT
-    lambda 22 In_LISTEN = Out_TIMEOUT
-    lambda 22 In_SYN_V_V_0 = Out_TIMEOUT
-    lambda 22 In_RCV = Out_TIMEOUT
-    lambda 22 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 22 In_CLOSE = Out_TIMEOUT
-    lambda 22 In_ACK_V_V_0 = Out_TIMEOUT
-    lambda 24 In_CLOSECONNECTION = Out_ACK_RST_NEXT_CURRENT_0
-    lambda 24 In_ACK_PSH_V_V_1 = Out_TIMEOUT
-    lambda 24 In_SYN_ACK_V_V_0 = Out_ACK_NEXT_CURRENT_0
-    lambda 24 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 24 In_ACCEPT = Out_TIMEOUT
-    lambda 24 In_FIN_ACK_V_V_0 = Out_TIMEOUT
-    lambda 24 In_LISTEN = Out_TIMEOUT
-    lambda 24 In_SYN_V_V_0 = Out_TIMEOUT
-    lambda 24 In_RCV = Out_TIMEOUT
-    lambda 24 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 24 In_CLOSE = Out_TIMEOUT
-    lambda 24 In_ACK_V_V_0 = Out_TIMEOUT
-    lambda 25 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 25 In_ACK_PSH_V_V_1 = Out_ACK_NEXT_NEXT_0
-    lambda 25 In_SYN_ACK_V_V_0 = Out_RST_NEXT_ZERO_0
-    lambda 25 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 25 In_ACCEPT = Out_TIMEOUT
-    lambda 25 In_FIN_ACK_V_V_0 = Out_ACK_NEXT_NEXT_0
-    lambda 25 In_LISTEN = Out_TIMEOUT
-    lambda 25 In_SYN_V_V_0 = Out_ACK_RST_ZERO_NEXT_0
-    lambda 25 In_RCV = Out_TIMEOUT
-    lambda 25 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 25 In_CLOSE = Out_TIMEOUT
-    lambda 25 In_ACK_V_V_0 = Out_TIMEOUT
-    lambda 27 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 27 In_ACK_PSH_V_V_1 = Out_TIMEOUT
-    lambda 27 In_SYN_ACK_V_V_0 = Out_ACK_NEXT_CURRENT_0
-    lambda 27 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 27 In_ACCEPT = Out_TIMEOUT
-    lambda 27 In_FIN_ACK_V_V_0 = Out_TIMEOUT
-    lambda 27 In_LISTEN = Out_TIMEOUT
-    lambda 27 In_SYN_V_V_0 = Out_TIMEOUT
-    lambda 27 In_RCV = Out_TIMEOUT
-    lambda 27 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 27 In_CLOSE = Out_ACK_RST_NEXT_CURRENT_0
-    lambda 27 In_ACK_V_V_0 = Out_TIMEOUT
-    lambda 28 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 28 In_ACK_PSH_V_V_1 = Out_ACK_NEXT_NEXT_0
-    lambda 28 In_SYN_ACK_V_V_0 = Out_ACK_NEXT_CURRENT_0
-    lambda 28 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 28 In_ACCEPT = Out_TIMEOUT
-    lambda 28 In_FIN_ACK_V_V_0 = Out_ACK_NEXT_NEXT_0
-    lambda 28 In_LISTEN = Out_TIMEOUT
-    lambda 28 In_SYN_V_V_0 = Out_TIMEOUT
-    lambda 28 In_RCV = Out_TIMEOUT
-    lambda 28 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 28 In_CLOSE = Out_ACK_RST_NEXT_CURRENT_0
-    lambda 28 In_ACK_V_V_0 = Out_TIMEOUT
-    lambda 26 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 26 In_ACK_PSH_V_V_1 = Out_ACK_NEXT_NEXT_0
-    lambda 26 In_SYN_ACK_V_V_0 = Out_ACK_NEXT_CURRENT_0
-    lambda 26 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 26 In_ACCEPT = Out_TIMEOUT
-    lambda 26 In_FIN_ACK_V_V_0 = Out_ACK_NEXT_NEXT_0
-    lambda 26 In_LISTEN = Out_TIMEOUT
-    lambda 26 In_SYN_V_V_0 = Out_TIMEOUT
-    lambda 26 In_RCV = Out_TIMEOUT
-    lambda 26 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 26 In_CLOSE = Out_ACK_RST_NEXT_CURRENT_0
-    lambda 26 In_ACK_V_V_0 = Out_TIMEOUT
-    lambda 31 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 31 In_ACK_PSH_V_V_1 = Out_RST_NEXT_ZERO_0
-    lambda 31 In_SYN_ACK_V_V_0 = Out_ACK_NEXT_CURRENT_0
-    lambda 31 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 31 In_ACCEPT = Out_TIMEOUT
-    lambda 31 In_FIN_ACK_V_V_0 = Out_ACK_NEXT_NEXT_0
-    lambda 31 In_LISTEN = Out_TIMEOUT
-    lambda 31 In_SYN_V_V_0 = Out_TIMEOUT
-    lambda 31 In_RCV = Out_TIMEOUT
-    lambda 31 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 31 In_CLOSE = Out_TIMEOUT
-    lambda 31 In_ACK_V_V_0 = Out_TIMEOUT
-    lambda 32 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 32 In_ACK_PSH_V_V_1 = Out_RST_NEXT_ZERO_0
-    lambda 32 In_SYN_ACK_V_V_0 = Out_RST_NEXT_ZERO_0
-    lambda 32 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 32 In_ACCEPT = Out_TIMEOUT
-    lambda 32 In_FIN_ACK_V_V_0 = Out_ACK_NEXT_NEXT_0
-    lambda 32 In_LISTEN = Out_TIMEOUT
-    lambda 32 In_SYN_V_V_0 = Out_ACK_RST_ZERO_NEXT_0
-    lambda 32 In_RCV = Out_TIMEOUT
-    lambda 32 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 32 In_CLOSE = Out_TIMEOUT
-    lambda 32 In_ACK_V_V_0 = Out_TIMEOUT
-    lambda 29 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 29 In_ACK_PSH_V_V_1 = Out_RST_NEXT_ZERO_0
-    lambda 29 In_SYN_ACK_V_V_0 = Out_ACK_NEXT_CURRENT_0
-    lambda 29 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 29 In_ACCEPT = Out_TIMEOUT
-    lambda 29 In_FIN_ACK_V_V_0 = Out_ACK_NEXT_NEXT_0
-    lambda 29 In_LISTEN = Out_TIMEOUT
-    lambda 29 In_SYN_V_V_0 = Out_TIMEOUT
-    lambda 29 In_RCV = Out_TIMEOUT
-    lambda 29 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 29 In_CLOSE = Out_TIMEOUT
-    lambda 29 In_ACK_V_V_0 = Out_TIMEOUT
-    lambda 30 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 30 In_ACK_PSH_V_V_1 = Out_ACK_NEXT_CURRENT_0
-    lambda 30 In_SYN_ACK_V_V_0 = Out_ACK_NEXT_CURRENT_0
-    lambda 30 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 30 In_ACCEPT = Out_TIMEOUT
-    lambda 30 In_FIN_ACK_V_V_0 = Out_ACK_NEXT_CURRENT_0
-    lambda 30 In_LISTEN = Out_TIMEOUT
-    lambda 30 In_SYN_V_V_0 = Out_ACK_NEXT_CURRENT_0
-    lambda 30 In_RCV = Out_TIMEOUT
-    lambda 30 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 30 In_CLOSE = Out_TIMEOUT
-    lambda 30 In_ACK_V_V_0 = Out_TIMEOUT
-    lambda 33 In_CLOSECONNECTION = Out_ACK_FIN_NEXT_CURRENT_0
-    lambda 33 In_ACK_PSH_V_V_1 = Out_ACK_NEXT_NEXT_0
-    lambda 33 In_SYN_ACK_V_V_0 = Out_ACK_NEXT_CURRENT_0
-    lambda 33 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 33 In_ACCEPT = Out_TIMEOUT
-    lambda 33 In_FIN_ACK_V_V_0 = Out_ACK_NEXT_NEXT_0
-    lambda 33 In_LISTEN = Out_TIMEOUT
-    lambda 33 In_SYN_V_V_0 = Out_TIMEOUT
-    lambda 33 In_RCV = Out_TIMEOUT
-    lambda 33 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 33 In_CLOSE = Out_TIMEOUT
-    lambda 33 In_ACK_V_V_0 = Out_TIMEOUT
-    lambda 34 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 34 In_ACK_PSH_V_V_1 = Out_TIMEOUT
-    lambda 34 In_SYN_ACK_V_V_0 = Out_ACK_NEXT_CURRENT_0
-    lambda 34 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 34 In_ACCEPT = Out_TIMEOUT
-    lambda 34 In_FIN_ACK_V_V_0 = Out_TIMEOUT
-    lambda 34 In_LISTEN = Out_TIMEOUT
-    lambda 34 In_SYN_V_V_0 = Out_TIMEOUT
-    lambda 34 In_RCV = Out_TIMEOUT
-    lambda 34 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 34 In_CLOSE = Out_TIMEOUT
-    lambda 34 In_ACK_V_V_0 = Out_TIMEOUT
-    lambda 35 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 35 In_ACK_PSH_V_V_1 = Out_RST_NEXT_ZERO_0
-    lambda 35 In_SYN_ACK_V_V_0 = Out_RST_NEXT_ZERO_0
-    lambda 35 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 35 In_ACCEPT = Out_TIMEOUT
-    lambda 35 In_FIN_ACK_V_V_0 = Out_RST_NEXT_ZERO_0
-    lambda 35 In_LISTEN = Out_TIMEOUT
-    lambda 35 In_SYN_V_V_0 = Out_ACK_SYN_FRESH_NEXT_0
-    lambda 35 In_RCV = Out_TIMEOUT
-    lambda 35 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 35 In_CLOSE = Out_TIMEOUT
-    lambda 35 In_ACK_V_V_0 = Out_RST_NEXT_ZERO_0
-    lambda 36 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 36 In_ACK_PSH_V_V_1 = Out_TIMEOUT
-    lambda 36 In_SYN_ACK_V_V_0 = Out_ACK_NEXT_CURRENT_0
-    lambda 36 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 36 In_ACCEPT = Out_TIMEOUT
-    lambda 36 In_FIN_ACK_V_V_0 = Out_TIMEOUT
-    lambda 36 In_LISTEN = Out_TIMEOUT
-    lambda 36 In_SYN_V_V_0 = Out_TIMEOUT
-    lambda 36 In_RCV = Out_TIMEOUT
-    lambda 36 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 36 In_CLOSE = Out_TIMEOUT
-    lambda 36 In_ACK_V_V_0 = Out_TIMEOUT
-    lambda 37 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 37 In_ACK_PSH_V_V_1 = Out_ACK_NEXT_NEXT_0
-    lambda 37 In_SYN_ACK_V_V_0 = Out_ACK_NEXT_CURRENT_0
-    lambda 37 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 37 In_ACCEPT = Out_TIMEOUT
-    lambda 37 In_FIN_ACK_V_V_0 = Out_ACK_NEXT_NEXT_0
-    lambda 37 In_LISTEN = Out_TIMEOUT
-    lambda 37 In_SYN_V_V_0 = Out_TIMEOUT
-    lambda 37 In_RCV = Out_TIMEOUT
-    lambda 37 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 37 In_CLOSE = Out_ACK_RST_NEXT_CURRENT_0
-    lambda 37 In_ACK_V_V_0 = Out_TIMEOUT
-    lambda 38 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 38 In_ACK_PSH_V_V_1 = Out_TIMEOUT
-    lambda 38 In_SYN_ACK_V_V_0 = Out_ACK_NEXT_CURRENT_0
-    lambda 38 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 38 In_ACCEPT = Out_TIMEOUT
-    lambda 38 In_FIN_ACK_V_V_0 = Out_TIMEOUT
-    lambda 38 In_LISTEN = Out_TIMEOUT
-    lambda 38 In_SYN_V_V_0 = Out_TIMEOUT
-    lambda 38 In_RCV = Out_TIMEOUT
-    lambda 38 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 38 In_CLOSE = Out_ACK_RST_NEXT_CURRENT_0
-    lambda 38 In_ACK_V_V_0 = Out_TIMEOUT
-    lambda 39 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 39 In_ACK_PSH_V_V_1 = Out_ACK_NEXT_NEXT_0
-    lambda 39 In_SYN_ACK_V_V_0 = Out_ACK_NEXT_CURRENT_0
-    lambda 39 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 39 In_ACCEPT = Out_TIMEOUT
-    lambda 39 In_FIN_ACK_V_V_0 = Out_ACK_NEXT_NEXT_0
-    lambda 39 In_LISTEN = Out_TIMEOUT
-    lambda 39 In_SYN_V_V_0 = Out_TIMEOUT
-    lambda 39 In_RCV = Out_TIMEOUT
-    lambda 39 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 39 In_CLOSE = Out_ACK_RST_NEXT_CURRENT_0
-    lambda 39 In_ACK_V_V_0 = Out_TIMEOUT
-    lambda 40 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 40 In_ACK_PSH_V_V_1 = Out_RST_ZERO_ZERO_0
-    lambda 40 In_SYN_ACK_V_V_0 = Out_RST_ZERO_ZERO_0
-    lambda 40 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 40 In_ACCEPT = Out_TIMEOUT
-    lambda 40 In_FIN_ACK_V_V_0 = Out_RST_ZERO_ZERO_0
-    lambda 40 In_LISTEN = Out_TIMEOUT
-    lambda 40 In_SYN_V_V_0 = Out_ACK_SYN_FRESH_NEXT_0
-    lambda 40 In_RCV = Out_TIMEOUT
-    lambda 40 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 40 In_CLOSE = Out_TIMEOUT
-    lambda 40 In_ACK_V_V_0 = Out_RST_ZERO_ZERO_0
-    lambda 41 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 41 In_ACK_PSH_V_V_1 = Out_TIMEOUT
-    lambda 41 In_SYN_ACK_V_V_0 = Out_ACK_NEXT_CURRENT_0
-    lambda 41 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 41 In_ACCEPT = Out_TIMEOUT
-    lambda 41 In_FIN_ACK_V_V_0 = Out_TIMEOUT
-    lambda 41 In_LISTEN = Out_TIMEOUT
-    lambda 41 In_SYN_V_V_0 = Out_TIMEOUT
-    lambda 41 In_RCV = Out_TIMEOUT
-    lambda 41 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 41 In_CLOSE = Out_ACK_RST_NEXT_CURRENT_0
-    lambda 41 In_ACK_V_V_0 = Out_TIMEOUT
-    lambda 43 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 43 In_ACK_PSH_V_V_1 = Out_RST_NEXT_ZERO_0
-    lambda 43 In_SYN_ACK_V_V_0 = Out_RST_NEXT_ZERO_0
-    lambda 43 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 43 In_ACCEPT = Out_TIMEOUT
-    lambda 43 In_FIN_ACK_V_V_0 = Out_ACK_NEXT_NEXT_0
-    lambda 43 In_LISTEN = Out_TIMEOUT
-    lambda 43 In_SYN_V_V_0 = Out_ACK_RST_ZERO_NEXT_0
-    lambda 43 In_RCV = Out_TIMEOUT
-    lambda 43 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 43 In_CLOSE = Out_TIMEOUT
-    lambda 43 In_ACK_V_V_0 = Out_TIMEOUT
-    lambda 42 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 42 In_ACK_PSH_V_V_1 = Out_ACK_NEXT_CURRENT_0
-    lambda 42 In_SYN_ACK_V_V_0 = Out_ACK_NEXT_CURRENT_0
-    lambda 42 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 42 In_ACCEPT = Out_TIMEOUT
-    lambda 42 In_FIN_ACK_V_V_0 = Out_ACK_NEXT_CURRENT_0
-    lambda 42 In_LISTEN = Out_TIMEOUT
-    lambda 42 In_SYN_V_V_0 = Out_ACK_NEXT_CURRENT_0
-    lambda 42 In_RCV = Out_TIMEOUT
-    lambda 42 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 42 In_CLOSE = Out_TIMEOUT
-    lambda 42 In_ACK_V_V_0 = Out_TIMEOUT
-    lambda 44 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 44 In_ACK_PSH_V_V_1 = Out_RST_NEXT_ZERO_0
-    lambda 44 In_SYN_ACK_V_V_0 = Out_RST_NEXT_ZERO_0
-    lambda 44 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 44 In_ACCEPT = Out_TIMEOUT
-    lambda 44 In_FIN_ACK_V_V_0 = Out_ACK_NEXT_NEXT_0
-    lambda 44 In_LISTEN = Out_TIMEOUT
-    lambda 44 In_SYN_V_V_0 = Out_ACK_RST_ZERO_NEXT_0
-    lambda 44 In_RCV = Out_TIMEOUT
-    lambda 44 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 44 In_CLOSE = Out_TIMEOUT
-    lambda 44 In_ACK_V_V_0 = Out_TIMEOUT
-    lambda 45 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 45 In_ACK_PSH_V_V_1 = Out_ACK_NEXT_CURRENT_0
-    lambda 45 In_SYN_ACK_V_V_0 = Out_ACK_NEXT_CURRENT_0
-    lambda 45 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 45 In_ACCEPT = Out_TIMEOUT
-    lambda 45 In_FIN_ACK_V_V_0 = Out_ACK_NEXT_CURRENT_0
-    lambda 45 In_LISTEN = Out_TIMEOUT
-    lambda 45 In_SYN_V_V_0 = Out_ACK_NEXT_CURRENT_0
-    lambda 45 In_RCV = Out_TIMEOUT
-    lambda 45 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 45 In_CLOSE = Out_TIMEOUT
-    lambda 45 In_ACK_V_V_0 = Out_TIMEOUT
-    lambda 46 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 46 In_ACK_PSH_V_V_1 = Out_RST_NEXT_ZERO_0
-    lambda 46 In_SYN_ACK_V_V_0 = Out_RST_NEXT_ZERO_0
-    lambda 46 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 46 In_ACCEPT = Out_TIMEOUT
-    lambda 46 In_FIN_ACK_V_V_0 = Out_RST_NEXT_ZERO_0
-    lambda 46 In_LISTEN = Out_TIMEOUT
-    lambda 46 In_SYN_V_V_0 = Out_ACK_SYN_FRESH_NEXT_0
-    lambda 46 In_RCV = Out_TIMEOUT
-    lambda 46 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 46 In_CLOSE = Out_TIMEOUT
-    lambda 46 In_ACK_V_V_0 = Out_RST_NEXT_ZERO_0
-    lambda 48 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 48 In_ACK_PSH_V_V_1 = Out_TIMEOUT
-    lambda 48 In_SYN_ACK_V_V_0 = Out_ACK_NEXT_CURRENT_0
-    lambda 48 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 48 In_ACCEPT = Out_TIMEOUT
-    lambda 48 In_FIN_ACK_V_V_0 = Out_TIMEOUT
-    lambda 48 In_LISTEN = Out_TIMEOUT
-    lambda 48 In_SYN_V_V_0 = Out_TIMEOUT
-    lambda 48 In_RCV = Out_TIMEOUT
-    lambda 48 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 48 In_CLOSE = Out_ACK_RST_NEXT_CURRENT_0
-    lambda 48 In_ACK_V_V_0 = Out_TIMEOUT
-    lambda 47 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 47 In_ACK_PSH_V_V_1 = Out_RST_ZERO_ZERO_0
-    lambda 47 In_SYN_ACK_V_V_0 = Out_RST_ZERO_ZERO_0
-    lambda 47 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 47 In_ACCEPT = Out_TIMEOUT
-    lambda 47 In_FIN_ACK_V_V_0 = Out_RST_ZERO_ZERO_0
-    lambda 47 In_LISTEN = Out_TIMEOUT
-    lambda 47 In_SYN_V_V_0 = Out_ACK_SYN_FRESH_NEXT_0
-    lambda 47 In_RCV = Out_TIMEOUT
-    lambda 47 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 47 In_CLOSE = Out_TIMEOUT
-    lambda 47 In_ACK_V_V_0 = Out_RST_ZERO_ZERO_0
-    lambda 49 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 49 In_ACK_PSH_V_V_1 = Out_TIMEOUT
-    lambda 49 In_SYN_ACK_V_V_0 = Out_RST_NEXT_ZERO_0
-    lambda 49 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 49 In_ACCEPT = Out_TIMEOUT
-    lambda 49 In_FIN_ACK_V_V_0 = Out_TIMEOUT
-    lambda 49 In_LISTEN = Out_TIMEOUT
-    lambda 49 In_SYN_V_V_0 = Out_ACK_RST_ZERO_NEXT_0
-    lambda 49 In_RCV = Out_TIMEOUT
-    lambda 49 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 49 In_CLOSE = Out_TIMEOUT
-    lambda 49 In_ACK_V_V_0 = Out_TIMEOUT
-    lambda 50 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 50 In_ACK_PSH_V_V_1 = Out_ACK_NEXT_NEXT_0
-    lambda 50 In_SYN_ACK_V_V_0 = Out_RST_NEXT_ZERO_0
-    lambda 50 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 50 In_ACCEPT = Out_TIMEOUT
-    lambda 50 In_FIN_ACK_V_V_0 = Out_ACK_NEXT_NEXT_0
-    lambda 50 In_LISTEN = Out_TIMEOUT
-    lambda 50 In_SYN_V_V_0 = Out_ACK_RST_ZERO_NEXT_0
-    lambda 50 In_RCV = Out_TIMEOUT
-    lambda 50 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 50 In_CLOSE = Out_TIMEOUT
-    lambda 50 In_ACK_V_V_0 = Out_TIMEOUT
-    lambda 53 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 53 In_ACK_PSH_V_V_1 = Out_ACK_NEXT_NEXT_0
-    lambda 53 In_SYN_ACK_V_V_0 = Out_ACK_NEXT_CURRENT_0
-    lambda 53 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 53 In_ACCEPT = Out_TIMEOUT
-    lambda 53 In_FIN_ACK_V_V_0 = Out_ACK_NEXT_NEXT_0
-    lambda 53 In_LISTEN = Out_TIMEOUT
-    lambda 53 In_SYN_V_V_0 = Out_TIMEOUT
-    lambda 53 In_RCV = Out_TIMEOUT
-    lambda 53 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 53 In_CLOSE = Out_ACK_RST_NEXT_CURRENT_0
-    lambda 53 In_ACK_V_V_0 = Out_TIMEOUT
-    lambda 51 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 51 In_ACK_PSH_V_V_1 = Out_ACK_NEXT_NEXT_0
-    lambda 51 In_SYN_ACK_V_V_0 = Out_ACK_NEXT_CURRENT_0
-    lambda 51 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 51 In_ACCEPT = Out_TIMEOUT
-    lambda 51 In_FIN_ACK_V_V_0 = Out_ACK_NEXT_NEXT_0
-    lambda 51 In_LISTEN = Out_TIMEOUT
-    lambda 51 In_SYN_V_V_0 = Out_TIMEOUT
-    lambda 51 In_RCV = Out_TIMEOUT
-    lambda 51 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 51 In_CLOSE = Out_ACK_RST_NEXT_CURRENT_0
-    lambda 51 In_ACK_V_V_0 = Out_TIMEOUT
-    lambda 52 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 52 In_ACK_PSH_V_V_1 = Out_TIMEOUT
-    lambda 52 In_SYN_ACK_V_V_0 = Out_ACK_NEXT_CURRENT_0
-    lambda 52 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 52 In_ACCEPT = Out_TIMEOUT
-    lambda 52 In_FIN_ACK_V_V_0 = Out_TIMEOUT
-    lambda 52 In_LISTEN = Out_TIMEOUT
-    lambda 52 In_SYN_V_V_0 = Out_TIMEOUT
-    lambda 52 In_RCV = Out_TIMEOUT
-    lambda 52 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 52 In_CLOSE = Out_ACK_RST_NEXT_CURRENT_0
-    lambda 52 In_ACK_V_V_0 = Out_TIMEOUT
-    lambda 54 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 54 In_ACK_PSH_V_V_1 = Out_RST_ZERO_ZERO_0
-    lambda 54 In_SYN_ACK_V_V_0 = Out_RST_ZERO_ZERO_0
-    lambda 54 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 54 In_ACCEPT = Out_TIMEOUT
-    lambda 54 In_FIN_ACK_V_V_0 = Out_RST_ZERO_ZERO_0
-    lambda 54 In_LISTEN = Out_TIMEOUT
-    lambda 54 In_SYN_V_V_0 = Out_ACK_SYN_FRESH_NEXT_0
-    lambda 54 In_RCV = Out_TIMEOUT
-    lambda 54 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 54 In_CLOSE = Out_TIMEOUT
-    lambda 54 In_ACK_V_V_0 = Out_RST_ZERO_ZERO_0
-    lambda 55 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 55 In_ACK_PSH_V_V_1 = Out_TIMEOUT
-    lambda 55 In_SYN_ACK_V_V_0 = Out_ACK_NEXT_CURRENT_0
-    lambda 55 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 55 In_ACCEPT = Out_TIMEOUT
-    lambda 55 In_FIN_ACK_V_V_0 = Out_TIMEOUT
-    lambda 55 In_LISTEN = Out_TIMEOUT
-    lambda 55 In_SYN_V_V_0 = Out_TIMEOUT
-    lambda 55 In_RCV = Out_TIMEOUT
-    lambda 55 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 55 In_CLOSE = Out_ACK_RST_NEXT_CURRENT_0
-    lambda 55 In_ACK_V_V_0 = Out_TIMEOUT
-    lambda 56 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 56 In_ACK_PSH_V_V_1 = Out_TIMEOUT
-    lambda 56 In_SYN_ACK_V_V_0 = Out_RST_NEXT_ZERO_0
-    lambda 56 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 56 In_ACCEPT = Out_TIMEOUT
-    lambda 56 In_FIN_ACK_V_V_0 = Out_TIMEOUT
-    lambda 56 In_LISTEN = Out_TIMEOUT
-    lambda 56 In_SYN_V_V_0 = Out_ACK_RST_ZERO_NEXT_0
-    lambda 56 In_RCV = Out_TIMEOUT
-    lambda 56 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 56 In_CLOSE = Out_TIMEOUT
-    lambda 56 In_ACK_V_V_0 = Out_TIMEOUT
-    lambda _ _ = error "haal-gen: undefined transition"
+import Haal.Automaton.MealyAutomaton (MealyAutomaton, mkMealyAutomatonTable)
+
+data TCPLinuxServerInput
+    = In_CLOSECONNECTION
+    | In_ACK_PSH_V_V_1
+    | In_SYN_ACK_V_V_0
+    | In_RST_V_V_0
+    | In_ACCEPT
+    | In_FIN_ACK_V_V_0
+    | In_LISTEN
+    | In_SYN_V_V_0
+    | In_RCV
+    | In_ACK_RST_V_V_0
+    | In_CLOSE
+    | In_ACK_V_V_0
+    deriving (Show, Eq, Ord, Enum, Bounded)
+
+data TCPLinuxServerOutput
+    = Out_TIMEOUT
+    | Out_RST_ZERO_ZERO_0
+    | Out_ACK_RST_ZERO_NEXT_0
+    | Out_ACK_SYN_FRESH_NEXT_0
+    | Out_ACK_NEXT_NEXT_0
+    | Out_RST_NEXT_ZERO_0
+    | Out_ACK_NEXT_CURRENT_0
+    | Out_ACK_RST_NEXT_CURRENT_0
+    | Out_ACK_FIN_NEXT_CURRENT_0
+    deriving (Show, Eq, Ord, Enum, Bounded)
+
+{- Transitions (state  input -> next state / output):
+    0     In_CLOSECONNECTION  -> 0 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 0 / Out_RST_ZERO_ZERO_0
+          In_SYN_ACK_V_V_0    -> 0 / Out_RST_ZERO_ZERO_0
+          In_RST_V_V_0        -> 0 / Out_TIMEOUT
+          In_ACCEPT           -> 0 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 0 / Out_RST_ZERO_ZERO_0
+          In_LISTEN           -> 1 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 0 / Out_ACK_RST_ZERO_NEXT_0
+          In_RCV              -> 0 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 0 / Out_TIMEOUT
+          In_CLOSE            -> 2 / Out_TIMEOUT
+          In_ACK_V_V_0        -> 0 / Out_RST_ZERO_ZERO_0
+    1     In_CLOSECONNECTION  -> 1 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 1 / Out_RST_ZERO_ZERO_0
+          In_SYN_ACK_V_V_0    -> 1 / Out_RST_ZERO_ZERO_0
+          In_RST_V_V_0        -> 1 / Out_TIMEOUT
+          In_ACCEPT           -> 3 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 1 / Out_RST_ZERO_ZERO_0
+          In_LISTEN           -> 1 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 4 / Out_ACK_SYN_FRESH_NEXT_0
+          In_RCV              -> 1 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 1 / Out_TIMEOUT
+          In_CLOSE            -> 2 / Out_TIMEOUT
+          In_ACK_V_V_0        -> 1 / Out_RST_ZERO_ZERO_0
+    2     In_CLOSECONNECTION  -> 2 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 2 / Out_RST_ZERO_ZERO_0
+          In_SYN_ACK_V_V_0    -> 2 / Out_RST_ZERO_ZERO_0
+          In_RST_V_V_0        -> 2 / Out_TIMEOUT
+          In_ACCEPT           -> 2 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 2 / Out_RST_ZERO_ZERO_0
+          In_LISTEN           -> 2 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 2 / Out_ACK_RST_ZERO_NEXT_0
+          In_RCV              -> 2 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 2 / Out_TIMEOUT
+          In_CLOSE            -> 2 / Out_TIMEOUT
+          In_ACK_V_V_0        -> 2 / Out_RST_ZERO_ZERO_0
+    3     In_CLOSECONNECTION  -> 1 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 3 / Out_RST_ZERO_ZERO_0
+          In_SYN_ACK_V_V_0    -> 3 / Out_RST_ZERO_ZERO_0
+          In_RST_V_V_0        -> 3 / Out_TIMEOUT
+          In_ACCEPT           -> 3 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 3 / Out_RST_ZERO_ZERO_0
+          In_LISTEN           -> 3 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 6 / Out_ACK_SYN_FRESH_NEXT_0
+          In_RCV              -> 3 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 3 / Out_TIMEOUT
+          In_CLOSE            -> 2 / Out_TIMEOUT
+          In_ACK_V_V_0        -> 3 / Out_RST_ZERO_ZERO_0
+    4     In_CLOSECONNECTION  -> 4 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 5 / Out_ACK_NEXT_NEXT_0
+          In_SYN_ACK_V_V_0    -> 1 / Out_RST_NEXT_ZERO_0
+          In_RST_V_V_0        -> 1 / Out_TIMEOUT
+          In_ACCEPT           -> 6 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 7 / Out_ACK_NEXT_NEXT_0
+          In_LISTEN           -> 4 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 1 / Out_ACK_RST_ZERO_NEXT_0
+          In_RCV              -> 4 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 1 / Out_TIMEOUT
+          In_CLOSE            -> 8 / Out_TIMEOUT
+          In_ACK_V_V_0        -> 9 / Out_TIMEOUT
+    5     In_CLOSECONNECTION  -> 5 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 5 / Out_ACK_NEXT_NEXT_0
+          In_SYN_ACK_V_V_0    -> 5 / Out_ACK_NEXT_CURRENT_0
+          In_RST_V_V_0        -> 10 / Out_TIMEOUT
+          In_ACCEPT           -> 11 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 12 / Out_ACK_NEXT_NEXT_0
+          In_LISTEN           -> 5 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 5 / Out_TIMEOUT
+          In_RCV              -> 5 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 10 / Out_TIMEOUT
+          In_CLOSE            -> 2 / Out_ACK_RST_NEXT_CURRENT_0
+          In_ACK_V_V_0        -> 5 / Out_TIMEOUT
+    6     In_CLOSECONNECTION  -> 4 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 11 / Out_ACK_NEXT_NEXT_0
+          In_SYN_ACK_V_V_0    -> 3 / Out_RST_NEXT_ZERO_0
+          In_RST_V_V_0        -> 3 / Out_TIMEOUT
+          In_ACCEPT           -> 6 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 14 / Out_ACK_NEXT_NEXT_0
+          In_LISTEN           -> 6 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 3 / Out_ACK_RST_ZERO_NEXT_0
+          In_RCV              -> 6 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 3 / Out_TIMEOUT
+          In_CLOSE            -> 8 / Out_TIMEOUT
+          In_ACK_V_V_0        -> 13 / Out_TIMEOUT
+    7     In_CLOSECONNECTION  -> 7 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 7 / Out_TIMEOUT
+          In_SYN_ACK_V_V_0    -> 7 / Out_ACK_NEXT_CURRENT_0
+          In_RST_V_V_0        -> 10 / Out_TIMEOUT
+          In_ACCEPT           -> 14 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 7 / Out_TIMEOUT
+          In_LISTEN           -> 7 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 7 / Out_TIMEOUT
+          In_RCV              -> 7 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 10 / Out_TIMEOUT
+          In_CLOSE            -> 2 / Out_ACK_RST_NEXT_CURRENT_0
+          In_ACK_V_V_0        -> 7 / Out_TIMEOUT
+    8     In_CLOSECONNECTION  -> 8 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 2 / Out_RST_NEXT_ZERO_0
+          In_SYN_ACK_V_V_0    -> 2 / Out_RST_NEXT_ZERO_0
+          In_RST_V_V_0        -> 2 / Out_TIMEOUT
+          In_ACCEPT           -> 8 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 2 / Out_RST_NEXT_ZERO_0
+          In_LISTEN           -> 8 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 2 / Out_ACK_RST_ZERO_NEXT_0
+          In_RCV              -> 8 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 2 / Out_TIMEOUT
+          In_CLOSE            -> 8 / Out_TIMEOUT
+          In_ACK_V_V_0        -> 2 / Out_RST_NEXT_ZERO_0
+    9     In_CLOSECONNECTION  -> 9 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 5 / Out_ACK_NEXT_NEXT_0
+          In_SYN_ACK_V_V_0    -> 9 / Out_ACK_NEXT_CURRENT_0
+          In_RST_V_V_0        -> 10 / Out_TIMEOUT
+          In_ACCEPT           -> 13 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 7 / Out_ACK_NEXT_NEXT_0
+          In_LISTEN           -> 9 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 9 / Out_TIMEOUT
+          In_RCV              -> 9 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 10 / Out_TIMEOUT
+          In_CLOSE            -> 2 / Out_ACK_RST_NEXT_CURRENT_0
+          In_ACK_V_V_0        -> 9 / Out_TIMEOUT
+    10    In_CLOSECONNECTION  -> 10 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 10 / Out_RST_ZERO_ZERO_0
+          In_SYN_ACK_V_V_0    -> 10 / Out_RST_ZERO_ZERO_0
+          In_RST_V_V_0        -> 10 / Out_TIMEOUT
+          In_ACCEPT           -> 16 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 10 / Out_RST_ZERO_ZERO_0
+          In_LISTEN           -> 10 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 18 / Out_ACK_SYN_FRESH_NEXT_0
+          In_RCV              -> 10 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 10 / Out_TIMEOUT
+          In_CLOSE            -> 2 / Out_TIMEOUT
+          In_ACK_V_V_0        -> 10 / Out_RST_ZERO_ZERO_0
+    11    In_CLOSECONNECTION  -> 1 / Out_ACK_RST_NEXT_CURRENT_0
+          In_ACK_PSH_V_V_1    -> 11 / Out_ACK_NEXT_NEXT_0
+          In_SYN_ACK_V_V_0    -> 11 / Out_ACK_NEXT_CURRENT_0
+          In_RST_V_V_0        -> 16 / Out_TIMEOUT
+          In_ACCEPT           -> 11 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 15 / Out_ACK_NEXT_NEXT_0
+          In_LISTEN           -> 11 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 11 / Out_TIMEOUT
+          In_RCV              -> 13 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 16 / Out_TIMEOUT
+          In_CLOSE            -> 17 / Out_TIMEOUT
+          In_ACK_V_V_0        -> 11 / Out_TIMEOUT
+    12    In_CLOSECONNECTION  -> 12 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 12 / Out_TIMEOUT
+          In_SYN_ACK_V_V_0    -> 12 / Out_ACK_NEXT_CURRENT_0
+          In_RST_V_V_0        -> 10 / Out_TIMEOUT
+          In_ACCEPT           -> 15 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 12 / Out_TIMEOUT
+          In_LISTEN           -> 12 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 12 / Out_TIMEOUT
+          In_RCV              -> 12 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 10 / Out_TIMEOUT
+          In_CLOSE            -> 2 / Out_ACK_RST_NEXT_CURRENT_0
+          In_ACK_V_V_0        -> 12 / Out_TIMEOUT
+    13    In_CLOSECONNECTION  -> 19 / Out_ACK_FIN_NEXT_CURRENT_0
+          In_ACK_PSH_V_V_1    -> 11 / Out_ACK_NEXT_NEXT_0
+          In_SYN_ACK_V_V_0    -> 13 / Out_ACK_NEXT_CURRENT_0
+          In_RST_V_V_0        -> 16 / Out_TIMEOUT
+          In_ACCEPT           -> 13 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 14 / Out_ACK_NEXT_NEXT_0
+          In_LISTEN           -> 13 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 13 / Out_TIMEOUT
+          In_RCV              -> 20 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 16 / Out_TIMEOUT
+          In_CLOSE            -> 21 / Out_TIMEOUT
+          In_ACK_V_V_0        -> 13 / Out_TIMEOUT
+    14    In_CLOSECONNECTION  -> 22 / Out_ACK_FIN_NEXT_CURRENT_0
+          In_ACK_PSH_V_V_1    -> 14 / Out_TIMEOUT
+          In_SYN_ACK_V_V_0    -> 14 / Out_ACK_NEXT_CURRENT_0
+          In_RST_V_V_0        -> 16 / Out_TIMEOUT
+          In_ACCEPT           -> 14 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 14 / Out_TIMEOUT
+          In_LISTEN           -> 14 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 14 / Out_TIMEOUT
+          In_RCV              -> 14 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 16 / Out_TIMEOUT
+          In_CLOSE            -> 23 / Out_TIMEOUT
+          In_ACK_V_V_0        -> 14 / Out_TIMEOUT
+    15    In_CLOSECONNECTION  -> 1 / Out_ACK_RST_NEXT_CURRENT_0
+          In_ACK_PSH_V_V_1    -> 15 / Out_TIMEOUT
+          In_SYN_ACK_V_V_0    -> 15 / Out_ACK_NEXT_CURRENT_0
+          In_RST_V_V_0        -> 16 / Out_TIMEOUT
+          In_ACCEPT           -> 15 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 15 / Out_TIMEOUT
+          In_LISTEN           -> 15 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 15 / Out_TIMEOUT
+          In_RCV              -> 14 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 16 / Out_TIMEOUT
+          In_CLOSE            -> 24 / Out_TIMEOUT
+          In_ACK_V_V_0        -> 15 / Out_TIMEOUT
+    16    In_CLOSECONNECTION  -> 1 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 16 / Out_RST_ZERO_ZERO_0
+          In_SYN_ACK_V_V_0    -> 16 / Out_RST_ZERO_ZERO_0
+          In_RST_V_V_0        -> 16 / Out_TIMEOUT
+          In_ACCEPT           -> 16 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 16 / Out_RST_ZERO_ZERO_0
+          In_LISTEN           -> 16 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 25 / Out_ACK_SYN_FRESH_NEXT_0
+          In_RCV              -> 16 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 16 / Out_TIMEOUT
+          In_CLOSE            -> 2 / Out_TIMEOUT
+          In_ACK_V_V_0        -> 16 / Out_RST_ZERO_ZERO_0
+    17    In_CLOSECONNECTION  -> 2 / Out_ACK_RST_NEXT_CURRENT_0
+          In_ACK_PSH_V_V_1    -> 17 / Out_ACK_NEXT_NEXT_0
+          In_SYN_ACK_V_V_0    -> 17 / Out_ACK_NEXT_CURRENT_0
+          In_RST_V_V_0        -> 2 / Out_TIMEOUT
+          In_ACCEPT           -> 17 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 24 / Out_ACK_NEXT_NEXT_0
+          In_LISTEN           -> 17 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 17 / Out_TIMEOUT
+          In_RCV              -> 21 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 2 / Out_TIMEOUT
+          In_CLOSE            -> 17 / Out_TIMEOUT
+          In_ACK_V_V_0        -> 17 / Out_TIMEOUT
+    18    In_CLOSECONNECTION  -> 18 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 26 / Out_ACK_NEXT_NEXT_0
+          In_SYN_ACK_V_V_0    -> 10 / Out_RST_NEXT_ZERO_0
+          In_RST_V_V_0        -> 10 / Out_TIMEOUT
+          In_ACCEPT           -> 25 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 27 / Out_ACK_NEXT_NEXT_0
+          In_LISTEN           -> 18 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 10 / Out_ACK_RST_ZERO_NEXT_0
+          In_RCV              -> 18 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 10 / Out_TIMEOUT
+          In_CLOSE            -> 8 / Out_TIMEOUT
+          In_ACK_V_V_0        -> 28 / Out_TIMEOUT
+    19    In_CLOSECONNECTION  -> 19 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 1 / Out_RST_NEXT_ZERO_0
+          In_SYN_ACK_V_V_0    -> 19 / Out_ACK_NEXT_CURRENT_0
+          In_RST_V_V_0        -> 1 / Out_TIMEOUT
+          In_ACCEPT           -> 29 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 30 / Out_ACK_NEXT_NEXT_0
+          In_LISTEN           -> 19 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 19 / Out_TIMEOUT
+          In_RCV              -> 19 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 1 / Out_TIMEOUT
+          In_CLOSE            -> 31 / Out_TIMEOUT
+          In_ACK_V_V_0        -> 32 / Out_TIMEOUT
+    20    In_CLOSECONNECTION  -> 19 / Out_ACK_FIN_NEXT_CURRENT_0
+          In_ACK_PSH_V_V_1    -> 13 / Out_ACK_NEXT_NEXT_0
+          In_SYN_ACK_V_V_0    -> 20 / Out_ACK_NEXT_CURRENT_0
+          In_RST_V_V_0        -> 16 / Out_TIMEOUT
+          In_ACCEPT           -> 20 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 14 / Out_ACK_NEXT_NEXT_0
+          In_LISTEN           -> 20 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 20 / Out_TIMEOUT
+          In_RCV              -> 20 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 16 / Out_TIMEOUT
+          In_CLOSE            -> 21 / Out_TIMEOUT
+          In_ACK_V_V_0        -> 20 / Out_TIMEOUT
+    21    In_CLOSECONNECTION  -> 31 / Out_ACK_FIN_NEXT_CURRENT_0
+          In_ACK_PSH_V_V_1    -> 17 / Out_ACK_NEXT_NEXT_0
+          In_SYN_ACK_V_V_0    -> 21 / Out_ACK_NEXT_CURRENT_0
+          In_RST_V_V_0        -> 2 / Out_TIMEOUT
+          In_ACCEPT           -> 21 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 23 / Out_ACK_NEXT_NEXT_0
+          In_LISTEN           -> 21 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 21 / Out_TIMEOUT
+          In_RCV              -> 33 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 2 / Out_TIMEOUT
+          In_CLOSE            -> 21 / Out_TIMEOUT
+          In_ACK_V_V_0        -> 21 / Out_TIMEOUT
+    22    In_CLOSECONNECTION  -> 22 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 35 / Out_TIMEOUT
+          In_SYN_ACK_V_V_0    -> 22 / Out_ACK_NEXT_CURRENT_0
+          In_RST_V_V_0        -> 1 / Out_TIMEOUT
+          In_ACCEPT           -> 36 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 35 / Out_TIMEOUT
+          In_LISTEN           -> 22 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 22 / Out_TIMEOUT
+          In_RCV              -> 22 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 1 / Out_TIMEOUT
+          In_CLOSE            -> 34 / Out_TIMEOUT
+          In_ACK_V_V_0        -> 35 / Out_TIMEOUT
+    23    In_CLOSECONNECTION  -> 34 / Out_ACK_FIN_NEXT_CURRENT_0
+          In_ACK_PSH_V_V_1    -> 23 / Out_TIMEOUT
+          In_SYN_ACK_V_V_0    -> 23 / Out_ACK_NEXT_CURRENT_0
+          In_RST_V_V_0        -> 2 / Out_TIMEOUT
+          In_ACCEPT           -> 23 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 23 / Out_TIMEOUT
+          In_LISTEN           -> 23 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 23 / Out_TIMEOUT
+          In_RCV              -> 23 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 2 / Out_TIMEOUT
+          In_CLOSE            -> 23 / Out_TIMEOUT
+          In_ACK_V_V_0        -> 23 / Out_TIMEOUT
+    24    In_CLOSECONNECTION  -> 2 / Out_ACK_RST_NEXT_CURRENT_0
+          In_ACK_PSH_V_V_1    -> 24 / Out_TIMEOUT
+          In_SYN_ACK_V_V_0    -> 24 / Out_ACK_NEXT_CURRENT_0
+          In_RST_V_V_0        -> 2 / Out_TIMEOUT
+          In_ACCEPT           -> 24 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 24 / Out_TIMEOUT
+          In_LISTEN           -> 24 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 24 / Out_TIMEOUT
+          In_RCV              -> 23 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 2 / Out_TIMEOUT
+          In_CLOSE            -> 24 / Out_TIMEOUT
+          In_ACK_V_V_0        -> 24 / Out_TIMEOUT
+    25    In_CLOSECONNECTION  -> 4 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 37 / Out_ACK_NEXT_NEXT_0
+          In_SYN_ACK_V_V_0    -> 16 / Out_RST_NEXT_ZERO_0
+          In_RST_V_V_0        -> 16 / Out_TIMEOUT
+          In_ACCEPT           -> 25 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 38 / Out_ACK_NEXT_NEXT_0
+          In_LISTEN           -> 25 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 16 / Out_ACK_RST_ZERO_NEXT_0
+          In_RCV              -> 25 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 16 / Out_TIMEOUT
+          In_CLOSE            -> 8 / Out_TIMEOUT
+          In_ACK_V_V_0        -> 39 / Out_TIMEOUT
+    26    In_CLOSECONNECTION  -> 26 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 26 / Out_ACK_NEXT_NEXT_0
+          In_SYN_ACK_V_V_0    -> 26 / Out_ACK_NEXT_CURRENT_0
+          In_RST_V_V_0        -> 40 / Out_TIMEOUT
+          In_ACCEPT           -> 37 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 41 / Out_ACK_NEXT_NEXT_0
+          In_LISTEN           -> 26 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 26 / Out_TIMEOUT
+          In_RCV              -> 26 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 40 / Out_TIMEOUT
+          In_CLOSE            -> 2 / Out_ACK_RST_NEXT_CURRENT_0
+          In_ACK_V_V_0        -> 26 / Out_TIMEOUT
+    27    In_CLOSECONNECTION  -> 27 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 27 / Out_TIMEOUT
+          In_SYN_ACK_V_V_0    -> 27 / Out_ACK_NEXT_CURRENT_0
+          In_RST_V_V_0        -> 40 / Out_TIMEOUT
+          In_ACCEPT           -> 38 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 27 / Out_TIMEOUT
+          In_LISTEN           -> 27 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 27 / Out_TIMEOUT
+          In_RCV              -> 27 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 40 / Out_TIMEOUT
+          In_CLOSE            -> 2 / Out_ACK_RST_NEXT_CURRENT_0
+          In_ACK_V_V_0        -> 27 / Out_TIMEOUT
+    28    In_CLOSECONNECTION  -> 28 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 26 / Out_ACK_NEXT_NEXT_0
+          In_SYN_ACK_V_V_0    -> 28 / Out_ACK_NEXT_CURRENT_0
+          In_RST_V_V_0        -> 40 / Out_TIMEOUT
+          In_ACCEPT           -> 39 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 27 / Out_ACK_NEXT_NEXT_0
+          In_LISTEN           -> 28 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 28 / Out_TIMEOUT
+          In_RCV              -> 28 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 40 / Out_TIMEOUT
+          In_CLOSE            -> 2 / Out_ACK_RST_NEXT_CURRENT_0
+          In_ACK_V_V_0        -> 28 / Out_TIMEOUT
+    29    In_CLOSECONNECTION  -> 19 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 3 / Out_RST_NEXT_ZERO_0
+          In_SYN_ACK_V_V_0    -> 29 / Out_ACK_NEXT_CURRENT_0
+          In_RST_V_V_0        -> 3 / Out_TIMEOUT
+          In_ACCEPT           -> 29 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 45 / Out_ACK_NEXT_NEXT_0
+          In_LISTEN           -> 29 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 29 / Out_TIMEOUT
+          In_RCV              -> 29 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 3 / Out_TIMEOUT
+          In_CLOSE            -> 31 / Out_TIMEOUT
+          In_ACK_V_V_0        -> 44 / Out_TIMEOUT
+    30    In_CLOSECONNECTION  -> 30 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 30 / Out_ACK_NEXT_CURRENT_0
+          In_SYN_ACK_V_V_0    -> 30 / Out_ACK_NEXT_CURRENT_0
+          In_RST_V_V_0        -> 1 / Out_TIMEOUT
+          In_ACCEPT           -> 45 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 30 / Out_ACK_NEXT_CURRENT_0
+          In_LISTEN           -> 30 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 30 / Out_ACK_NEXT_CURRENT_0
+          In_RCV              -> 30 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 1 / Out_TIMEOUT
+          In_CLOSE            -> 42 / Out_TIMEOUT
+          In_ACK_V_V_0        -> 30 / Out_TIMEOUT
+    31    In_CLOSECONNECTION  -> 31 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 2 / Out_RST_NEXT_ZERO_0
+          In_SYN_ACK_V_V_0    -> 31 / Out_ACK_NEXT_CURRENT_0
+          In_RST_V_V_0        -> 2 / Out_TIMEOUT
+          In_ACCEPT           -> 31 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 42 / Out_ACK_NEXT_NEXT_0
+          In_LISTEN           -> 31 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 31 / Out_TIMEOUT
+          In_RCV              -> 31 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 2 / Out_TIMEOUT
+          In_CLOSE            -> 31 / Out_TIMEOUT
+          In_ACK_V_V_0        -> 43 / Out_TIMEOUT
+    32    In_CLOSECONNECTION  -> 32 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 1 / Out_RST_NEXT_ZERO_0
+          In_SYN_ACK_V_V_0    -> 1 / Out_RST_NEXT_ZERO_0
+          In_RST_V_V_0        -> 1 / Out_TIMEOUT
+          In_ACCEPT           -> 44 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 30 / Out_ACK_NEXT_NEXT_0
+          In_LISTEN           -> 32 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 1 / Out_ACK_RST_ZERO_NEXT_0
+          In_RCV              -> 32 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 1 / Out_TIMEOUT
+          In_CLOSE            -> 43 / Out_TIMEOUT
+          In_ACK_V_V_0        -> 32 / Out_TIMEOUT
+    33    In_CLOSECONNECTION  -> 31 / Out_ACK_FIN_NEXT_CURRENT_0
+          In_ACK_PSH_V_V_1    -> 21 / Out_ACK_NEXT_NEXT_0
+          In_SYN_ACK_V_V_0    -> 33 / Out_ACK_NEXT_CURRENT_0
+          In_RST_V_V_0        -> 2 / Out_TIMEOUT
+          In_ACCEPT           -> 33 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 23 / Out_ACK_NEXT_NEXT_0
+          In_LISTEN           -> 33 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 33 / Out_TIMEOUT
+          In_RCV              -> 33 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 2 / Out_TIMEOUT
+          In_CLOSE            -> 21 / Out_TIMEOUT
+          In_ACK_V_V_0        -> 33 / Out_TIMEOUT
+    34    In_CLOSECONNECTION  -> 34 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 8 / Out_TIMEOUT
+          In_SYN_ACK_V_V_0    -> 34 / Out_ACK_NEXT_CURRENT_0
+          In_RST_V_V_0        -> 2 / Out_TIMEOUT
+          In_ACCEPT           -> 34 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 8 / Out_TIMEOUT
+          In_LISTEN           -> 34 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 34 / Out_TIMEOUT
+          In_RCV              -> 34 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 2 / Out_TIMEOUT
+          In_CLOSE            -> 34 / Out_TIMEOUT
+          In_ACK_V_V_0        -> 8 / Out_TIMEOUT
+    35    In_CLOSECONNECTION  -> 35 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 1 / Out_RST_NEXT_ZERO_0
+          In_SYN_ACK_V_V_0    -> 1 / Out_RST_NEXT_ZERO_0
+          In_RST_V_V_0        -> 1 / Out_TIMEOUT
+          In_ACCEPT           -> 46 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 1 / Out_RST_NEXT_ZERO_0
+          In_LISTEN           -> 35 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 4 / Out_ACK_SYN_FRESH_NEXT_0
+          In_RCV              -> 35 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 1 / Out_TIMEOUT
+          In_CLOSE            -> 8 / Out_TIMEOUT
+          In_ACK_V_V_0        -> 1 / Out_RST_NEXT_ZERO_0
+    36    In_CLOSECONNECTION  -> 22 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 46 / Out_TIMEOUT
+          In_SYN_ACK_V_V_0    -> 36 / Out_ACK_NEXT_CURRENT_0
+          In_RST_V_V_0        -> 3 / Out_TIMEOUT
+          In_ACCEPT           -> 36 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 46 / Out_TIMEOUT
+          In_LISTEN           -> 36 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 36 / Out_TIMEOUT
+          In_RCV              -> 36 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 3 / Out_TIMEOUT
+          In_CLOSE            -> 34 / Out_TIMEOUT
+          In_ACK_V_V_0        -> 46 / Out_TIMEOUT
+    37    In_CLOSECONNECTION  -> 5 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 37 / Out_ACK_NEXT_NEXT_0
+          In_SYN_ACK_V_V_0    -> 37 / Out_ACK_NEXT_CURRENT_0
+          In_RST_V_V_0        -> 47 / Out_TIMEOUT
+          In_ACCEPT           -> 37 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 48 / Out_ACK_NEXT_NEXT_0
+          In_LISTEN           -> 37 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 37 / Out_TIMEOUT
+          In_RCV              -> 37 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 47 / Out_TIMEOUT
+          In_CLOSE            -> 2 / Out_ACK_RST_NEXT_CURRENT_0
+          In_ACK_V_V_0        -> 37 / Out_TIMEOUT
+    38    In_CLOSECONNECTION  -> 7 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 38 / Out_TIMEOUT
+          In_SYN_ACK_V_V_0    -> 38 / Out_ACK_NEXT_CURRENT_0
+          In_RST_V_V_0        -> 47 / Out_TIMEOUT
+          In_ACCEPT           -> 38 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 38 / Out_TIMEOUT
+          In_LISTEN           -> 38 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 38 / Out_TIMEOUT
+          In_RCV              -> 38 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 47 / Out_TIMEOUT
+          In_CLOSE            -> 2 / Out_ACK_RST_NEXT_CURRENT_0
+          In_ACK_V_V_0        -> 38 / Out_TIMEOUT
+    39    In_CLOSECONNECTION  -> 9 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 37 / Out_ACK_NEXT_NEXT_0
+          In_SYN_ACK_V_V_0    -> 39 / Out_ACK_NEXT_CURRENT_0
+          In_RST_V_V_0        -> 47 / Out_TIMEOUT
+          In_ACCEPT           -> 39 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 38 / Out_ACK_NEXT_NEXT_0
+          In_LISTEN           -> 39 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 39 / Out_TIMEOUT
+          In_RCV              -> 39 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 47 / Out_TIMEOUT
+          In_CLOSE            -> 2 / Out_ACK_RST_NEXT_CURRENT_0
+          In_ACK_V_V_0        -> 39 / Out_TIMEOUT
+    40    In_CLOSECONNECTION  -> 40 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 40 / Out_RST_ZERO_ZERO_0
+          In_SYN_ACK_V_V_0    -> 40 / Out_RST_ZERO_ZERO_0
+          In_RST_V_V_0        -> 40 / Out_TIMEOUT
+          In_ACCEPT           -> 47 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 40 / Out_RST_ZERO_ZERO_0
+          In_LISTEN           -> 40 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 49 / Out_ACK_SYN_FRESH_NEXT_0
+          In_RCV              -> 40 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 40 / Out_TIMEOUT
+          In_CLOSE            -> 2 / Out_TIMEOUT
+          In_ACK_V_V_0        -> 40 / Out_RST_ZERO_ZERO_0
+    41    In_CLOSECONNECTION  -> 41 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 41 / Out_TIMEOUT
+          In_SYN_ACK_V_V_0    -> 41 / Out_ACK_NEXT_CURRENT_0
+          In_RST_V_V_0        -> 40 / Out_TIMEOUT
+          In_ACCEPT           -> 48 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 41 / Out_TIMEOUT
+          In_LISTEN           -> 41 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 41 / Out_TIMEOUT
+          In_RCV              -> 41 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 40 / Out_TIMEOUT
+          In_CLOSE            -> 2 / Out_ACK_RST_NEXT_CURRENT_0
+          In_ACK_V_V_0        -> 41 / Out_TIMEOUT
+    42    In_CLOSECONNECTION  -> 42 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 42 / Out_ACK_NEXT_CURRENT_0
+          In_SYN_ACK_V_V_0    -> 42 / Out_ACK_NEXT_CURRENT_0
+          In_RST_V_V_0        -> 2 / Out_TIMEOUT
+          In_ACCEPT           -> 42 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 42 / Out_ACK_NEXT_CURRENT_0
+          In_LISTEN           -> 42 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 42 / Out_ACK_NEXT_CURRENT_0
+          In_RCV              -> 42 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 2 / Out_TIMEOUT
+          In_CLOSE            -> 42 / Out_TIMEOUT
+          In_ACK_V_V_0        -> 42 / Out_TIMEOUT
+    43    In_CLOSECONNECTION  -> 43 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 2 / Out_RST_NEXT_ZERO_0
+          In_SYN_ACK_V_V_0    -> 2 / Out_RST_NEXT_ZERO_0
+          In_RST_V_V_0        -> 2 / Out_TIMEOUT
+          In_ACCEPT           -> 43 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 42 / Out_ACK_NEXT_NEXT_0
+          In_LISTEN           -> 43 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 2 / Out_ACK_RST_ZERO_NEXT_0
+          In_RCV              -> 43 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 2 / Out_TIMEOUT
+          In_CLOSE            -> 43 / Out_TIMEOUT
+          In_ACK_V_V_0        -> 43 / Out_TIMEOUT
+    44    In_CLOSECONNECTION  -> 32 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 3 / Out_RST_NEXT_ZERO_0
+          In_SYN_ACK_V_V_0    -> 3 / Out_RST_NEXT_ZERO_0
+          In_RST_V_V_0        -> 3 / Out_TIMEOUT
+          In_ACCEPT           -> 44 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 45 / Out_ACK_NEXT_NEXT_0
+          In_LISTEN           -> 44 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 3 / Out_ACK_RST_ZERO_NEXT_0
+          In_RCV              -> 44 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 3 / Out_TIMEOUT
+          In_CLOSE            -> 43 / Out_TIMEOUT
+          In_ACK_V_V_0        -> 44 / Out_TIMEOUT
+    45    In_CLOSECONNECTION  -> 30 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 45 / Out_ACK_NEXT_CURRENT_0
+          In_SYN_ACK_V_V_0    -> 45 / Out_ACK_NEXT_CURRENT_0
+          In_RST_V_V_0        -> 3 / Out_TIMEOUT
+          In_ACCEPT           -> 45 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 45 / Out_ACK_NEXT_CURRENT_0
+          In_LISTEN           -> 45 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 45 / Out_ACK_NEXT_CURRENT_0
+          In_RCV              -> 45 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 3 / Out_TIMEOUT
+          In_CLOSE            -> 42 / Out_TIMEOUT
+          In_ACK_V_V_0        -> 45 / Out_TIMEOUT
+    46    In_CLOSECONNECTION  -> 35 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 3 / Out_RST_NEXT_ZERO_0
+          In_SYN_ACK_V_V_0    -> 3 / Out_RST_NEXT_ZERO_0
+          In_RST_V_V_0        -> 3 / Out_TIMEOUT
+          In_ACCEPT           -> 46 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 3 / Out_RST_NEXT_ZERO_0
+          In_LISTEN           -> 46 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 6 / Out_ACK_SYN_FRESH_NEXT_0
+          In_RCV              -> 46 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 3 / Out_TIMEOUT
+          In_CLOSE            -> 8 / Out_TIMEOUT
+          In_ACK_V_V_0        -> 3 / Out_RST_NEXT_ZERO_0
+    47    In_CLOSECONNECTION  -> 10 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 47 / Out_RST_ZERO_ZERO_0
+          In_SYN_ACK_V_V_0    -> 47 / Out_RST_ZERO_ZERO_0
+          In_RST_V_V_0        -> 47 / Out_TIMEOUT
+          In_ACCEPT           -> 47 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 47 / Out_RST_ZERO_ZERO_0
+          In_LISTEN           -> 47 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 50 / Out_ACK_SYN_FRESH_NEXT_0
+          In_RCV              -> 47 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 47 / Out_TIMEOUT
+          In_CLOSE            -> 2 / Out_TIMEOUT
+          In_ACK_V_V_0        -> 47 / Out_RST_ZERO_ZERO_0
+    48    In_CLOSECONNECTION  -> 12 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 48 / Out_TIMEOUT
+          In_SYN_ACK_V_V_0    -> 48 / Out_ACK_NEXT_CURRENT_0
+          In_RST_V_V_0        -> 47 / Out_TIMEOUT
+          In_ACCEPT           -> 48 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 48 / Out_TIMEOUT
+          In_LISTEN           -> 48 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 48 / Out_TIMEOUT
+          In_RCV              -> 48 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 47 / Out_TIMEOUT
+          In_CLOSE            -> 2 / Out_ACK_RST_NEXT_CURRENT_0
+          In_ACK_V_V_0        -> 48 / Out_TIMEOUT
+    49    In_CLOSECONNECTION  -> 49 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 49 / Out_TIMEOUT
+          In_SYN_ACK_V_V_0    -> 40 / Out_RST_NEXT_ZERO_0
+          In_RST_V_V_0        -> 40 / Out_TIMEOUT
+          In_ACCEPT           -> 50 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 49 / Out_TIMEOUT
+          In_LISTEN           -> 49 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 40 / Out_ACK_RST_ZERO_NEXT_0
+          In_RCV              -> 49 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 40 / Out_TIMEOUT
+          In_CLOSE            -> 8 / Out_TIMEOUT
+          In_ACK_V_V_0        -> 49 / Out_TIMEOUT
+    50    In_CLOSECONNECTION  -> 18 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 51 / Out_ACK_NEXT_NEXT_0
+          In_SYN_ACK_V_V_0    -> 47 / Out_RST_NEXT_ZERO_0
+          In_RST_V_V_0        -> 47 / Out_TIMEOUT
+          In_ACCEPT           -> 50 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 52 / Out_ACK_NEXT_NEXT_0
+          In_LISTEN           -> 50 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 47 / Out_ACK_RST_ZERO_NEXT_0
+          In_RCV              -> 50 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 47 / Out_TIMEOUT
+          In_CLOSE            -> 8 / Out_TIMEOUT
+          In_ACK_V_V_0        -> 53 / Out_TIMEOUT
+    51    In_CLOSECONNECTION  -> 26 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 51 / Out_ACK_NEXT_NEXT_0
+          In_SYN_ACK_V_V_0    -> 51 / Out_ACK_NEXT_CURRENT_0
+          In_RST_V_V_0        -> 54 / Out_TIMEOUT
+          In_ACCEPT           -> 51 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 55 / Out_ACK_NEXT_NEXT_0
+          In_LISTEN           -> 51 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 51 / Out_TIMEOUT
+          In_RCV              -> 51 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 54 / Out_TIMEOUT
+          In_CLOSE            -> 2 / Out_ACK_RST_NEXT_CURRENT_0
+          In_ACK_V_V_0        -> 51 / Out_TIMEOUT
+    52    In_CLOSECONNECTION  -> 27 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 52 / Out_TIMEOUT
+          In_SYN_ACK_V_V_0    -> 52 / Out_ACK_NEXT_CURRENT_0
+          In_RST_V_V_0        -> 54 / Out_TIMEOUT
+          In_ACCEPT           -> 52 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 52 / Out_TIMEOUT
+          In_LISTEN           -> 52 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 52 / Out_TIMEOUT
+          In_RCV              -> 52 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 54 / Out_TIMEOUT
+          In_CLOSE            -> 2 / Out_ACK_RST_NEXT_CURRENT_0
+          In_ACK_V_V_0        -> 52 / Out_TIMEOUT
+    53    In_CLOSECONNECTION  -> 28 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 51 / Out_ACK_NEXT_NEXT_0
+          In_SYN_ACK_V_V_0    -> 53 / Out_ACK_NEXT_CURRENT_0
+          In_RST_V_V_0        -> 54 / Out_TIMEOUT
+          In_ACCEPT           -> 53 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 52 / Out_ACK_NEXT_NEXT_0
+          In_LISTEN           -> 53 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 53 / Out_TIMEOUT
+          In_RCV              -> 53 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 54 / Out_TIMEOUT
+          In_CLOSE            -> 2 / Out_ACK_RST_NEXT_CURRENT_0
+          In_ACK_V_V_0        -> 53 / Out_TIMEOUT
+    54    In_CLOSECONNECTION  -> 40 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 54 / Out_RST_ZERO_ZERO_0
+          In_SYN_ACK_V_V_0    -> 54 / Out_RST_ZERO_ZERO_0
+          In_RST_V_V_0        -> 54 / Out_TIMEOUT
+          In_ACCEPT           -> 54 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 54 / Out_RST_ZERO_ZERO_0
+          In_LISTEN           -> 54 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 56 / Out_ACK_SYN_FRESH_NEXT_0
+          In_RCV              -> 54 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 54 / Out_TIMEOUT
+          In_CLOSE            -> 2 / Out_TIMEOUT
+          In_ACK_V_V_0        -> 54 / Out_RST_ZERO_ZERO_0
+    55    In_CLOSECONNECTION  -> 41 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 55 / Out_TIMEOUT
+          In_SYN_ACK_V_V_0    -> 55 / Out_ACK_NEXT_CURRENT_0
+          In_RST_V_V_0        -> 54 / Out_TIMEOUT
+          In_ACCEPT           -> 55 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 55 / Out_TIMEOUT
+          In_LISTEN           -> 55 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 55 / Out_TIMEOUT
+          In_RCV              -> 55 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 54 / Out_TIMEOUT
+          In_CLOSE            -> 2 / Out_ACK_RST_NEXT_CURRENT_0
+          In_ACK_V_V_0        -> 55 / Out_TIMEOUT
+    56    In_CLOSECONNECTION  -> 49 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 56 / Out_TIMEOUT
+          In_SYN_ACK_V_V_0    -> 54 / Out_RST_NEXT_ZERO_0
+          In_RST_V_V_0        -> 54 / Out_TIMEOUT
+          In_ACCEPT           -> 56 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 56 / Out_TIMEOUT
+          In_LISTEN           -> 56 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 54 / Out_ACK_RST_ZERO_NEXT_0
+          In_RCV              -> 56 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 54 / Out_TIMEOUT
+          In_CLOSE            -> 8 / Out_TIMEOUT
+          In_ACK_V_V_0        -> 56 / Out_TIMEOUT
+-}
+tCPLinuxServer :: MealyAutomaton Int TCPLinuxServerInput TCPLinuxServerOutput
+tCPLinuxServer =
+    case mkMealyAutomatonTable 57 0 deltaTable lambdaTable of
+        Right m -> m
+        Left err -> error ("haal-gen: invalid transition table: " ++ err)
+  where
+    deltaTable =
+        "\0\0\0\0\0\0\1\0\0\0\2\0\
+        \\1\1\1\1\3\1\1\4\1\1\2\1\
+        \\2\2\2\2\2\2\2\2\2\2\2\2\
+        \\1\3\3\3\3\3\3\6\3\3\2\3\
+        \\4\5\1\1\6\7\4\1\4\1\8\9\
+        \\5\5\5\10\11\12\5\5\5\10\2\5\
+        \\4\11\3\3\6\14\6\3\6\3\8\13\
+        \\7\7\7\10\14\7\7\7\7\10\2\7\
+        \\8\2\2\2\8\2\8\2\8\2\8\2\
+        \\9\5\9\10\13\7\9\9\9\10\2\9\
+        \\10\10\10\10\16\10\10\18\10\10\2\10\
+        \\1\11\11\16\11\15\11\11\13\16\17\11\
+        \\12\12\12\10\15\12\12\12\12\10\2\12\
+        \\19\11\13\16\13\14\13\13\20\16\21\13\
+        \\22\14\14\16\14\14\14\14\14\16\23\14\
+        \\1\15\15\16\15\15\15\15\14\16\24\15\
+        \\1\16\16\16\16\16\16\25\16\16\2\16\
+        \\2\17\17\2\17\24\17\17\21\2\17\17\
+        \\18\26\10\10\25\27\18\10\18\10\8\28\
+        \\19\1\19\1\29\30\19\19\19\1\31\32\
+        \\19\13\20\16\20\14\20\20\20\16\21\20\
+        \\31\17\21\2\21\23\21\21\33\2\21\21\
+        \\22\35\22\1\36\35\22\22\22\1\34\35\
+        \\34\23\23\2\23\23\23\23\23\2\23\23\
+        \\2\24\24\2\24\24\24\24\23\2\24\24\
+        \\4\37\16\16\25\38\25\16\25\16\8\39\
+        \\26\26\26\40\37\41\26\26\26\40\2\26\
+        \\27\27\27\40\38\27\27\27\27\40\2\27\
+        \\28\26\28\40\39\27\28\28\28\40\2\28\
+        \\19\3\29\3\29\45\29\29\29\3\31\44\
+        \\30\30\30\1\45\30\30\30\30\1\42\30\
+        \\31\2\31\2\31\42\31\31\31\2\31\43\
+        \\32\1\1\1\44\30\32\1\32\1\43\32\
+        \\31\21\33\2\33\23\33\33\33\2\21\33\
+        \\34\8\34\2\34\8\34\34\34\2\34\8\
+        \\35\1\1\1\46\1\35\4\35\1\8\1\
+        \\22\46\36\3\36\46\36\36\36\3\34\46\
+        \\5\37\37\47\37\48\37\37\37\47\2\37\
+        \\7\38\38\47\38\38\38\38\38\47\2\38\
+        \\9\37\39\47\39\38\39\39\39\47\2\39\
+        \\40\40\40\40\47\40\40\49\40\40\2\40\
+        \\41\41\41\40\48\41\41\41\41\40\2\41\
+        \\42\42\42\2\42\42\42\42\42\2\42\42\
+        \\43\2\2\2\43\42\43\2\43\2\43\43\
+        \\32\3\3\3\44\45\44\3\44\3\43\44\
+        \\30\45\45\3\45\45\45\45\45\3\42\45\
+        \\35\3\3\3\46\3\46\6\46\3\8\3\
+        \\10\47\47\47\47\47\47\50\47\47\2\47\
+        \\12\48\48\47\48\48\48\48\48\47\2\48\
+        \\49\49\40\40\50\49\49\40\49\40\8\49\
+        \\18\51\47\47\50\52\50\47\50\47\8\53\
+        \\26\51\51\54\51\55\51\51\51\54\2\51\
+        \\27\52\52\54\52\52\52\52\52\54\2\52\
+        \\28\51\53\54\53\52\53\53\53\54\2\53\
+        \\40\54\54\54\54\54\54\56\54\54\2\54\
+        \\41\55\55\54\55\55\55\55\55\54\2\55\
+        \\49\56\54\54\56\56\56\54\56\54\8\56"
+    lambdaTable =
+        "\0\1\1\0\0\1\0\2\0\0\0\1\
+        \\0\1\1\0\0\1\0\3\0\0\0\1\
+        \\0\1\1\0\0\1\0\2\0\0\0\1\
+        \\0\1\1\0\0\1\0\3\0\0\0\1\
+        \\0\4\5\0\0\4\0\2\0\0\0\0\
+        \\0\4\6\0\0\4\0\0\0\0\7\0\
+        \\0\4\5\0\0\4\0\2\0\0\0\0\
+        \\0\0\6\0\0\0\0\0\0\0\7\0\
+        \\0\5\5\0\0\5\0\2\0\0\0\5\
+        \\0\4\6\0\0\4\0\0\0\0\7\0\
+        \\0\1\1\0\0\1\0\3\0\0\0\1\
+        \\7\4\6\0\0\4\0\0\0\0\0\0\
+        \\0\0\6\0\0\0\0\0\0\0\7\0\
+        \\8\4\6\0\0\4\0\0\0\0\0\0\
+        \\8\0\6\0\0\0\0\0\0\0\0\0\
+        \\7\0\6\0\0\0\0\0\0\0\0\0\
+        \\0\1\1\0\0\1\0\3\0\0\0\1\
+        \\7\4\6\0\0\4\0\0\0\0\0\0\
+        \\0\4\5\0\0\4\0\2\0\0\0\0\
+        \\0\5\6\0\0\4\0\0\0\0\0\0\
+        \\8\4\6\0\0\4\0\0\0\0\0\0\
+        \\8\4\6\0\0\4\0\0\0\0\0\0\
+        \\0\0\6\0\0\0\0\0\0\0\0\0\
+        \\8\0\6\0\0\0\0\0\0\0\0\0\
+        \\7\0\6\0\0\0\0\0\0\0\0\0\
+        \\0\4\5\0\0\4\0\2\0\0\0\0\
+        \\0\4\6\0\0\4\0\0\0\0\7\0\
+        \\0\0\6\0\0\0\0\0\0\0\7\0\
+        \\0\4\6\0\0\4\0\0\0\0\7\0\
+        \\0\5\6\0\0\4\0\0\0\0\0\0\
+        \\0\6\6\0\0\6\0\6\0\0\0\0\
+        \\0\5\6\0\0\4\0\0\0\0\0\0\
+        \\0\5\5\0\0\4\0\2\0\0\0\0\
+        \\8\4\6\0\0\4\0\0\0\0\0\0\
+        \\0\0\6\0\0\0\0\0\0\0\0\0\
+        \\0\5\5\0\0\5\0\3\0\0\0\5\
+        \\0\0\6\0\0\0\0\0\0\0\0\0\
+        \\0\4\6\0\0\4\0\0\0\0\7\0\
+        \\0\0\6\0\0\0\0\0\0\0\7\0\
+        \\0\4\6\0\0\4\0\0\0\0\7\0\
+        \\0\1\1\0\0\1\0\3\0\0\0\1\
+        \\0\0\6\0\0\0\0\0\0\0\7\0\
+        \\0\6\6\0\0\6\0\6\0\0\0\0\
+        \\0\5\5\0\0\4\0\2\0\0\0\0\
+        \\0\5\5\0\0\4\0\2\0\0\0\0\
+        \\0\6\6\0\0\6\0\6\0\0\0\0\
+        \\0\5\5\0\0\5\0\3\0\0\0\5\
+        \\0\1\1\0\0\1\0\3\0\0\0\1\
+        \\0\0\6\0\0\0\0\0\0\0\7\0\
+        \\0\0\5\0\0\0\0\2\0\0\0\0\
+        \\0\4\5\0\0\4\0\2\0\0\0\0\
+        \\0\4\6\0\0\4\0\0\0\0\7\0\
+        \\0\0\6\0\0\0\0\0\0\0\7\0\
+        \\0\4\6\0\0\4\0\0\0\0\7\0\
+        \\0\1\1\0\0\1\0\3\0\0\0\1\
+        \\0\0\6\0\0\0\0\0\0\0\7\0\
+        \\0\0\5\0\0\0\0\2\0\0\0\0"
diff --git a/src/Haal/Models/TCP/TcpServerBsdTrans.hs b/src/Haal/Models/TCP/TcpServerBsdTrans.hs
--- a/src/Haal/Models/TCP/TcpServerBsdTrans.hs
+++ b/src/Haal/Models/TCP/TcpServerBsdTrans.hs
@@ -5,1471 +5,870 @@
     , tcpServerBsdTrans
     ) where
 
-import qualified Data.Set as Set
-import Haal.Automaton.MealyAutomaton (MealyAutomaton, mkMealyAutomaton)
-
-data TcpServerBsdTransInput
-    = In_CLOSECONNECTION
-    | In_ACK_PSH_V_V_1
-    | In_SYN_ACK_V_V_0
-    | In_RST_V_V_0
-    | In_ACCEPT
-    | In_FIN_ACK_V_V_0
-    | In_LISTEN
-    | In_SYN_V_V_0
-    | In_RCV
-    | In_ACK_RST_V_V_0
-    | In_CLOSE
-    | In_SEND
-    | In_ACK_V_V_0
-    deriving (Show, Eq, Ord, Enum, Bounded)
-
-data TcpServerBsdTransOutput
-    = Out_TIMEOUT
-    | Out_RST_ZERO_ZERO_0
-    | Out_ACK_RST_ZERO_NEXT_0
-    | Out_ACK_SYN_FRESH_NEXT_0
-    | Out_ACK_NEXT_NEXT_0
-    | Out_RST_NEXT_ZERO_0
-    | Out_ACK_RST_NEXT_CURRENT_0
-    | Out_ACK_FIN_NEXT_CURRENT_0
-    | Out_ACK_PSH_NEXT_CURRENT_1
-    | Out_ACK_NEXT_CURRENT_0
-    | Out_ACK_FRESH_FRESH_0
-    deriving (Show, Eq, Ord, Enum, Bounded)
-
-tcpServerBsdTrans :: MealyAutomaton Int TcpServerBsdTransInput TcpServerBsdTransOutput
-tcpServerBsdTrans = mkMealyAutomaton delta lambda (Set.fromList [0..54]) 0
-  where
-    delta 0 In_CLOSECONNECTION = 0
-    delta 0 In_ACK_PSH_V_V_1 = 0
-    delta 0 In_SYN_ACK_V_V_0 = 0
-    delta 0 In_RST_V_V_0 = 0
-    delta 0 In_ACCEPT = 0
-    delta 0 In_FIN_ACK_V_V_0 = 0
-    delta 0 In_LISTEN = 1
-    delta 0 In_SYN_V_V_0 = 0
-    delta 0 In_RCV = 0
-    delta 0 In_ACK_RST_V_V_0 = 0
-    delta 0 In_CLOSE = 2
-    delta 0 In_SEND = 0
-    delta 0 In_ACK_V_V_0 = 0
-    delta 1 In_CLOSECONNECTION = 1
-    delta 1 In_ACK_PSH_V_V_1 = 1
-    delta 1 In_SYN_ACK_V_V_0 = 1
-    delta 1 In_RST_V_V_0 = 1
-    delta 1 In_ACCEPT = 3
-    delta 1 In_FIN_ACK_V_V_0 = 1
-    delta 1 In_LISTEN = 1
-    delta 1 In_SYN_V_V_0 = 4
-    delta 1 In_RCV = 1
-    delta 1 In_ACK_RST_V_V_0 = 1
-    delta 1 In_CLOSE = 2
-    delta 1 In_SEND = 1
-    delta 1 In_ACK_V_V_0 = 1
-    delta 2 In_CLOSECONNECTION = 2
-    delta 2 In_ACK_PSH_V_V_1 = 2
-    delta 2 In_SYN_ACK_V_V_0 = 2
-    delta 2 In_RST_V_V_0 = 2
-    delta 2 In_ACCEPT = 2
-    delta 2 In_FIN_ACK_V_V_0 = 2
-    delta 2 In_LISTEN = 2
-    delta 2 In_SYN_V_V_0 = 2
-    delta 2 In_RCV = 2
-    delta 2 In_ACK_RST_V_V_0 = 2
-    delta 2 In_CLOSE = 2
-    delta 2 In_SEND = 2
-    delta 2 In_ACK_V_V_0 = 2
-    delta 4 In_CLOSECONNECTION = 4
-    delta 4 In_ACK_PSH_V_V_1 = 5
-    delta 4 In_SYN_ACK_V_V_0 = 6
-    delta 4 In_RST_V_V_0 = 1
-    delta 4 In_ACCEPT = 7
-    delta 4 In_FIN_ACK_V_V_0 = 8
-    delta 4 In_LISTEN = 4
-    delta 4 In_SYN_V_V_0 = 4
-    delta 4 In_RCV = 4
-    delta 4 In_ACK_RST_V_V_0 = 9
-    delta 4 In_CLOSE = 10
-    delta 4 In_SEND = 4
-    delta 4 In_ACK_V_V_0 = 5
-    delta 3 In_CLOSECONNECTION = 1
-    delta 3 In_ACK_PSH_V_V_1 = 3
-    delta 3 In_SYN_ACK_V_V_0 = 3
-    delta 3 In_RST_V_V_0 = 3
-    delta 3 In_ACCEPT = 3
-    delta 3 In_FIN_ACK_V_V_0 = 3
-    delta 3 In_LISTEN = 3
-    delta 3 In_SYN_V_V_0 = 7
-    delta 3 In_RCV = 3
-    delta 3 In_ACK_RST_V_V_0 = 3
-    delta 3 In_CLOSE = 2
-    delta 3 In_SEND = 3
-    delta 3 In_ACK_V_V_0 = 3
-    delta 10 In_CLOSECONNECTION = 10
-    delta 10 In_ACK_PSH_V_V_1 = 2
-    delta 10 In_SYN_ACK_V_V_0 = 10
-    delta 10 In_RST_V_V_0 = 2
-    delta 10 In_ACCEPT = 10
-    delta 10 In_FIN_ACK_V_V_0 = 2
-    delta 10 In_LISTEN = 10
-    delta 10 In_SYN_V_V_0 = 2
-    delta 10 In_RCV = 10
-    delta 10 In_ACK_RST_V_V_0 = 2
-    delta 10 In_CLOSE = 10
-    delta 10 In_SEND = 10
-    delta 10 In_ACK_V_V_0 = 2
-    delta 6 In_CLOSECONNECTION = 6
-    delta 6 In_ACK_PSH_V_V_1 = 1
-    delta 6 In_SYN_ACK_V_V_0 = 6
-    delta 6 In_RST_V_V_0 = 1
-    delta 6 In_ACCEPT = 11
-    delta 6 In_FIN_ACK_V_V_0 = 1
-    delta 6 In_LISTEN = 6
-    delta 6 In_SYN_V_V_0 = 4
-    delta 6 In_RCV = 6
-    delta 6 In_ACK_RST_V_V_0 = 1
-    delta 6 In_CLOSE = 10
-    delta 6 In_SEND = 6
-    delta 6 In_ACK_V_V_0 = 1
-    delta 8 In_CLOSECONNECTION = 8
-    delta 8 In_ACK_PSH_V_V_1 = 8
-    delta 8 In_SYN_ACK_V_V_0 = 12
-    delta 8 In_RST_V_V_0 = 12
-    delta 8 In_ACCEPT = 13
-    delta 8 In_FIN_ACK_V_V_0 = 8
-    delta 8 In_LISTEN = 8
-    delta 8 In_SYN_V_V_0 = 12
-    delta 8 In_RCV = 8
-    delta 8 In_ACK_RST_V_V_0 = 12
-    delta 8 In_CLOSE = 2
-    delta 8 In_SEND = 8
-    delta 8 In_ACK_V_V_0 = 8
-    delta 5 In_CLOSECONNECTION = 5
-    delta 5 In_ACK_PSH_V_V_1 = 5
-    delta 5 In_SYN_ACK_V_V_0 = 12
-    delta 5 In_RST_V_V_0 = 12
-    delta 5 In_ACCEPT = 14
-    delta 5 In_FIN_ACK_V_V_0 = 8
-    delta 5 In_LISTEN = 5
-    delta 5 In_SYN_V_V_0 = 12
-    delta 5 In_RCV = 5
-    delta 5 In_ACK_RST_V_V_0 = 12
-    delta 5 In_CLOSE = 2
-    delta 5 In_SEND = 5
-    delta 5 In_ACK_V_V_0 = 5
-    delta 7 In_CLOSECONNECTION = 4
-    delta 7 In_ACK_PSH_V_V_1 = 14
-    delta 7 In_SYN_ACK_V_V_0 = 11
-    delta 7 In_RST_V_V_0 = 3
-    delta 7 In_ACCEPT = 7
-    delta 7 In_FIN_ACK_V_V_0 = 13
-    delta 7 In_LISTEN = 7
-    delta 7 In_SYN_V_V_0 = 7
-    delta 7 In_RCV = 7
-    delta 7 In_ACK_RST_V_V_0 = 15
-    delta 7 In_CLOSE = 10
-    delta 7 In_SEND = 7
-    delta 7 In_ACK_V_V_0 = 14
-    delta 9 In_CLOSECONNECTION = 9
-    delta 9 In_ACK_PSH_V_V_1 = 1
-    delta 9 In_SYN_ACK_V_V_0 = 1
-    delta 9 In_RST_V_V_0 = 9
-    delta 9 In_ACCEPT = 15
-    delta 9 In_FIN_ACK_V_V_0 = 1
-    delta 9 In_LISTEN = 9
-    delta 9 In_SYN_V_V_0 = 9
-    delta 9 In_RCV = 9
-    delta 9 In_ACK_RST_V_V_0 = 9
-    delta 9 In_CLOSE = 2
-    delta 9 In_SEND = 9
-    delta 9 In_ACK_V_V_0 = 1
-    delta 11 In_CLOSECONNECTION = 6
-    delta 11 In_ACK_PSH_V_V_1 = 3
-    delta 11 In_SYN_ACK_V_V_0 = 11
-    delta 11 In_RST_V_V_0 = 3
-    delta 11 In_ACCEPT = 11
-    delta 11 In_FIN_ACK_V_V_0 = 3
-    delta 11 In_LISTEN = 11
-    delta 11 In_SYN_V_V_0 = 7
-    delta 11 In_RCV = 11
-    delta 11 In_ACK_RST_V_V_0 = 3
-    delta 11 In_CLOSE = 10
-    delta 11 In_SEND = 11
-    delta 11 In_ACK_V_V_0 = 3
-    delta 12 In_CLOSECONNECTION = 12
-    delta 12 In_ACK_PSH_V_V_1 = 12
-    delta 12 In_SYN_ACK_V_V_0 = 12
-    delta 12 In_RST_V_V_0 = 12
-    delta 12 In_ACCEPT = 1
-    delta 12 In_FIN_ACK_V_V_0 = 12
-    delta 12 In_LISTEN = 12
-    delta 12 In_SYN_V_V_0 = 16
-    delta 12 In_RCV = 12
-    delta 12 In_ACK_RST_V_V_0 = 12
-    delta 12 In_CLOSE = 2
-    delta 12 In_SEND = 12
-    delta 12 In_ACK_V_V_0 = 12
-    delta 13 In_CLOSECONNECTION = 17
-    delta 13 In_ACK_PSH_V_V_1 = 13
-    delta 13 In_SYN_ACK_V_V_0 = 18
-    delta 13 In_RST_V_V_0 = 18
-    delta 13 In_ACCEPT = 13
-    delta 13 In_FIN_ACK_V_V_0 = 13
-    delta 13 In_LISTEN = 13
-    delta 13 In_SYN_V_V_0 = 18
-    delta 13 In_RCV = 13
-    delta 13 In_ACK_RST_V_V_0 = 18
-    delta 13 In_CLOSE = 19
-    delta 13 In_SEND = 13
-    delta 13 In_ACK_V_V_0 = 13
-    delta 14 In_CLOSECONNECTION = 20
-    delta 14 In_ACK_PSH_V_V_1 = 14
-    delta 14 In_SYN_ACK_V_V_0 = 18
-    delta 14 In_RST_V_V_0 = 18
-    delta 14 In_ACCEPT = 14
-    delta 14 In_FIN_ACK_V_V_0 = 13
-    delta 14 In_LISTEN = 14
-    delta 14 In_SYN_V_V_0 = 18
-    delta 14 In_RCV = 14
-    delta 14 In_ACK_RST_V_V_0 = 18
-    delta 14 In_CLOSE = 21
-    delta 14 In_SEND = 14
-    delta 14 In_ACK_V_V_0 = 14
-    delta 15 In_CLOSECONNECTION = 9
-    delta 15 In_ACK_PSH_V_V_1 = 3
-    delta 15 In_SYN_ACK_V_V_0 = 3
-    delta 15 In_RST_V_V_0 = 15
-    delta 15 In_ACCEPT = 15
-    delta 15 In_FIN_ACK_V_V_0 = 3
-    delta 15 In_LISTEN = 15
-    delta 15 In_SYN_V_V_0 = 15
-    delta 15 In_RCV = 15
-    delta 15 In_ACK_RST_V_V_0 = 15
-    delta 15 In_CLOSE = 2
-    delta 15 In_SEND = 15
-    delta 15 In_ACK_V_V_0 = 3
-    delta 16 In_CLOSECONNECTION = 16
-    delta 16 In_ACK_PSH_V_V_1 = 22
-    delta 16 In_SYN_ACK_V_V_0 = 23
-    delta 16 In_RST_V_V_0 = 12
-    delta 16 In_ACCEPT = 4
-    delta 16 In_FIN_ACK_V_V_0 = 24
-    delta 16 In_LISTEN = 16
-    delta 16 In_SYN_V_V_0 = 16
-    delta 16 In_RCV = 16
-    delta 16 In_ACK_RST_V_V_0 = 25
-    delta 16 In_CLOSE = 10
-    delta 16 In_SEND = 16
-    delta 16 In_ACK_V_V_0 = 22
-    delta 19 In_CLOSECONNECTION = 26
-    delta 19 In_ACK_PSH_V_V_1 = 19
-    delta 19 In_SYN_ACK_V_V_0 = 2
-    delta 19 In_RST_V_V_0 = 2
-    delta 19 In_ACCEPT = 19
-    delta 19 In_FIN_ACK_V_V_0 = 19
-    delta 19 In_LISTEN = 19
-    delta 19 In_SYN_V_V_0 = 2
-    delta 19 In_RCV = 19
-    delta 19 In_ACK_RST_V_V_0 = 2
-    delta 19 In_CLOSE = 19
-    delta 19 In_SEND = 19
-    delta 19 In_ACK_V_V_0 = 19
-    delta 17 In_CLOSECONNECTION = 17
-    delta 17 In_ACK_PSH_V_V_1 = 1
-    delta 17 In_SYN_ACK_V_V_0 = 1
-    delta 17 In_RST_V_V_0 = 1
-    delta 17 In_ACCEPT = 27
-    delta 17 In_FIN_ACK_V_V_0 = 6
-    delta 17 In_LISTEN = 17
-    delta 17 In_SYN_V_V_0 = 1
-    delta 17 In_RCV = 17
-    delta 17 In_ACK_RST_V_V_0 = 1
-    delta 17 In_CLOSE = 26
-    delta 17 In_SEND = 17
-    delta 17 In_ACK_V_V_0 = 6
-    delta 18 In_CLOSECONNECTION = 1
-    delta 18 In_ACK_PSH_V_V_1 = 18
-    delta 18 In_SYN_ACK_V_V_0 = 18
-    delta 18 In_RST_V_V_0 = 18
-    delta 18 In_ACCEPT = 18
-    delta 18 In_FIN_ACK_V_V_0 = 18
-    delta 18 In_LISTEN = 18
-    delta 18 In_SYN_V_V_0 = 28
-    delta 18 In_RCV = 18
-    delta 18 In_ACK_RST_V_V_0 = 18
-    delta 18 In_CLOSE = 2
-    delta 18 In_SEND = 18
-    delta 18 In_ACK_V_V_0 = 18
-    delta 21 In_CLOSECONNECTION = 29
-    delta 21 In_ACK_PSH_V_V_1 = 21
-    delta 21 In_SYN_ACK_V_V_0 = 2
-    delta 21 In_RST_V_V_0 = 2
-    delta 21 In_ACCEPT = 21
-    delta 21 In_FIN_ACK_V_V_0 = 19
-    delta 21 In_LISTEN = 21
-    delta 21 In_SYN_V_V_0 = 2
-    delta 21 In_RCV = 21
-    delta 21 In_ACK_RST_V_V_0 = 2
-    delta 21 In_CLOSE = 21
-    delta 21 In_SEND = 21
-    delta 21 In_ACK_V_V_0 = 21
-    delta 20 In_CLOSECONNECTION = 20
-    delta 20 In_ACK_PSH_V_V_1 = 1
-    delta 20 In_SYN_ACK_V_V_0 = 1
-    delta 20 In_RST_V_V_0 = 1
-    delta 20 In_ACCEPT = 30
-    delta 20 In_FIN_ACK_V_V_0 = 31
-    delta 20 In_LISTEN = 20
-    delta 20 In_SYN_V_V_0 = 1
-    delta 20 In_RCV = 20
-    delta 20 In_ACK_RST_V_V_0 = 1
-    delta 20 In_CLOSE = 29
-    delta 20 In_SEND = 20
-    delta 20 In_ACK_V_V_0 = 20
-    delta 23 In_CLOSECONNECTION = 23
-    delta 23 In_ACK_PSH_V_V_1 = 12
-    delta 23 In_SYN_ACK_V_V_0 = 23
-    delta 23 In_RST_V_V_0 = 12
-    delta 23 In_ACCEPT = 6
-    delta 23 In_FIN_ACK_V_V_0 = 12
-    delta 23 In_LISTEN = 23
-    delta 23 In_SYN_V_V_0 = 16
-    delta 23 In_RCV = 23
-    delta 23 In_ACK_RST_V_V_0 = 12
-    delta 23 In_CLOSE = 10
-    delta 23 In_SEND = 23
-    delta 23 In_ACK_V_V_0 = 12
-    delta 22 In_CLOSECONNECTION = 22
-    delta 22 In_ACK_PSH_V_V_1 = 22
-    delta 22 In_SYN_ACK_V_V_0 = 32
-    delta 22 In_RST_V_V_0 = 32
-    delta 22 In_ACCEPT = 5
-    delta 22 In_FIN_ACK_V_V_0 = 24
-    delta 22 In_LISTEN = 22
-    delta 22 In_SYN_V_V_0 = 32
-    delta 22 In_RCV = 22
-    delta 22 In_ACK_RST_V_V_0 = 32
-    delta 22 In_CLOSE = 2
-    delta 22 In_SEND = 22
-    delta 22 In_ACK_V_V_0 = 22
-    delta 24 In_CLOSECONNECTION = 24
-    delta 24 In_ACK_PSH_V_V_1 = 24
-    delta 24 In_SYN_ACK_V_V_0 = 32
-    delta 24 In_RST_V_V_0 = 32
-    delta 24 In_ACCEPT = 8
-    delta 24 In_FIN_ACK_V_V_0 = 24
-    delta 24 In_LISTEN = 24
-    delta 24 In_SYN_V_V_0 = 32
-    delta 24 In_RCV = 24
-    delta 24 In_ACK_RST_V_V_0 = 32
-    delta 24 In_CLOSE = 2
-    delta 24 In_SEND = 24
-    delta 24 In_ACK_V_V_0 = 24
-    delta 25 In_CLOSECONNECTION = 25
-    delta 25 In_ACK_PSH_V_V_1 = 12
-    delta 25 In_SYN_ACK_V_V_0 = 12
-    delta 25 In_RST_V_V_0 = 25
-    delta 25 In_ACCEPT = 9
-    delta 25 In_FIN_ACK_V_V_0 = 12
-    delta 25 In_LISTEN = 25
-    delta 25 In_SYN_V_V_0 = 25
-    delta 25 In_RCV = 25
-    delta 25 In_ACK_RST_V_V_0 = 25
-    delta 25 In_CLOSE = 2
-    delta 25 In_SEND = 25
-    delta 25 In_ACK_V_V_0 = 12
-    delta 26 In_CLOSECONNECTION = 26
-    delta 26 In_ACK_PSH_V_V_1 = 2
-    delta 26 In_SYN_ACK_V_V_0 = 2
-    delta 26 In_RST_V_V_0 = 2
-    delta 26 In_ACCEPT = 26
-    delta 26 In_FIN_ACK_V_V_0 = 10
-    delta 26 In_LISTEN = 26
-    delta 26 In_SYN_V_V_0 = 2
-    delta 26 In_RCV = 26
-    delta 26 In_ACK_RST_V_V_0 = 2
-    delta 26 In_CLOSE = 26
-    delta 26 In_SEND = 26
-    delta 26 In_ACK_V_V_0 = 10
-    delta 27 In_CLOSECONNECTION = 17
-    delta 27 In_ACK_PSH_V_V_1 = 3
-    delta 27 In_SYN_ACK_V_V_0 = 3
-    delta 27 In_RST_V_V_0 = 3
-    delta 27 In_ACCEPT = 27
-    delta 27 In_FIN_ACK_V_V_0 = 11
-    delta 27 In_LISTEN = 27
-    delta 27 In_SYN_V_V_0 = 3
-    delta 27 In_RCV = 27
-    delta 27 In_ACK_RST_V_V_0 = 3
-    delta 27 In_CLOSE = 26
-    delta 27 In_SEND = 27
-    delta 27 In_ACK_V_V_0 = 11
-    delta 28 In_CLOSECONNECTION = 4
-    delta 28 In_ACK_PSH_V_V_1 = 33
-    delta 28 In_SYN_ACK_V_V_0 = 34
-    delta 28 In_RST_V_V_0 = 18
-    delta 28 In_ACCEPT = 28
-    delta 28 In_FIN_ACK_V_V_0 = 35
-    delta 28 In_LISTEN = 28
-    delta 28 In_SYN_V_V_0 = 28
-    delta 28 In_RCV = 28
-    delta 28 In_ACK_RST_V_V_0 = 36
-    delta 28 In_CLOSE = 10
-    delta 28 In_SEND = 28
-    delta 28 In_ACK_V_V_0 = 33
-    delta 29 In_CLOSECONNECTION = 29
-    delta 29 In_ACK_PSH_V_V_1 = 2
-    delta 29 In_SYN_ACK_V_V_0 = 2
-    delta 29 In_RST_V_V_0 = 2
-    delta 29 In_ACCEPT = 29
-    delta 29 In_FIN_ACK_V_V_0 = 37
-    delta 29 In_LISTEN = 29
-    delta 29 In_SYN_V_V_0 = 2
-    delta 29 In_RCV = 29
-    delta 29 In_ACK_RST_V_V_0 = 2
-    delta 29 In_CLOSE = 29
-    delta 29 In_SEND = 29
-    delta 29 In_ACK_V_V_0 = 29
-    delta 30 In_CLOSECONNECTION = 20
-    delta 30 In_ACK_PSH_V_V_1 = 3
-    delta 30 In_SYN_ACK_V_V_0 = 3
-    delta 30 In_RST_V_V_0 = 3
-    delta 30 In_ACCEPT = 30
-    delta 30 In_FIN_ACK_V_V_0 = 38
-    delta 30 In_LISTEN = 30
-    delta 30 In_SYN_V_V_0 = 3
-    delta 30 In_RCV = 30
-    delta 30 In_ACK_RST_V_V_0 = 3
-    delta 30 In_CLOSE = 29
-    delta 30 In_SEND = 30
-    delta 30 In_ACK_V_V_0 = 30
-    delta 31 In_CLOSECONNECTION = 31
-    delta 31 In_ACK_PSH_V_V_1 = 31
-    delta 31 In_SYN_ACK_V_V_0 = 31
-    delta 31 In_RST_V_V_0 = 39
-    delta 31 In_ACCEPT = 38
-    delta 31 In_FIN_ACK_V_V_0 = 31
-    delta 31 In_LISTEN = 31
-    delta 31 In_SYN_V_V_0 = 31
-    delta 31 In_RCV = 31
-    delta 31 In_ACK_RST_V_V_0 = 39
-    delta 31 In_CLOSE = 37
-    delta 31 In_SEND = 31
-    delta 31 In_ACK_V_V_0 = 31
-    delta 32 In_CLOSECONNECTION = 32
-    delta 32 In_ACK_PSH_V_V_1 = 32
-    delta 32 In_SYN_ACK_V_V_0 = 32
-    delta 32 In_RST_V_V_0 = 32
-    delta 32 In_ACCEPT = 12
-    delta 32 In_FIN_ACK_V_V_0 = 32
-    delta 32 In_LISTEN = 32
-    delta 32 In_SYN_V_V_0 = 40
-    delta 32 In_RCV = 32
-    delta 32 In_ACK_RST_V_V_0 = 32
-    delta 32 In_CLOSE = 2
-    delta 32 In_SEND = 32
-    delta 32 In_ACK_V_V_0 = 32
-    delta 35 In_CLOSECONNECTION = 8
-    delta 35 In_ACK_PSH_V_V_1 = 35
-    delta 35 In_SYN_ACK_V_V_0 = 41
-    delta 35 In_RST_V_V_0 = 41
-    delta 35 In_ACCEPT = 35
-    delta 35 In_FIN_ACK_V_V_0 = 35
-    delta 35 In_LISTEN = 35
-    delta 35 In_SYN_V_V_0 = 41
-    delta 35 In_RCV = 35
-    delta 35 In_ACK_RST_V_V_0 = 41
-    delta 35 In_CLOSE = 2
-    delta 35 In_SEND = 35
-    delta 35 In_ACK_V_V_0 = 35
-    delta 33 In_CLOSECONNECTION = 5
-    delta 33 In_ACK_PSH_V_V_1 = 33
-    delta 33 In_SYN_ACK_V_V_0 = 41
-    delta 33 In_RST_V_V_0 = 41
-    delta 33 In_ACCEPT = 33
-    delta 33 In_FIN_ACK_V_V_0 = 35
-    delta 33 In_LISTEN = 33
-    delta 33 In_SYN_V_V_0 = 41
-    delta 33 In_RCV = 33
-    delta 33 In_ACK_RST_V_V_0 = 41
-    delta 33 In_CLOSE = 2
-    delta 33 In_SEND = 33
-    delta 33 In_ACK_V_V_0 = 33
-    delta 36 In_CLOSECONNECTION = 9
-    delta 36 In_ACK_PSH_V_V_1 = 18
-    delta 36 In_SYN_ACK_V_V_0 = 18
-    delta 36 In_RST_V_V_0 = 36
-    delta 36 In_ACCEPT = 36
-    delta 36 In_FIN_ACK_V_V_0 = 18
-    delta 36 In_LISTEN = 36
-    delta 36 In_SYN_V_V_0 = 36
-    delta 36 In_RCV = 36
-    delta 36 In_ACK_RST_V_V_0 = 36
-    delta 36 In_CLOSE = 2
-    delta 36 In_SEND = 36
-    delta 36 In_ACK_V_V_0 = 18
-    delta 34 In_CLOSECONNECTION = 6
-    delta 34 In_ACK_PSH_V_V_1 = 18
-    delta 34 In_SYN_ACK_V_V_0 = 34
-    delta 34 In_RST_V_V_0 = 18
-    delta 34 In_ACCEPT = 34
-    delta 34 In_FIN_ACK_V_V_0 = 18
-    delta 34 In_LISTEN = 34
-    delta 34 In_SYN_V_V_0 = 28
-    delta 34 In_RCV = 34
-    delta 34 In_ACK_RST_V_V_0 = 18
-    delta 34 In_CLOSE = 10
-    delta 34 In_SEND = 34
-    delta 34 In_ACK_V_V_0 = 18
-    delta 37 In_CLOSECONNECTION = 37
-    delta 37 In_ACK_PSH_V_V_1 = 37
-    delta 37 In_SYN_ACK_V_V_0 = 37
-    delta 37 In_RST_V_V_0 = 42
-    delta 37 In_ACCEPT = 37
-    delta 37 In_FIN_ACK_V_V_0 = 37
-    delta 37 In_LISTEN = 37
-    delta 37 In_SYN_V_V_0 = 37
-    delta 37 In_RCV = 37
-    delta 37 In_ACK_RST_V_V_0 = 42
-    delta 37 In_CLOSE = 37
-    delta 37 In_SEND = 37
-    delta 37 In_ACK_V_V_0 = 37
-    delta 38 In_CLOSECONNECTION = 31
-    delta 38 In_ACK_PSH_V_V_1 = 38
-    delta 38 In_SYN_ACK_V_V_0 = 38
-    delta 38 In_RST_V_V_0 = 43
-    delta 38 In_ACCEPT = 38
-    delta 38 In_FIN_ACK_V_V_0 = 38
-    delta 38 In_LISTEN = 38
-    delta 38 In_SYN_V_V_0 = 38
-    delta 38 In_RCV = 38
-    delta 38 In_ACK_RST_V_V_0 = 43
-    delta 38 In_CLOSE = 37
-    delta 38 In_SEND = 38
-    delta 38 In_ACK_V_V_0 = 38
-    delta 39 In_CLOSECONNECTION = 39
-    delta 39 In_ACK_PSH_V_V_1 = 39
-    delta 39 In_SYN_ACK_V_V_0 = 39
-    delta 39 In_RST_V_V_0 = 39
-    delta 39 In_ACCEPT = 43
-    delta 39 In_FIN_ACK_V_V_0 = 39
-    delta 39 In_LISTEN = 39
-    delta 39 In_SYN_V_V_0 = 4
-    delta 39 In_RCV = 39
-    delta 39 In_ACK_RST_V_V_0 = 39
-    delta 39 In_CLOSE = 42
-    delta 39 In_SEND = 39
-    delta 39 In_ACK_V_V_0 = 39
-    delta 40 In_CLOSECONNECTION = 40
-    delta 40 In_ACK_PSH_V_V_1 = 32
-    delta 40 In_SYN_ACK_V_V_0 = 44
-    delta 40 In_RST_V_V_0 = 32
-    delta 40 In_ACCEPT = 16
-    delta 40 In_FIN_ACK_V_V_0 = 32
-    delta 40 In_LISTEN = 40
-    delta 40 In_SYN_V_V_0 = 40
-    delta 40 In_RCV = 40
-    delta 40 In_ACK_RST_V_V_0 = 45
-    delta 40 In_CLOSE = 10
-    delta 40 In_SEND = 40
-    delta 40 In_ACK_V_V_0 = 32
-    delta 41 In_CLOSECONNECTION = 12
-    delta 41 In_ACK_PSH_V_V_1 = 41
-    delta 41 In_SYN_ACK_V_V_0 = 41
-    delta 41 In_RST_V_V_0 = 41
-    delta 41 In_ACCEPT = 41
-    delta 41 In_FIN_ACK_V_V_0 = 41
-    delta 41 In_LISTEN = 41
-    delta 41 In_SYN_V_V_0 = 46
-    delta 41 In_RCV = 41
-    delta 41 In_ACK_RST_V_V_0 = 41
-    delta 41 In_CLOSE = 2
-    delta 41 In_SEND = 41
-    delta 41 In_ACK_V_V_0 = 41
-    delta 42 In_CLOSECONNECTION = 42
-    delta 42 In_ACK_PSH_V_V_1 = 42
-    delta 42 In_SYN_ACK_V_V_0 = 42
-    delta 42 In_RST_V_V_0 = 42
-    delta 42 In_ACCEPT = 42
-    delta 42 In_FIN_ACK_V_V_0 = 42
-    delta 42 In_LISTEN = 42
-    delta 42 In_SYN_V_V_0 = 2
-    delta 42 In_RCV = 42
-    delta 42 In_ACK_RST_V_V_0 = 42
-    delta 42 In_CLOSE = 42
-    delta 42 In_SEND = 42
-    delta 42 In_ACK_V_V_0 = 42
-    delta 43 In_CLOSECONNECTION = 39
-    delta 43 In_ACK_PSH_V_V_1 = 43
-    delta 43 In_SYN_ACK_V_V_0 = 43
-    delta 43 In_RST_V_V_0 = 43
-    delta 43 In_ACCEPT = 43
-    delta 43 In_FIN_ACK_V_V_0 = 43
-    delta 43 In_LISTEN = 43
-    delta 43 In_SYN_V_V_0 = 7
-    delta 43 In_RCV = 43
-    delta 43 In_ACK_RST_V_V_0 = 43
-    delta 43 In_CLOSE = 42
-    delta 43 In_SEND = 43
-    delta 43 In_ACK_V_V_0 = 43
-    delta 44 In_CLOSECONNECTION = 44
-    delta 44 In_ACK_PSH_V_V_1 = 32
-    delta 44 In_SYN_ACK_V_V_0 = 44
-    delta 44 In_RST_V_V_0 = 32
-    delta 44 In_ACCEPT = 23
-    delta 44 In_FIN_ACK_V_V_0 = 32
-    delta 44 In_LISTEN = 44
-    delta 44 In_SYN_V_V_0 = 40
-    delta 44 In_RCV = 44
-    delta 44 In_ACK_RST_V_V_0 = 32
-    delta 44 In_CLOSE = 10
-    delta 44 In_SEND = 44
-    delta 44 In_ACK_V_V_0 = 32
-    delta 45 In_CLOSECONNECTION = 45
-    delta 45 In_ACK_PSH_V_V_1 = 32
-    delta 45 In_SYN_ACK_V_V_0 = 32
-    delta 45 In_RST_V_V_0 = 45
-    delta 45 In_ACCEPT = 25
-    delta 45 In_FIN_ACK_V_V_0 = 32
-    delta 45 In_LISTEN = 45
-    delta 45 In_SYN_V_V_0 = 45
-    delta 45 In_RCV = 45
-    delta 45 In_ACK_RST_V_V_0 = 45
-    delta 45 In_CLOSE = 2
-    delta 45 In_SEND = 45
-    delta 45 In_ACK_V_V_0 = 32
-    delta 46 In_CLOSECONNECTION = 16
-    delta 46 In_ACK_PSH_V_V_1 = 47
-    delta 46 In_SYN_ACK_V_V_0 = 48
-    delta 46 In_RST_V_V_0 = 41
-    delta 46 In_ACCEPT = 46
-    delta 46 In_FIN_ACK_V_V_0 = 49
-    delta 46 In_LISTEN = 46
-    delta 46 In_SYN_V_V_0 = 46
-    delta 46 In_RCV = 46
-    delta 46 In_ACK_RST_V_V_0 = 50
-    delta 46 In_CLOSE = 10
-    delta 46 In_SEND = 46
-    delta 46 In_ACK_V_V_0 = 47
-    delta 50 In_CLOSECONNECTION = 25
-    delta 50 In_ACK_PSH_V_V_1 = 41
-    delta 50 In_SYN_ACK_V_V_0 = 41
-    delta 50 In_RST_V_V_0 = 50
-    delta 50 In_ACCEPT = 50
-    delta 50 In_FIN_ACK_V_V_0 = 41
-    delta 50 In_LISTEN = 50
-    delta 50 In_SYN_V_V_0 = 50
-    delta 50 In_RCV = 50
-    delta 50 In_ACK_RST_V_V_0 = 50
-    delta 50 In_CLOSE = 2
-    delta 50 In_SEND = 50
-    delta 50 In_ACK_V_V_0 = 41
-    delta 47 In_CLOSECONNECTION = 22
-    delta 47 In_ACK_PSH_V_V_1 = 47
-    delta 47 In_SYN_ACK_V_V_0 = 51
-    delta 47 In_RST_V_V_0 = 51
-    delta 47 In_ACCEPT = 47
-    delta 47 In_FIN_ACK_V_V_0 = 49
-    delta 47 In_LISTEN = 47
-    delta 47 In_SYN_V_V_0 = 51
-    delta 47 In_RCV = 47
-    delta 47 In_ACK_RST_V_V_0 = 51
-    delta 47 In_CLOSE = 2
-    delta 47 In_SEND = 47
-    delta 47 In_ACK_V_V_0 = 47
-    delta 48 In_CLOSECONNECTION = 23
-    delta 48 In_ACK_PSH_V_V_1 = 41
-    delta 48 In_SYN_ACK_V_V_0 = 48
-    delta 48 In_RST_V_V_0 = 41
-    delta 48 In_ACCEPT = 48
-    delta 48 In_FIN_ACK_V_V_0 = 41
-    delta 48 In_LISTEN = 48
-    delta 48 In_SYN_V_V_0 = 46
-    delta 48 In_RCV = 48
-    delta 48 In_ACK_RST_V_V_0 = 41
-    delta 48 In_CLOSE = 10
-    delta 48 In_SEND = 48
-    delta 48 In_ACK_V_V_0 = 41
-    delta 49 In_CLOSECONNECTION = 24
-    delta 49 In_ACK_PSH_V_V_1 = 49
-    delta 49 In_SYN_ACK_V_V_0 = 51
-    delta 49 In_RST_V_V_0 = 51
-    delta 49 In_ACCEPT = 49
-    delta 49 In_FIN_ACK_V_V_0 = 49
-    delta 49 In_LISTEN = 49
-    delta 49 In_SYN_V_V_0 = 51
-    delta 49 In_RCV = 49
-    delta 49 In_ACK_RST_V_V_0 = 51
-    delta 49 In_CLOSE = 2
-    delta 49 In_SEND = 49
-    delta 49 In_ACK_V_V_0 = 49
-    delta 51 In_CLOSECONNECTION = 32
-    delta 51 In_ACK_PSH_V_V_1 = 51
-    delta 51 In_SYN_ACK_V_V_0 = 51
-    delta 51 In_RST_V_V_0 = 51
-    delta 51 In_ACCEPT = 51
-    delta 51 In_FIN_ACK_V_V_0 = 51
-    delta 51 In_LISTEN = 51
-    delta 51 In_SYN_V_V_0 = 52
-    delta 51 In_RCV = 51
-    delta 51 In_ACK_RST_V_V_0 = 51
-    delta 51 In_CLOSE = 2
-    delta 51 In_SEND = 51
-    delta 51 In_ACK_V_V_0 = 51
-    delta 52 In_CLOSECONNECTION = 40
-    delta 52 In_ACK_PSH_V_V_1 = 51
-    delta 52 In_SYN_ACK_V_V_0 = 53
-    delta 52 In_RST_V_V_0 = 51
-    delta 52 In_ACCEPT = 52
-    delta 52 In_FIN_ACK_V_V_0 = 51
-    delta 52 In_LISTEN = 52
-    delta 52 In_SYN_V_V_0 = 52
-    delta 52 In_RCV = 52
-    delta 52 In_ACK_RST_V_V_0 = 54
-    delta 52 In_CLOSE = 10
-    delta 52 In_SEND = 52
-    delta 52 In_ACK_V_V_0 = 51
-    delta 53 In_CLOSECONNECTION = 44
-    delta 53 In_ACK_PSH_V_V_1 = 51
-    delta 53 In_SYN_ACK_V_V_0 = 53
-    delta 53 In_RST_V_V_0 = 51
-    delta 53 In_ACCEPT = 53
-    delta 53 In_FIN_ACK_V_V_0 = 51
-    delta 53 In_LISTEN = 53
-    delta 53 In_SYN_V_V_0 = 52
-    delta 53 In_RCV = 53
-    delta 53 In_ACK_RST_V_V_0 = 51
-    delta 53 In_CLOSE = 10
-    delta 53 In_SEND = 53
-    delta 53 In_ACK_V_V_0 = 51
-    delta 54 In_CLOSECONNECTION = 45
-    delta 54 In_ACK_PSH_V_V_1 = 51
-    delta 54 In_SYN_ACK_V_V_0 = 51
-    delta 54 In_RST_V_V_0 = 54
-    delta 54 In_ACCEPT = 54
-    delta 54 In_FIN_ACK_V_V_0 = 51
-    delta 54 In_LISTEN = 54
-    delta 54 In_SYN_V_V_0 = 54
-    delta 54 In_RCV = 54
-    delta 54 In_ACK_RST_V_V_0 = 54
-    delta 54 In_CLOSE = 2
-    delta 54 In_SEND = 54
-    delta 54 In_ACK_V_V_0 = 51
-    delta _ _ = error "haal-gen: undefined transition"
-    lambda 0 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 0 In_ACK_PSH_V_V_1 = Out_RST_ZERO_ZERO_0
-    lambda 0 In_SYN_ACK_V_V_0 = Out_RST_ZERO_ZERO_0
-    lambda 0 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 0 In_ACCEPT = Out_TIMEOUT
-    lambda 0 In_FIN_ACK_V_V_0 = Out_RST_ZERO_ZERO_0
-    lambda 0 In_LISTEN = Out_TIMEOUT
-    lambda 0 In_SYN_V_V_0 = Out_ACK_RST_ZERO_NEXT_0
-    lambda 0 In_RCV = Out_TIMEOUT
-    lambda 0 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 0 In_CLOSE = Out_TIMEOUT
-    lambda 0 In_SEND = Out_TIMEOUT
-    lambda 0 In_ACK_V_V_0 = Out_RST_ZERO_ZERO_0
-    lambda 1 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 1 In_ACK_PSH_V_V_1 = Out_RST_ZERO_ZERO_0
-    lambda 1 In_SYN_ACK_V_V_0 = Out_RST_ZERO_ZERO_0
-    lambda 1 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 1 In_ACCEPT = Out_TIMEOUT
-    lambda 1 In_FIN_ACK_V_V_0 = Out_RST_ZERO_ZERO_0
-    lambda 1 In_LISTEN = Out_TIMEOUT
-    lambda 1 In_SYN_V_V_0 = Out_ACK_SYN_FRESH_NEXT_0
-    lambda 1 In_RCV = Out_TIMEOUT
-    lambda 1 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 1 In_CLOSE = Out_TIMEOUT
-    lambda 1 In_SEND = Out_TIMEOUT
-    lambda 1 In_ACK_V_V_0 = Out_RST_ZERO_ZERO_0
-    lambda 2 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 2 In_ACK_PSH_V_V_1 = Out_RST_ZERO_ZERO_0
-    lambda 2 In_SYN_ACK_V_V_0 = Out_RST_ZERO_ZERO_0
-    lambda 2 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 2 In_ACCEPT = Out_TIMEOUT
-    lambda 2 In_FIN_ACK_V_V_0 = Out_RST_ZERO_ZERO_0
-    lambda 2 In_LISTEN = Out_TIMEOUT
-    lambda 2 In_SYN_V_V_0 = Out_ACK_RST_ZERO_NEXT_0
-    lambda 2 In_RCV = Out_TIMEOUT
-    lambda 2 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 2 In_CLOSE = Out_TIMEOUT
-    lambda 2 In_SEND = Out_TIMEOUT
-    lambda 2 In_ACK_V_V_0 = Out_RST_ZERO_ZERO_0
-    lambda 4 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 4 In_ACK_PSH_V_V_1 = Out_ACK_NEXT_NEXT_0
-    lambda 4 In_SYN_ACK_V_V_0 = Out_RST_NEXT_ZERO_0
-    lambda 4 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 4 In_ACCEPT = Out_TIMEOUT
-    lambda 4 In_FIN_ACK_V_V_0 = Out_ACK_NEXT_NEXT_0
-    lambda 4 In_LISTEN = Out_TIMEOUT
-    lambda 4 In_SYN_V_V_0 = Out_TIMEOUT
-    lambda 4 In_RCV = Out_TIMEOUT
-    lambda 4 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 4 In_CLOSE = Out_TIMEOUT
-    lambda 4 In_SEND = Out_TIMEOUT
-    lambda 4 In_ACK_V_V_0 = Out_TIMEOUT
-    lambda 3 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 3 In_ACK_PSH_V_V_1 = Out_RST_ZERO_ZERO_0
-    lambda 3 In_SYN_ACK_V_V_0 = Out_RST_ZERO_ZERO_0
-    lambda 3 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 3 In_ACCEPT = Out_TIMEOUT
-    lambda 3 In_FIN_ACK_V_V_0 = Out_RST_ZERO_ZERO_0
-    lambda 3 In_LISTEN = Out_TIMEOUT
-    lambda 3 In_SYN_V_V_0 = Out_ACK_SYN_FRESH_NEXT_0
-    lambda 3 In_RCV = Out_TIMEOUT
-    lambda 3 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 3 In_CLOSE = Out_TIMEOUT
-    lambda 3 In_SEND = Out_TIMEOUT
-    lambda 3 In_ACK_V_V_0 = Out_RST_ZERO_ZERO_0
-    lambda 10 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 10 In_ACK_PSH_V_V_1 = Out_RST_NEXT_ZERO_0
-    lambda 10 In_SYN_ACK_V_V_0 = Out_RST_NEXT_ZERO_0
-    lambda 10 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 10 In_ACCEPT = Out_TIMEOUT
-    lambda 10 In_FIN_ACK_V_V_0 = Out_RST_NEXT_ZERO_0
-    lambda 10 In_LISTEN = Out_TIMEOUT
-    lambda 10 In_SYN_V_V_0 = Out_ACK_RST_ZERO_NEXT_0
-    lambda 10 In_RCV = Out_TIMEOUT
-    lambda 10 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 10 In_CLOSE = Out_TIMEOUT
-    lambda 10 In_SEND = Out_TIMEOUT
-    lambda 10 In_ACK_V_V_0 = Out_RST_NEXT_ZERO_0
-    lambda 6 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 6 In_ACK_PSH_V_V_1 = Out_RST_NEXT_ZERO_0
-    lambda 6 In_SYN_ACK_V_V_0 = Out_RST_NEXT_ZERO_0
-    lambda 6 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 6 In_ACCEPT = Out_TIMEOUT
-    lambda 6 In_FIN_ACK_V_V_0 = Out_RST_NEXT_ZERO_0
-    lambda 6 In_LISTEN = Out_TIMEOUT
-    lambda 6 In_SYN_V_V_0 = Out_ACK_SYN_FRESH_NEXT_0
-    lambda 6 In_RCV = Out_TIMEOUT
-    lambda 6 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 6 In_CLOSE = Out_TIMEOUT
-    lambda 6 In_SEND = Out_TIMEOUT
-    lambda 6 In_ACK_V_V_0 = Out_RST_NEXT_ZERO_0
-    lambda 8 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 8 In_ACK_PSH_V_V_1 = Out_ACK_NEXT_NEXT_0
-    lambda 8 In_SYN_ACK_V_V_0 = Out_ACK_RST_NEXT_CURRENT_0
-    lambda 8 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 8 In_ACCEPT = Out_TIMEOUT
-    lambda 8 In_FIN_ACK_V_V_0 = Out_ACK_NEXT_NEXT_0
-    lambda 8 In_LISTEN = Out_TIMEOUT
-    lambda 8 In_SYN_V_V_0 = Out_ACK_RST_NEXT_CURRENT_0
-    lambda 8 In_RCV = Out_TIMEOUT
-    lambda 8 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 8 In_CLOSE = Out_ACK_RST_NEXT_CURRENT_0
-    lambda 8 In_SEND = Out_TIMEOUT
-    lambda 8 In_ACK_V_V_0 = Out_TIMEOUT
-    lambda 5 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 5 In_ACK_PSH_V_V_1 = Out_ACK_NEXT_NEXT_0
-    lambda 5 In_SYN_ACK_V_V_0 = Out_ACK_RST_NEXT_CURRENT_0
-    lambda 5 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 5 In_ACCEPT = Out_TIMEOUT
-    lambda 5 In_FIN_ACK_V_V_0 = Out_ACK_NEXT_NEXT_0
-    lambda 5 In_LISTEN = Out_TIMEOUT
-    lambda 5 In_SYN_V_V_0 = Out_ACK_RST_NEXT_CURRENT_0
-    lambda 5 In_RCV = Out_TIMEOUT
-    lambda 5 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 5 In_CLOSE = Out_ACK_RST_NEXT_CURRENT_0
-    lambda 5 In_SEND = Out_TIMEOUT
-    lambda 5 In_ACK_V_V_0 = Out_TIMEOUT
-    lambda 7 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 7 In_ACK_PSH_V_V_1 = Out_ACK_NEXT_NEXT_0
-    lambda 7 In_SYN_ACK_V_V_0 = Out_RST_NEXT_ZERO_0
-    lambda 7 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 7 In_ACCEPT = Out_TIMEOUT
-    lambda 7 In_FIN_ACK_V_V_0 = Out_ACK_NEXT_NEXT_0
-    lambda 7 In_LISTEN = Out_TIMEOUT
-    lambda 7 In_SYN_V_V_0 = Out_TIMEOUT
-    lambda 7 In_RCV = Out_TIMEOUT
-    lambda 7 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 7 In_CLOSE = Out_TIMEOUT
-    lambda 7 In_SEND = Out_TIMEOUT
-    lambda 7 In_ACK_V_V_0 = Out_TIMEOUT
-    lambda 9 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 9 In_ACK_PSH_V_V_1 = Out_RST_ZERO_ZERO_0
-    lambda 9 In_SYN_ACK_V_V_0 = Out_RST_ZERO_ZERO_0
-    lambda 9 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 9 In_ACCEPT = Out_TIMEOUT
-    lambda 9 In_FIN_ACK_V_V_0 = Out_RST_ZERO_ZERO_0
-    lambda 9 In_LISTEN = Out_TIMEOUT
-    lambda 9 In_SYN_V_V_0 = Out_TIMEOUT
-    lambda 9 In_RCV = Out_TIMEOUT
-    lambda 9 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 9 In_CLOSE = Out_TIMEOUT
-    lambda 9 In_SEND = Out_TIMEOUT
-    lambda 9 In_ACK_V_V_0 = Out_RST_ZERO_ZERO_0
-    lambda 11 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 11 In_ACK_PSH_V_V_1 = Out_RST_NEXT_ZERO_0
-    lambda 11 In_SYN_ACK_V_V_0 = Out_RST_NEXT_ZERO_0
-    lambda 11 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 11 In_ACCEPT = Out_TIMEOUT
-    lambda 11 In_FIN_ACK_V_V_0 = Out_RST_NEXT_ZERO_0
-    lambda 11 In_LISTEN = Out_TIMEOUT
-    lambda 11 In_SYN_V_V_0 = Out_ACK_SYN_FRESH_NEXT_0
-    lambda 11 In_RCV = Out_TIMEOUT
-    lambda 11 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 11 In_CLOSE = Out_TIMEOUT
-    lambda 11 In_SEND = Out_TIMEOUT
-    lambda 11 In_ACK_V_V_0 = Out_RST_NEXT_ZERO_0
-    lambda 12 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 12 In_ACK_PSH_V_V_1 = Out_RST_ZERO_ZERO_0
-    lambda 12 In_SYN_ACK_V_V_0 = Out_RST_ZERO_ZERO_0
-    lambda 12 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 12 In_ACCEPT = Out_TIMEOUT
-    lambda 12 In_FIN_ACK_V_V_0 = Out_RST_ZERO_ZERO_0
-    lambda 12 In_LISTEN = Out_TIMEOUT
-    lambda 12 In_SYN_V_V_0 = Out_ACK_SYN_FRESH_NEXT_0
-    lambda 12 In_RCV = Out_TIMEOUT
-    lambda 12 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 12 In_CLOSE = Out_TIMEOUT
-    lambda 12 In_SEND = Out_TIMEOUT
-    lambda 12 In_ACK_V_V_0 = Out_RST_ZERO_ZERO_0
-    lambda 13 In_CLOSECONNECTION = Out_ACK_FIN_NEXT_CURRENT_0
-    lambda 13 In_ACK_PSH_V_V_1 = Out_ACK_NEXT_NEXT_0
-    lambda 13 In_SYN_ACK_V_V_0 = Out_ACK_RST_NEXT_CURRENT_0
-    lambda 13 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 13 In_ACCEPT = Out_TIMEOUT
-    lambda 13 In_FIN_ACK_V_V_0 = Out_ACK_NEXT_NEXT_0
-    lambda 13 In_LISTEN = Out_TIMEOUT
-    lambda 13 In_SYN_V_V_0 = Out_ACK_RST_NEXT_CURRENT_0
-    lambda 13 In_RCV = Out_TIMEOUT
-    lambda 13 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 13 In_CLOSE = Out_TIMEOUT
-    lambda 13 In_SEND = Out_ACK_PSH_NEXT_CURRENT_1
-    lambda 13 In_ACK_V_V_0 = Out_TIMEOUT
-    lambda 14 In_CLOSECONNECTION = Out_ACK_FIN_NEXT_CURRENT_0
-    lambda 14 In_ACK_PSH_V_V_1 = Out_ACK_NEXT_NEXT_0
-    lambda 14 In_SYN_ACK_V_V_0 = Out_ACK_RST_NEXT_CURRENT_0
-    lambda 14 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 14 In_ACCEPT = Out_TIMEOUT
-    lambda 14 In_FIN_ACK_V_V_0 = Out_ACK_NEXT_NEXT_0
-    lambda 14 In_LISTEN = Out_TIMEOUT
-    lambda 14 In_SYN_V_V_0 = Out_ACK_RST_NEXT_CURRENT_0
-    lambda 14 In_RCV = Out_TIMEOUT
-    lambda 14 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 14 In_CLOSE = Out_TIMEOUT
-    lambda 14 In_SEND = Out_ACK_PSH_NEXT_CURRENT_1
-    lambda 14 In_ACK_V_V_0 = Out_TIMEOUT
-    lambda 15 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 15 In_ACK_PSH_V_V_1 = Out_RST_ZERO_ZERO_0
-    lambda 15 In_SYN_ACK_V_V_0 = Out_RST_ZERO_ZERO_0
-    lambda 15 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 15 In_ACCEPT = Out_TIMEOUT
-    lambda 15 In_FIN_ACK_V_V_0 = Out_RST_ZERO_ZERO_0
-    lambda 15 In_LISTEN = Out_TIMEOUT
-    lambda 15 In_SYN_V_V_0 = Out_TIMEOUT
-    lambda 15 In_RCV = Out_TIMEOUT
-    lambda 15 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 15 In_CLOSE = Out_TIMEOUT
-    lambda 15 In_SEND = Out_TIMEOUT
-    lambda 15 In_ACK_V_V_0 = Out_RST_ZERO_ZERO_0
-    lambda 16 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 16 In_ACK_PSH_V_V_1 = Out_ACK_NEXT_NEXT_0
-    lambda 16 In_SYN_ACK_V_V_0 = Out_RST_NEXT_ZERO_0
-    lambda 16 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 16 In_ACCEPT = Out_TIMEOUT
-    lambda 16 In_FIN_ACK_V_V_0 = Out_ACK_NEXT_NEXT_0
-    lambda 16 In_LISTEN = Out_TIMEOUT
-    lambda 16 In_SYN_V_V_0 = Out_TIMEOUT
-    lambda 16 In_RCV = Out_TIMEOUT
-    lambda 16 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 16 In_CLOSE = Out_TIMEOUT
-    lambda 16 In_SEND = Out_TIMEOUT
-    lambda 16 In_ACK_V_V_0 = Out_TIMEOUT
-    lambda 19 In_CLOSECONNECTION = Out_ACK_FIN_NEXT_CURRENT_0
-    lambda 19 In_ACK_PSH_V_V_1 = Out_ACK_NEXT_NEXT_0
-    lambda 19 In_SYN_ACK_V_V_0 = Out_ACK_RST_NEXT_CURRENT_0
-    lambda 19 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 19 In_ACCEPT = Out_TIMEOUT
-    lambda 19 In_FIN_ACK_V_V_0 = Out_ACK_NEXT_NEXT_0
-    lambda 19 In_LISTEN = Out_TIMEOUT
-    lambda 19 In_SYN_V_V_0 = Out_ACK_RST_NEXT_CURRENT_0
-    lambda 19 In_RCV = Out_TIMEOUT
-    lambda 19 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 19 In_CLOSE = Out_TIMEOUT
-    lambda 19 In_SEND = Out_ACK_PSH_NEXT_CURRENT_1
-    lambda 19 In_ACK_V_V_0 = Out_TIMEOUT
-    lambda 17 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 17 In_ACK_PSH_V_V_1 = Out_RST_NEXT_ZERO_0
-    lambda 17 In_SYN_ACK_V_V_0 = Out_ACK_RST_NEXT_CURRENT_0
-    lambda 17 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 17 In_ACCEPT = Out_TIMEOUT
-    lambda 17 In_FIN_ACK_V_V_0 = Out_TIMEOUT
-    lambda 17 In_LISTEN = Out_TIMEOUT
-    lambda 17 In_SYN_V_V_0 = Out_ACK_RST_NEXT_CURRENT_0
-    lambda 17 In_RCV = Out_TIMEOUT
-    lambda 17 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 17 In_CLOSE = Out_TIMEOUT
-    lambda 17 In_SEND = Out_TIMEOUT
-    lambda 17 In_ACK_V_V_0 = Out_TIMEOUT
-    lambda 18 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 18 In_ACK_PSH_V_V_1 = Out_RST_ZERO_ZERO_0
-    lambda 18 In_SYN_ACK_V_V_0 = Out_RST_ZERO_ZERO_0
-    lambda 18 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 18 In_ACCEPT = Out_TIMEOUT
-    lambda 18 In_FIN_ACK_V_V_0 = Out_RST_ZERO_ZERO_0
-    lambda 18 In_LISTEN = Out_TIMEOUT
-    lambda 18 In_SYN_V_V_0 = Out_ACK_SYN_FRESH_NEXT_0
-    lambda 18 In_RCV = Out_TIMEOUT
-    lambda 18 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 18 In_CLOSE = Out_TIMEOUT
-    lambda 18 In_SEND = Out_TIMEOUT
-    lambda 18 In_ACK_V_V_0 = Out_RST_ZERO_ZERO_0
-    lambda 21 In_CLOSECONNECTION = Out_ACK_FIN_NEXT_CURRENT_0
-    lambda 21 In_ACK_PSH_V_V_1 = Out_ACK_NEXT_NEXT_0
-    lambda 21 In_SYN_ACK_V_V_0 = Out_ACK_RST_NEXT_CURRENT_0
-    lambda 21 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 21 In_ACCEPT = Out_TIMEOUT
-    lambda 21 In_FIN_ACK_V_V_0 = Out_ACK_NEXT_NEXT_0
-    lambda 21 In_LISTEN = Out_TIMEOUT
-    lambda 21 In_SYN_V_V_0 = Out_ACK_RST_NEXT_CURRENT_0
-    lambda 21 In_RCV = Out_TIMEOUT
-    lambda 21 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 21 In_CLOSE = Out_TIMEOUT
-    lambda 21 In_SEND = Out_ACK_PSH_NEXT_CURRENT_1
-    lambda 21 In_ACK_V_V_0 = Out_TIMEOUT
-    lambda 20 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 20 In_ACK_PSH_V_V_1 = Out_RST_NEXT_ZERO_0
-    lambda 20 In_SYN_ACK_V_V_0 = Out_ACK_RST_NEXT_CURRENT_0
-    lambda 20 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 20 In_ACCEPT = Out_TIMEOUT
-    lambda 20 In_FIN_ACK_V_V_0 = Out_ACK_NEXT_NEXT_0
-    lambda 20 In_LISTEN = Out_TIMEOUT
-    lambda 20 In_SYN_V_V_0 = Out_ACK_RST_NEXT_CURRENT_0
-    lambda 20 In_RCV = Out_TIMEOUT
-    lambda 20 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 20 In_CLOSE = Out_TIMEOUT
-    lambda 20 In_SEND = Out_TIMEOUT
-    lambda 20 In_ACK_V_V_0 = Out_TIMEOUT
-    lambda 23 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 23 In_ACK_PSH_V_V_1 = Out_RST_NEXT_ZERO_0
-    lambda 23 In_SYN_ACK_V_V_0 = Out_RST_NEXT_ZERO_0
-    lambda 23 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 23 In_ACCEPT = Out_TIMEOUT
-    lambda 23 In_FIN_ACK_V_V_0 = Out_RST_NEXT_ZERO_0
-    lambda 23 In_LISTEN = Out_TIMEOUT
-    lambda 23 In_SYN_V_V_0 = Out_ACK_SYN_FRESH_NEXT_0
-    lambda 23 In_RCV = Out_TIMEOUT
-    lambda 23 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 23 In_CLOSE = Out_TIMEOUT
-    lambda 23 In_SEND = Out_TIMEOUT
-    lambda 23 In_ACK_V_V_0 = Out_RST_NEXT_ZERO_0
-    lambda 22 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 22 In_ACK_PSH_V_V_1 = Out_ACK_NEXT_NEXT_0
-    lambda 22 In_SYN_ACK_V_V_0 = Out_ACK_RST_NEXT_CURRENT_0
-    lambda 22 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 22 In_ACCEPT = Out_TIMEOUT
-    lambda 22 In_FIN_ACK_V_V_0 = Out_ACK_NEXT_NEXT_0
-    lambda 22 In_LISTEN = Out_TIMEOUT
-    lambda 22 In_SYN_V_V_0 = Out_ACK_RST_NEXT_CURRENT_0
-    lambda 22 In_RCV = Out_TIMEOUT
-    lambda 22 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 22 In_CLOSE = Out_ACK_RST_NEXT_CURRENT_0
-    lambda 22 In_SEND = Out_TIMEOUT
-    lambda 22 In_ACK_V_V_0 = Out_TIMEOUT
-    lambda 24 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 24 In_ACK_PSH_V_V_1 = Out_ACK_NEXT_NEXT_0
-    lambda 24 In_SYN_ACK_V_V_0 = Out_ACK_RST_NEXT_CURRENT_0
-    lambda 24 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 24 In_ACCEPT = Out_TIMEOUT
-    lambda 24 In_FIN_ACK_V_V_0 = Out_ACK_NEXT_NEXT_0
-    lambda 24 In_LISTEN = Out_TIMEOUT
-    lambda 24 In_SYN_V_V_0 = Out_ACK_RST_NEXT_CURRENT_0
-    lambda 24 In_RCV = Out_TIMEOUT
-    lambda 24 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 24 In_CLOSE = Out_ACK_RST_NEXT_CURRENT_0
-    lambda 24 In_SEND = Out_TIMEOUT
-    lambda 24 In_ACK_V_V_0 = Out_TIMEOUT
-    lambda 25 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 25 In_ACK_PSH_V_V_1 = Out_RST_ZERO_ZERO_0
-    lambda 25 In_SYN_ACK_V_V_0 = Out_RST_ZERO_ZERO_0
-    lambda 25 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 25 In_ACCEPT = Out_TIMEOUT
-    lambda 25 In_FIN_ACK_V_V_0 = Out_RST_ZERO_ZERO_0
-    lambda 25 In_LISTEN = Out_TIMEOUT
-    lambda 25 In_SYN_V_V_0 = Out_TIMEOUT
-    lambda 25 In_RCV = Out_TIMEOUT
-    lambda 25 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 25 In_CLOSE = Out_TIMEOUT
-    lambda 25 In_SEND = Out_TIMEOUT
-    lambda 25 In_ACK_V_V_0 = Out_RST_ZERO_ZERO_0
-    lambda 26 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 26 In_ACK_PSH_V_V_1 = Out_RST_NEXT_ZERO_0
-    lambda 26 In_SYN_ACK_V_V_0 = Out_ACK_RST_NEXT_CURRENT_0
-    lambda 26 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 26 In_ACCEPT = Out_TIMEOUT
-    lambda 26 In_FIN_ACK_V_V_0 = Out_TIMEOUT
-    lambda 26 In_LISTEN = Out_TIMEOUT
-    lambda 26 In_SYN_V_V_0 = Out_ACK_RST_NEXT_CURRENT_0
-    lambda 26 In_RCV = Out_TIMEOUT
-    lambda 26 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 26 In_CLOSE = Out_TIMEOUT
-    lambda 26 In_SEND = Out_TIMEOUT
-    lambda 26 In_ACK_V_V_0 = Out_TIMEOUT
-    lambda 27 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 27 In_ACK_PSH_V_V_1 = Out_RST_NEXT_ZERO_0
-    lambda 27 In_SYN_ACK_V_V_0 = Out_ACK_RST_NEXT_CURRENT_0
-    lambda 27 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 27 In_ACCEPT = Out_TIMEOUT
-    lambda 27 In_FIN_ACK_V_V_0 = Out_TIMEOUT
-    lambda 27 In_LISTEN = Out_TIMEOUT
-    lambda 27 In_SYN_V_V_0 = Out_ACK_RST_NEXT_CURRENT_0
-    lambda 27 In_RCV = Out_TIMEOUT
-    lambda 27 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 27 In_CLOSE = Out_TIMEOUT
-    lambda 27 In_SEND = Out_TIMEOUT
-    lambda 27 In_ACK_V_V_0 = Out_TIMEOUT
-    lambda 28 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 28 In_ACK_PSH_V_V_1 = Out_ACK_NEXT_NEXT_0
-    lambda 28 In_SYN_ACK_V_V_0 = Out_RST_NEXT_ZERO_0
-    lambda 28 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 28 In_ACCEPT = Out_TIMEOUT
-    lambda 28 In_FIN_ACK_V_V_0 = Out_ACK_NEXT_NEXT_0
-    lambda 28 In_LISTEN = Out_TIMEOUT
-    lambda 28 In_SYN_V_V_0 = Out_TIMEOUT
-    lambda 28 In_RCV = Out_TIMEOUT
-    lambda 28 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 28 In_CLOSE = Out_TIMEOUT
-    lambda 28 In_SEND = Out_TIMEOUT
-    lambda 28 In_ACK_V_V_0 = Out_TIMEOUT
-    lambda 29 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 29 In_ACK_PSH_V_V_1 = Out_RST_NEXT_ZERO_0
-    lambda 29 In_SYN_ACK_V_V_0 = Out_ACK_RST_NEXT_CURRENT_0
-    lambda 29 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 29 In_ACCEPT = Out_TIMEOUT
-    lambda 29 In_FIN_ACK_V_V_0 = Out_ACK_NEXT_NEXT_0
-    lambda 29 In_LISTEN = Out_TIMEOUT
-    lambda 29 In_SYN_V_V_0 = Out_ACK_RST_NEXT_CURRENT_0
-    lambda 29 In_RCV = Out_TIMEOUT
-    lambda 29 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 29 In_CLOSE = Out_TIMEOUT
-    lambda 29 In_SEND = Out_TIMEOUT
-    lambda 29 In_ACK_V_V_0 = Out_TIMEOUT
-    lambda 30 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 30 In_ACK_PSH_V_V_1 = Out_RST_NEXT_ZERO_0
-    lambda 30 In_SYN_ACK_V_V_0 = Out_ACK_RST_NEXT_CURRENT_0
-    lambda 30 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 30 In_ACCEPT = Out_TIMEOUT
-    lambda 30 In_FIN_ACK_V_V_0 = Out_ACK_NEXT_NEXT_0
-    lambda 30 In_LISTEN = Out_TIMEOUT
-    lambda 30 In_SYN_V_V_0 = Out_ACK_RST_NEXT_CURRENT_0
-    lambda 30 In_RCV = Out_TIMEOUT
-    lambda 30 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 30 In_CLOSE = Out_TIMEOUT
-    lambda 30 In_SEND = Out_TIMEOUT
-    lambda 30 In_ACK_V_V_0 = Out_TIMEOUT
-    lambda 31 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 31 In_ACK_PSH_V_V_1 = Out_ACK_NEXT_CURRENT_0
-    lambda 31 In_SYN_ACK_V_V_0 = Out_ACK_NEXT_CURRENT_0
-    lambda 31 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 31 In_ACCEPT = Out_TIMEOUT
-    lambda 31 In_FIN_ACK_V_V_0 = Out_ACK_NEXT_CURRENT_0
-    lambda 31 In_LISTEN = Out_TIMEOUT
-    lambda 31 In_SYN_V_V_0 = Out_TIMEOUT
-    lambda 31 In_RCV = Out_TIMEOUT
-    lambda 31 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 31 In_CLOSE = Out_TIMEOUT
-    lambda 31 In_SEND = Out_TIMEOUT
-    lambda 31 In_ACK_V_V_0 = Out_TIMEOUT
-    lambda 32 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 32 In_ACK_PSH_V_V_1 = Out_RST_ZERO_ZERO_0
-    lambda 32 In_SYN_ACK_V_V_0 = Out_RST_ZERO_ZERO_0
-    lambda 32 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 32 In_ACCEPT = Out_TIMEOUT
-    lambda 32 In_FIN_ACK_V_V_0 = Out_RST_ZERO_ZERO_0
-    lambda 32 In_LISTEN = Out_TIMEOUT
-    lambda 32 In_SYN_V_V_0 = Out_ACK_SYN_FRESH_NEXT_0
-    lambda 32 In_RCV = Out_TIMEOUT
-    lambda 32 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 32 In_CLOSE = Out_TIMEOUT
-    lambda 32 In_SEND = Out_TIMEOUT
-    lambda 32 In_ACK_V_V_0 = Out_RST_ZERO_ZERO_0
-    lambda 35 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 35 In_ACK_PSH_V_V_1 = Out_ACK_NEXT_NEXT_0
-    lambda 35 In_SYN_ACK_V_V_0 = Out_ACK_RST_NEXT_CURRENT_0
-    lambda 35 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 35 In_ACCEPT = Out_TIMEOUT
-    lambda 35 In_FIN_ACK_V_V_0 = Out_ACK_NEXT_NEXT_0
-    lambda 35 In_LISTEN = Out_TIMEOUT
-    lambda 35 In_SYN_V_V_0 = Out_ACK_RST_NEXT_CURRENT_0
-    lambda 35 In_RCV = Out_TIMEOUT
-    lambda 35 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 35 In_CLOSE = Out_ACK_RST_NEXT_CURRENT_0
-    lambda 35 In_SEND = Out_TIMEOUT
-    lambda 35 In_ACK_V_V_0 = Out_TIMEOUT
-    lambda 33 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 33 In_ACK_PSH_V_V_1 = Out_ACK_NEXT_NEXT_0
-    lambda 33 In_SYN_ACK_V_V_0 = Out_ACK_RST_NEXT_CURRENT_0
-    lambda 33 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 33 In_ACCEPT = Out_TIMEOUT
-    lambda 33 In_FIN_ACK_V_V_0 = Out_ACK_NEXT_NEXT_0
-    lambda 33 In_LISTEN = Out_TIMEOUT
-    lambda 33 In_SYN_V_V_0 = Out_ACK_RST_NEXT_CURRENT_0
-    lambda 33 In_RCV = Out_TIMEOUT
-    lambda 33 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 33 In_CLOSE = Out_ACK_RST_NEXT_CURRENT_0
-    lambda 33 In_SEND = Out_TIMEOUT
-    lambda 33 In_ACK_V_V_0 = Out_TIMEOUT
-    lambda 36 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 36 In_ACK_PSH_V_V_1 = Out_RST_ZERO_ZERO_0
-    lambda 36 In_SYN_ACK_V_V_0 = Out_RST_ZERO_ZERO_0
-    lambda 36 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 36 In_ACCEPT = Out_TIMEOUT
-    lambda 36 In_FIN_ACK_V_V_0 = Out_RST_ZERO_ZERO_0
-    lambda 36 In_LISTEN = Out_TIMEOUT
-    lambda 36 In_SYN_V_V_0 = Out_TIMEOUT
-    lambda 36 In_RCV = Out_TIMEOUT
-    lambda 36 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 36 In_CLOSE = Out_TIMEOUT
-    lambda 36 In_SEND = Out_TIMEOUT
-    lambda 36 In_ACK_V_V_0 = Out_RST_ZERO_ZERO_0
-    lambda 34 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 34 In_ACK_PSH_V_V_1 = Out_RST_NEXT_ZERO_0
-    lambda 34 In_SYN_ACK_V_V_0 = Out_RST_NEXT_ZERO_0
-    lambda 34 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 34 In_ACCEPT = Out_TIMEOUT
-    lambda 34 In_FIN_ACK_V_V_0 = Out_RST_NEXT_ZERO_0
-    lambda 34 In_LISTEN = Out_TIMEOUT
-    lambda 34 In_SYN_V_V_0 = Out_ACK_SYN_FRESH_NEXT_0
-    lambda 34 In_RCV = Out_TIMEOUT
-    lambda 34 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 34 In_CLOSE = Out_TIMEOUT
-    lambda 34 In_SEND = Out_TIMEOUT
-    lambda 34 In_ACK_V_V_0 = Out_RST_NEXT_ZERO_0
-    lambda 37 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 37 In_ACK_PSH_V_V_1 = Out_ACK_NEXT_CURRENT_0
-    lambda 37 In_SYN_ACK_V_V_0 = Out_ACK_NEXT_CURRENT_0
-    lambda 37 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 37 In_ACCEPT = Out_TIMEOUT
-    lambda 37 In_FIN_ACK_V_V_0 = Out_ACK_NEXT_CURRENT_0
-    lambda 37 In_LISTEN = Out_TIMEOUT
-    lambda 37 In_SYN_V_V_0 = Out_TIMEOUT
-    lambda 37 In_RCV = Out_TIMEOUT
-    lambda 37 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 37 In_CLOSE = Out_TIMEOUT
-    lambda 37 In_SEND = Out_TIMEOUT
-    lambda 37 In_ACK_V_V_0 = Out_TIMEOUT
-    lambda 38 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 38 In_ACK_PSH_V_V_1 = Out_ACK_NEXT_CURRENT_0
-    lambda 38 In_SYN_ACK_V_V_0 = Out_ACK_NEXT_CURRENT_0
-    lambda 38 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 38 In_ACCEPT = Out_TIMEOUT
-    lambda 38 In_FIN_ACK_V_V_0 = Out_ACK_NEXT_CURRENT_0
-    lambda 38 In_LISTEN = Out_TIMEOUT
-    lambda 38 In_SYN_V_V_0 = Out_TIMEOUT
-    lambda 38 In_RCV = Out_TIMEOUT
-    lambda 38 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 38 In_CLOSE = Out_TIMEOUT
-    lambda 38 In_SEND = Out_TIMEOUT
-    lambda 38 In_ACK_V_V_0 = Out_TIMEOUT
-    lambda 39 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 39 In_ACK_PSH_V_V_1 = Out_ACK_FRESH_FRESH_0
-    lambda 39 In_SYN_ACK_V_V_0 = Out_ACK_FRESH_FRESH_0
-    lambda 39 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 39 In_ACCEPT = Out_TIMEOUT
-    lambda 39 In_FIN_ACK_V_V_0 = Out_ACK_FRESH_FRESH_0
-    lambda 39 In_LISTEN = Out_TIMEOUT
-    lambda 39 In_SYN_V_V_0 = Out_ACK_SYN_FRESH_NEXT_0
-    lambda 39 In_RCV = Out_TIMEOUT
-    lambda 39 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 39 In_CLOSE = Out_TIMEOUT
-    lambda 39 In_SEND = Out_TIMEOUT
-    lambda 39 In_ACK_V_V_0 = Out_ACK_FRESH_FRESH_0
-    lambda 40 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 40 In_ACK_PSH_V_V_1 = Out_RST_NEXT_ZERO_0
-    lambda 40 In_SYN_ACK_V_V_0 = Out_RST_NEXT_ZERO_0
-    lambda 40 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 40 In_ACCEPT = Out_TIMEOUT
-    lambda 40 In_FIN_ACK_V_V_0 = Out_RST_NEXT_ZERO_0
-    lambda 40 In_LISTEN = Out_TIMEOUT
-    lambda 40 In_SYN_V_V_0 = Out_TIMEOUT
-    lambda 40 In_RCV = Out_TIMEOUT
-    lambda 40 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 40 In_CLOSE = Out_TIMEOUT
-    lambda 40 In_SEND = Out_TIMEOUT
-    lambda 40 In_ACK_V_V_0 = Out_RST_NEXT_ZERO_0
-    lambda 41 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 41 In_ACK_PSH_V_V_1 = Out_RST_ZERO_ZERO_0
-    lambda 41 In_SYN_ACK_V_V_0 = Out_RST_ZERO_ZERO_0
-    lambda 41 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 41 In_ACCEPT = Out_TIMEOUT
-    lambda 41 In_FIN_ACK_V_V_0 = Out_RST_ZERO_ZERO_0
-    lambda 41 In_LISTEN = Out_TIMEOUT
-    lambda 41 In_SYN_V_V_0 = Out_ACK_SYN_FRESH_NEXT_0
-    lambda 41 In_RCV = Out_TIMEOUT
-    lambda 41 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 41 In_CLOSE = Out_TIMEOUT
-    lambda 41 In_SEND = Out_TIMEOUT
-    lambda 41 In_ACK_V_V_0 = Out_RST_ZERO_ZERO_0
-    lambda 42 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 42 In_ACK_PSH_V_V_1 = Out_ACK_FRESH_FRESH_0
-    lambda 42 In_SYN_ACK_V_V_0 = Out_ACK_FRESH_FRESH_0
-    lambda 42 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 42 In_ACCEPT = Out_TIMEOUT
-    lambda 42 In_FIN_ACK_V_V_0 = Out_ACK_FRESH_FRESH_0
-    lambda 42 In_LISTEN = Out_TIMEOUT
-    lambda 42 In_SYN_V_V_0 = Out_ACK_RST_ZERO_NEXT_0
-    lambda 42 In_RCV = Out_TIMEOUT
-    lambda 42 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 42 In_CLOSE = Out_TIMEOUT
-    lambda 42 In_SEND = Out_TIMEOUT
-    lambda 42 In_ACK_V_V_0 = Out_ACK_FRESH_FRESH_0
-    lambda 43 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 43 In_ACK_PSH_V_V_1 = Out_ACK_FRESH_FRESH_0
-    lambda 43 In_SYN_ACK_V_V_0 = Out_ACK_FRESH_FRESH_0
-    lambda 43 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 43 In_ACCEPT = Out_TIMEOUT
-    lambda 43 In_FIN_ACK_V_V_0 = Out_ACK_FRESH_FRESH_0
-    lambda 43 In_LISTEN = Out_TIMEOUT
-    lambda 43 In_SYN_V_V_0 = Out_ACK_SYN_FRESH_NEXT_0
-    lambda 43 In_RCV = Out_TIMEOUT
-    lambda 43 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 43 In_CLOSE = Out_TIMEOUT
-    lambda 43 In_SEND = Out_TIMEOUT
-    lambda 43 In_ACK_V_V_0 = Out_ACK_FRESH_FRESH_0
-    lambda 44 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 44 In_ACK_PSH_V_V_1 = Out_RST_NEXT_ZERO_0
-    lambda 44 In_SYN_ACK_V_V_0 = Out_RST_NEXT_ZERO_0
-    lambda 44 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 44 In_ACCEPT = Out_TIMEOUT
-    lambda 44 In_FIN_ACK_V_V_0 = Out_RST_NEXT_ZERO_0
-    lambda 44 In_LISTEN = Out_TIMEOUT
-    lambda 44 In_SYN_V_V_0 = Out_ACK_SYN_FRESH_NEXT_0
-    lambda 44 In_RCV = Out_TIMEOUT
-    lambda 44 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 44 In_CLOSE = Out_TIMEOUT
-    lambda 44 In_SEND = Out_TIMEOUT
-    lambda 44 In_ACK_V_V_0 = Out_RST_NEXT_ZERO_0
-    lambda 45 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 45 In_ACK_PSH_V_V_1 = Out_RST_ZERO_ZERO_0
-    lambda 45 In_SYN_ACK_V_V_0 = Out_RST_ZERO_ZERO_0
-    lambda 45 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 45 In_ACCEPT = Out_TIMEOUT
-    lambda 45 In_FIN_ACK_V_V_0 = Out_RST_ZERO_ZERO_0
-    lambda 45 In_LISTEN = Out_TIMEOUT
-    lambda 45 In_SYN_V_V_0 = Out_TIMEOUT
-    lambda 45 In_RCV = Out_TIMEOUT
-    lambda 45 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 45 In_CLOSE = Out_TIMEOUT
-    lambda 45 In_SEND = Out_TIMEOUT
-    lambda 45 In_ACK_V_V_0 = Out_RST_ZERO_ZERO_0
-    lambda 46 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 46 In_ACK_PSH_V_V_1 = Out_ACK_NEXT_NEXT_0
-    lambda 46 In_SYN_ACK_V_V_0 = Out_RST_NEXT_ZERO_0
-    lambda 46 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 46 In_ACCEPT = Out_TIMEOUT
-    lambda 46 In_FIN_ACK_V_V_0 = Out_ACK_NEXT_NEXT_0
-    lambda 46 In_LISTEN = Out_TIMEOUT
-    lambda 46 In_SYN_V_V_0 = Out_TIMEOUT
-    lambda 46 In_RCV = Out_TIMEOUT
-    lambda 46 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 46 In_CLOSE = Out_TIMEOUT
-    lambda 46 In_SEND = Out_TIMEOUT
-    lambda 46 In_ACK_V_V_0 = Out_TIMEOUT
-    lambda 50 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 50 In_ACK_PSH_V_V_1 = Out_RST_ZERO_ZERO_0
-    lambda 50 In_SYN_ACK_V_V_0 = Out_RST_ZERO_ZERO_0
-    lambda 50 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 50 In_ACCEPT = Out_TIMEOUT
-    lambda 50 In_FIN_ACK_V_V_0 = Out_RST_ZERO_ZERO_0
-    lambda 50 In_LISTEN = Out_TIMEOUT
-    lambda 50 In_SYN_V_V_0 = Out_TIMEOUT
-    lambda 50 In_RCV = Out_TIMEOUT
-    lambda 50 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 50 In_CLOSE = Out_TIMEOUT
-    lambda 50 In_SEND = Out_TIMEOUT
-    lambda 50 In_ACK_V_V_0 = Out_RST_ZERO_ZERO_0
-    lambda 47 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 47 In_ACK_PSH_V_V_1 = Out_ACK_NEXT_NEXT_0
-    lambda 47 In_SYN_ACK_V_V_0 = Out_ACK_RST_NEXT_CURRENT_0
-    lambda 47 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 47 In_ACCEPT = Out_TIMEOUT
-    lambda 47 In_FIN_ACK_V_V_0 = Out_ACK_NEXT_NEXT_0
-    lambda 47 In_LISTEN = Out_TIMEOUT
-    lambda 47 In_SYN_V_V_0 = Out_ACK_RST_NEXT_CURRENT_0
-    lambda 47 In_RCV = Out_TIMEOUT
-    lambda 47 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 47 In_CLOSE = Out_ACK_RST_NEXT_CURRENT_0
-    lambda 47 In_SEND = Out_TIMEOUT
-    lambda 47 In_ACK_V_V_0 = Out_TIMEOUT
-    lambda 48 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 48 In_ACK_PSH_V_V_1 = Out_RST_NEXT_ZERO_0
-    lambda 48 In_SYN_ACK_V_V_0 = Out_RST_NEXT_ZERO_0
-    lambda 48 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 48 In_ACCEPT = Out_TIMEOUT
-    lambda 48 In_FIN_ACK_V_V_0 = Out_RST_NEXT_ZERO_0
-    lambda 48 In_LISTEN = Out_TIMEOUT
-    lambda 48 In_SYN_V_V_0 = Out_ACK_SYN_FRESH_NEXT_0
-    lambda 48 In_RCV = Out_TIMEOUT
-    lambda 48 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 48 In_CLOSE = Out_TIMEOUT
-    lambda 48 In_SEND = Out_TIMEOUT
-    lambda 48 In_ACK_V_V_0 = Out_RST_NEXT_ZERO_0
-    lambda 49 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 49 In_ACK_PSH_V_V_1 = Out_ACK_NEXT_NEXT_0
-    lambda 49 In_SYN_ACK_V_V_0 = Out_ACK_RST_NEXT_CURRENT_0
-    lambda 49 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 49 In_ACCEPT = Out_TIMEOUT
-    lambda 49 In_FIN_ACK_V_V_0 = Out_ACK_NEXT_NEXT_0
-    lambda 49 In_LISTEN = Out_TIMEOUT
-    lambda 49 In_SYN_V_V_0 = Out_ACK_RST_NEXT_CURRENT_0
-    lambda 49 In_RCV = Out_TIMEOUT
-    lambda 49 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 49 In_CLOSE = Out_ACK_RST_NEXT_CURRENT_0
-    lambda 49 In_SEND = Out_TIMEOUT
-    lambda 49 In_ACK_V_V_0 = Out_TIMEOUT
-    lambda 51 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 51 In_ACK_PSH_V_V_1 = Out_RST_ZERO_ZERO_0
-    lambda 51 In_SYN_ACK_V_V_0 = Out_RST_ZERO_ZERO_0
-    lambda 51 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 51 In_ACCEPT = Out_TIMEOUT
-    lambda 51 In_FIN_ACK_V_V_0 = Out_RST_ZERO_ZERO_0
-    lambda 51 In_LISTEN = Out_TIMEOUT
-    lambda 51 In_SYN_V_V_0 = Out_ACK_SYN_FRESH_NEXT_0
-    lambda 51 In_RCV = Out_TIMEOUT
-    lambda 51 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 51 In_CLOSE = Out_TIMEOUT
-    lambda 51 In_SEND = Out_TIMEOUT
-    lambda 51 In_ACK_V_V_0 = Out_RST_ZERO_ZERO_0
-    lambda 52 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 52 In_ACK_PSH_V_V_1 = Out_RST_NEXT_ZERO_0
-    lambda 52 In_SYN_ACK_V_V_0 = Out_RST_NEXT_ZERO_0
-    lambda 52 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 52 In_ACCEPT = Out_TIMEOUT
-    lambda 52 In_FIN_ACK_V_V_0 = Out_RST_NEXT_ZERO_0
-    lambda 52 In_LISTEN = Out_TIMEOUT
-    lambda 52 In_SYN_V_V_0 = Out_TIMEOUT
-    lambda 52 In_RCV = Out_TIMEOUT
-    lambda 52 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 52 In_CLOSE = Out_TIMEOUT
-    lambda 52 In_SEND = Out_TIMEOUT
-    lambda 52 In_ACK_V_V_0 = Out_RST_NEXT_ZERO_0
-    lambda 53 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 53 In_ACK_PSH_V_V_1 = Out_RST_NEXT_ZERO_0
-    lambda 53 In_SYN_ACK_V_V_0 = Out_RST_NEXT_ZERO_0
-    lambda 53 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 53 In_ACCEPT = Out_TIMEOUT
-    lambda 53 In_FIN_ACK_V_V_0 = Out_RST_NEXT_ZERO_0
-    lambda 53 In_LISTEN = Out_TIMEOUT
-    lambda 53 In_SYN_V_V_0 = Out_ACK_SYN_FRESH_NEXT_0
-    lambda 53 In_RCV = Out_TIMEOUT
-    lambda 53 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 53 In_CLOSE = Out_TIMEOUT
-    lambda 53 In_SEND = Out_TIMEOUT
-    lambda 53 In_ACK_V_V_0 = Out_RST_NEXT_ZERO_0
-    lambda 54 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 54 In_ACK_PSH_V_V_1 = Out_RST_ZERO_ZERO_0
-    lambda 54 In_SYN_ACK_V_V_0 = Out_RST_ZERO_ZERO_0
-    lambda 54 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 54 In_ACCEPT = Out_TIMEOUT
-    lambda 54 In_FIN_ACK_V_V_0 = Out_RST_ZERO_ZERO_0
-    lambda 54 In_LISTEN = Out_TIMEOUT
-    lambda 54 In_SYN_V_V_0 = Out_TIMEOUT
-    lambda 54 In_RCV = Out_TIMEOUT
-    lambda 54 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 54 In_CLOSE = Out_TIMEOUT
-    lambda 54 In_SEND = Out_TIMEOUT
-    lambda 54 In_ACK_V_V_0 = Out_RST_ZERO_ZERO_0
-    lambda _ _ = error "haal-gen: undefined transition"
+import Haal.Automaton.MealyAutomaton (MealyAutomaton, mkMealyAutomatonTable)
+
+data TcpServerBsdTransInput
+    = In_CLOSECONNECTION
+    | In_ACK_PSH_V_V_1
+    | In_SYN_ACK_V_V_0
+    | In_RST_V_V_0
+    | In_ACCEPT
+    | In_FIN_ACK_V_V_0
+    | In_LISTEN
+    | In_SYN_V_V_0
+    | In_RCV
+    | In_ACK_RST_V_V_0
+    | In_CLOSE
+    | In_SEND
+    | In_ACK_V_V_0
+    deriving (Show, Eq, Ord, Enum, Bounded)
+
+data TcpServerBsdTransOutput
+    = Out_TIMEOUT
+    | Out_RST_ZERO_ZERO_0
+    | Out_ACK_RST_ZERO_NEXT_0
+    | Out_ACK_SYN_FRESH_NEXT_0
+    | Out_ACK_NEXT_NEXT_0
+    | Out_RST_NEXT_ZERO_0
+    | Out_ACK_RST_NEXT_CURRENT_0
+    | Out_ACK_FIN_NEXT_CURRENT_0
+    | Out_ACK_PSH_NEXT_CURRENT_1
+    | Out_ACK_NEXT_CURRENT_0
+    | Out_ACK_FRESH_FRESH_0
+    deriving (Show, Eq, Ord, Enum, Bounded)
+
+{- Transitions (state  input -> next state / output):
+    0     In_CLOSECONNECTION  -> 0 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 0 / Out_RST_ZERO_ZERO_0
+          In_SYN_ACK_V_V_0    -> 0 / Out_RST_ZERO_ZERO_0
+          In_RST_V_V_0        -> 0 / Out_TIMEOUT
+          In_ACCEPT           -> 0 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 0 / Out_RST_ZERO_ZERO_0
+          In_LISTEN           -> 1 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 0 / Out_ACK_RST_ZERO_NEXT_0
+          In_RCV              -> 0 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 0 / Out_TIMEOUT
+          In_CLOSE            -> 2 / Out_TIMEOUT
+          In_SEND             -> 0 / Out_TIMEOUT
+          In_ACK_V_V_0        -> 0 / Out_RST_ZERO_ZERO_0
+    1     In_CLOSECONNECTION  -> 1 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 1 / Out_RST_ZERO_ZERO_0
+          In_SYN_ACK_V_V_0    -> 1 / Out_RST_ZERO_ZERO_0
+          In_RST_V_V_0        -> 1 / Out_TIMEOUT
+          In_ACCEPT           -> 3 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 1 / Out_RST_ZERO_ZERO_0
+          In_LISTEN           -> 1 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 4 / Out_ACK_SYN_FRESH_NEXT_0
+          In_RCV              -> 1 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 1 / Out_TIMEOUT
+          In_CLOSE            -> 2 / Out_TIMEOUT
+          In_SEND             -> 1 / Out_TIMEOUT
+          In_ACK_V_V_0        -> 1 / Out_RST_ZERO_ZERO_0
+    2     In_CLOSECONNECTION  -> 2 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 2 / Out_RST_ZERO_ZERO_0
+          In_SYN_ACK_V_V_0    -> 2 / Out_RST_ZERO_ZERO_0
+          In_RST_V_V_0        -> 2 / Out_TIMEOUT
+          In_ACCEPT           -> 2 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 2 / Out_RST_ZERO_ZERO_0
+          In_LISTEN           -> 2 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 2 / Out_ACK_RST_ZERO_NEXT_0
+          In_RCV              -> 2 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 2 / Out_TIMEOUT
+          In_CLOSE            -> 2 / Out_TIMEOUT
+          In_SEND             -> 2 / Out_TIMEOUT
+          In_ACK_V_V_0        -> 2 / Out_RST_ZERO_ZERO_0
+    3     In_CLOSECONNECTION  -> 1 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 3 / Out_RST_ZERO_ZERO_0
+          In_SYN_ACK_V_V_0    -> 3 / Out_RST_ZERO_ZERO_0
+          In_RST_V_V_0        -> 3 / Out_TIMEOUT
+          In_ACCEPT           -> 3 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 3 / Out_RST_ZERO_ZERO_0
+          In_LISTEN           -> 3 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 7 / Out_ACK_SYN_FRESH_NEXT_0
+          In_RCV              -> 3 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 3 / Out_TIMEOUT
+          In_CLOSE            -> 2 / Out_TIMEOUT
+          In_SEND             -> 3 / Out_TIMEOUT
+          In_ACK_V_V_0        -> 3 / Out_RST_ZERO_ZERO_0
+    4     In_CLOSECONNECTION  -> 4 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 5 / Out_ACK_NEXT_NEXT_0
+          In_SYN_ACK_V_V_0    -> 6 / Out_RST_NEXT_ZERO_0
+          In_RST_V_V_0        -> 1 / Out_TIMEOUT
+          In_ACCEPT           -> 7 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 8 / Out_ACK_NEXT_NEXT_0
+          In_LISTEN           -> 4 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 4 / Out_TIMEOUT
+          In_RCV              -> 4 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 9 / Out_TIMEOUT
+          In_CLOSE            -> 10 / Out_TIMEOUT
+          In_SEND             -> 4 / Out_TIMEOUT
+          In_ACK_V_V_0        -> 5 / Out_TIMEOUT
+    5     In_CLOSECONNECTION  -> 5 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 5 / Out_ACK_NEXT_NEXT_0
+          In_SYN_ACK_V_V_0    -> 12 / Out_ACK_RST_NEXT_CURRENT_0
+          In_RST_V_V_0        -> 12 / Out_TIMEOUT
+          In_ACCEPT           -> 14 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 8 / Out_ACK_NEXT_NEXT_0
+          In_LISTEN           -> 5 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 12 / Out_ACK_RST_NEXT_CURRENT_0
+          In_RCV              -> 5 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 12 / Out_TIMEOUT
+          In_CLOSE            -> 2 / Out_ACK_RST_NEXT_CURRENT_0
+          In_SEND             -> 5 / Out_TIMEOUT
+          In_ACK_V_V_0        -> 5 / Out_TIMEOUT
+    6     In_CLOSECONNECTION  -> 6 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 1 / Out_RST_NEXT_ZERO_0
+          In_SYN_ACK_V_V_0    -> 6 / Out_RST_NEXT_ZERO_0
+          In_RST_V_V_0        -> 1 / Out_TIMEOUT
+          In_ACCEPT           -> 11 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 1 / Out_RST_NEXT_ZERO_0
+          In_LISTEN           -> 6 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 4 / Out_ACK_SYN_FRESH_NEXT_0
+          In_RCV              -> 6 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 1 / Out_TIMEOUT
+          In_CLOSE            -> 10 / Out_TIMEOUT
+          In_SEND             -> 6 / Out_TIMEOUT
+          In_ACK_V_V_0        -> 1 / Out_RST_NEXT_ZERO_0
+    7     In_CLOSECONNECTION  -> 4 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 14 / Out_ACK_NEXT_NEXT_0
+          In_SYN_ACK_V_V_0    -> 11 / Out_RST_NEXT_ZERO_0
+          In_RST_V_V_0        -> 3 / Out_TIMEOUT
+          In_ACCEPT           -> 7 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 13 / Out_ACK_NEXT_NEXT_0
+          In_LISTEN           -> 7 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 7 / Out_TIMEOUT
+          In_RCV              -> 7 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 15 / Out_TIMEOUT
+          In_CLOSE            -> 10 / Out_TIMEOUT
+          In_SEND             -> 7 / Out_TIMEOUT
+          In_ACK_V_V_0        -> 14 / Out_TIMEOUT
+    8     In_CLOSECONNECTION  -> 8 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 8 / Out_ACK_NEXT_NEXT_0
+          In_SYN_ACK_V_V_0    -> 12 / Out_ACK_RST_NEXT_CURRENT_0
+          In_RST_V_V_0        -> 12 / Out_TIMEOUT
+          In_ACCEPT           -> 13 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 8 / Out_ACK_NEXT_NEXT_0
+          In_LISTEN           -> 8 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 12 / Out_ACK_RST_NEXT_CURRENT_0
+          In_RCV              -> 8 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 12 / Out_TIMEOUT
+          In_CLOSE            -> 2 / Out_ACK_RST_NEXT_CURRENT_0
+          In_SEND             -> 8 / Out_TIMEOUT
+          In_ACK_V_V_0        -> 8 / Out_TIMEOUT
+    9     In_CLOSECONNECTION  -> 9 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 1 / Out_RST_ZERO_ZERO_0
+          In_SYN_ACK_V_V_0    -> 1 / Out_RST_ZERO_ZERO_0
+          In_RST_V_V_0        -> 9 / Out_TIMEOUT
+          In_ACCEPT           -> 15 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 1 / Out_RST_ZERO_ZERO_0
+          In_LISTEN           -> 9 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 9 / Out_TIMEOUT
+          In_RCV              -> 9 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 9 / Out_TIMEOUT
+          In_CLOSE            -> 2 / Out_TIMEOUT
+          In_SEND             -> 9 / Out_TIMEOUT
+          In_ACK_V_V_0        -> 1 / Out_RST_ZERO_ZERO_0
+    10    In_CLOSECONNECTION  -> 10 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 2 / Out_RST_NEXT_ZERO_0
+          In_SYN_ACK_V_V_0    -> 10 / Out_RST_NEXT_ZERO_0
+          In_RST_V_V_0        -> 2 / Out_TIMEOUT
+          In_ACCEPT           -> 10 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 2 / Out_RST_NEXT_ZERO_0
+          In_LISTEN           -> 10 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 2 / Out_ACK_RST_ZERO_NEXT_0
+          In_RCV              -> 10 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 2 / Out_TIMEOUT
+          In_CLOSE            -> 10 / Out_TIMEOUT
+          In_SEND             -> 10 / Out_TIMEOUT
+          In_ACK_V_V_0        -> 2 / Out_RST_NEXT_ZERO_0
+    11    In_CLOSECONNECTION  -> 6 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 3 / Out_RST_NEXT_ZERO_0
+          In_SYN_ACK_V_V_0    -> 11 / Out_RST_NEXT_ZERO_0
+          In_RST_V_V_0        -> 3 / Out_TIMEOUT
+          In_ACCEPT           -> 11 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 3 / Out_RST_NEXT_ZERO_0
+          In_LISTEN           -> 11 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 7 / Out_ACK_SYN_FRESH_NEXT_0
+          In_RCV              -> 11 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 3 / Out_TIMEOUT
+          In_CLOSE            -> 10 / Out_TIMEOUT
+          In_SEND             -> 11 / Out_TIMEOUT
+          In_ACK_V_V_0        -> 3 / Out_RST_NEXT_ZERO_0
+    12    In_CLOSECONNECTION  -> 12 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 12 / Out_RST_ZERO_ZERO_0
+          In_SYN_ACK_V_V_0    -> 12 / Out_RST_ZERO_ZERO_0
+          In_RST_V_V_0        -> 12 / Out_TIMEOUT
+          In_ACCEPT           -> 1 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 12 / Out_RST_ZERO_ZERO_0
+          In_LISTEN           -> 12 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 16 / Out_ACK_SYN_FRESH_NEXT_0
+          In_RCV              -> 12 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 12 / Out_TIMEOUT
+          In_CLOSE            -> 2 / Out_TIMEOUT
+          In_SEND             -> 12 / Out_TIMEOUT
+          In_ACK_V_V_0        -> 12 / Out_RST_ZERO_ZERO_0
+    13    In_CLOSECONNECTION  -> 17 / Out_ACK_FIN_NEXT_CURRENT_0
+          In_ACK_PSH_V_V_1    -> 13 / Out_ACK_NEXT_NEXT_0
+          In_SYN_ACK_V_V_0    -> 18 / Out_ACK_RST_NEXT_CURRENT_0
+          In_RST_V_V_0        -> 18 / Out_TIMEOUT
+          In_ACCEPT           -> 13 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 13 / Out_ACK_NEXT_NEXT_0
+          In_LISTEN           -> 13 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 18 / Out_ACK_RST_NEXT_CURRENT_0
+          In_RCV              -> 13 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 18 / Out_TIMEOUT
+          In_CLOSE            -> 19 / Out_TIMEOUT
+          In_SEND             -> 13 / Out_ACK_PSH_NEXT_CURRENT_1
+          In_ACK_V_V_0        -> 13 / Out_TIMEOUT
+    14    In_CLOSECONNECTION  -> 20 / Out_ACK_FIN_NEXT_CURRENT_0
+          In_ACK_PSH_V_V_1    -> 14 / Out_ACK_NEXT_NEXT_0
+          In_SYN_ACK_V_V_0    -> 18 / Out_ACK_RST_NEXT_CURRENT_0
+          In_RST_V_V_0        -> 18 / Out_TIMEOUT
+          In_ACCEPT           -> 14 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 13 / Out_ACK_NEXT_NEXT_0
+          In_LISTEN           -> 14 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 18 / Out_ACK_RST_NEXT_CURRENT_0
+          In_RCV              -> 14 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 18 / Out_TIMEOUT
+          In_CLOSE            -> 21 / Out_TIMEOUT
+          In_SEND             -> 14 / Out_ACK_PSH_NEXT_CURRENT_1
+          In_ACK_V_V_0        -> 14 / Out_TIMEOUT
+    15    In_CLOSECONNECTION  -> 9 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 3 / Out_RST_ZERO_ZERO_0
+          In_SYN_ACK_V_V_0    -> 3 / Out_RST_ZERO_ZERO_0
+          In_RST_V_V_0        -> 15 / Out_TIMEOUT
+          In_ACCEPT           -> 15 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 3 / Out_RST_ZERO_ZERO_0
+          In_LISTEN           -> 15 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 15 / Out_TIMEOUT
+          In_RCV              -> 15 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 15 / Out_TIMEOUT
+          In_CLOSE            -> 2 / Out_TIMEOUT
+          In_SEND             -> 15 / Out_TIMEOUT
+          In_ACK_V_V_0        -> 3 / Out_RST_ZERO_ZERO_0
+    16    In_CLOSECONNECTION  -> 16 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 22 / Out_ACK_NEXT_NEXT_0
+          In_SYN_ACK_V_V_0    -> 23 / Out_RST_NEXT_ZERO_0
+          In_RST_V_V_0        -> 12 / Out_TIMEOUT
+          In_ACCEPT           -> 4 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 24 / Out_ACK_NEXT_NEXT_0
+          In_LISTEN           -> 16 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 16 / Out_TIMEOUT
+          In_RCV              -> 16 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 25 / Out_TIMEOUT
+          In_CLOSE            -> 10 / Out_TIMEOUT
+          In_SEND             -> 16 / Out_TIMEOUT
+          In_ACK_V_V_0        -> 22 / Out_TIMEOUT
+    17    In_CLOSECONNECTION  -> 17 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 1 / Out_RST_NEXT_ZERO_0
+          In_SYN_ACK_V_V_0    -> 1 / Out_ACK_RST_NEXT_CURRENT_0
+          In_RST_V_V_0        -> 1 / Out_TIMEOUT
+          In_ACCEPT           -> 27 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 6 / Out_TIMEOUT
+          In_LISTEN           -> 17 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 1 / Out_ACK_RST_NEXT_CURRENT_0
+          In_RCV              -> 17 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 1 / Out_TIMEOUT
+          In_CLOSE            -> 26 / Out_TIMEOUT
+          In_SEND             -> 17 / Out_TIMEOUT
+          In_ACK_V_V_0        -> 6 / Out_TIMEOUT
+    18    In_CLOSECONNECTION  -> 1 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 18 / Out_RST_ZERO_ZERO_0
+          In_SYN_ACK_V_V_0    -> 18 / Out_RST_ZERO_ZERO_0
+          In_RST_V_V_0        -> 18 / Out_TIMEOUT
+          In_ACCEPT           -> 18 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 18 / Out_RST_ZERO_ZERO_0
+          In_LISTEN           -> 18 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 28 / Out_ACK_SYN_FRESH_NEXT_0
+          In_RCV              -> 18 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 18 / Out_TIMEOUT
+          In_CLOSE            -> 2 / Out_TIMEOUT
+          In_SEND             -> 18 / Out_TIMEOUT
+          In_ACK_V_V_0        -> 18 / Out_RST_ZERO_ZERO_0
+    19    In_CLOSECONNECTION  -> 26 / Out_ACK_FIN_NEXT_CURRENT_0
+          In_ACK_PSH_V_V_1    -> 19 / Out_ACK_NEXT_NEXT_0
+          In_SYN_ACK_V_V_0    -> 2 / Out_ACK_RST_NEXT_CURRENT_0
+          In_RST_V_V_0        -> 2 / Out_TIMEOUT
+          In_ACCEPT           -> 19 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 19 / Out_ACK_NEXT_NEXT_0
+          In_LISTEN           -> 19 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 2 / Out_ACK_RST_NEXT_CURRENT_0
+          In_RCV              -> 19 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 2 / Out_TIMEOUT
+          In_CLOSE            -> 19 / Out_TIMEOUT
+          In_SEND             -> 19 / Out_ACK_PSH_NEXT_CURRENT_1
+          In_ACK_V_V_0        -> 19 / Out_TIMEOUT
+    20    In_CLOSECONNECTION  -> 20 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 1 / Out_RST_NEXT_ZERO_0
+          In_SYN_ACK_V_V_0    -> 1 / Out_ACK_RST_NEXT_CURRENT_0
+          In_RST_V_V_0        -> 1 / Out_TIMEOUT
+          In_ACCEPT           -> 30 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 31 / Out_ACK_NEXT_NEXT_0
+          In_LISTEN           -> 20 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 1 / Out_ACK_RST_NEXT_CURRENT_0
+          In_RCV              -> 20 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 1 / Out_TIMEOUT
+          In_CLOSE            -> 29 / Out_TIMEOUT
+          In_SEND             -> 20 / Out_TIMEOUT
+          In_ACK_V_V_0        -> 20 / Out_TIMEOUT
+    21    In_CLOSECONNECTION  -> 29 / Out_ACK_FIN_NEXT_CURRENT_0
+          In_ACK_PSH_V_V_1    -> 21 / Out_ACK_NEXT_NEXT_0
+          In_SYN_ACK_V_V_0    -> 2 / Out_ACK_RST_NEXT_CURRENT_0
+          In_RST_V_V_0        -> 2 / Out_TIMEOUT
+          In_ACCEPT           -> 21 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 19 / Out_ACK_NEXT_NEXT_0
+          In_LISTEN           -> 21 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 2 / Out_ACK_RST_NEXT_CURRENT_0
+          In_RCV              -> 21 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 2 / Out_TIMEOUT
+          In_CLOSE            -> 21 / Out_TIMEOUT
+          In_SEND             -> 21 / Out_ACK_PSH_NEXT_CURRENT_1
+          In_ACK_V_V_0        -> 21 / Out_TIMEOUT
+    22    In_CLOSECONNECTION  -> 22 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 22 / Out_ACK_NEXT_NEXT_0
+          In_SYN_ACK_V_V_0    -> 32 / Out_ACK_RST_NEXT_CURRENT_0
+          In_RST_V_V_0        -> 32 / Out_TIMEOUT
+          In_ACCEPT           -> 5 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 24 / Out_ACK_NEXT_NEXT_0
+          In_LISTEN           -> 22 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 32 / Out_ACK_RST_NEXT_CURRENT_0
+          In_RCV              -> 22 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 32 / Out_TIMEOUT
+          In_CLOSE            -> 2 / Out_ACK_RST_NEXT_CURRENT_0
+          In_SEND             -> 22 / Out_TIMEOUT
+          In_ACK_V_V_0        -> 22 / Out_TIMEOUT
+    23    In_CLOSECONNECTION  -> 23 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 12 / Out_RST_NEXT_ZERO_0
+          In_SYN_ACK_V_V_0    -> 23 / Out_RST_NEXT_ZERO_0
+          In_RST_V_V_0        -> 12 / Out_TIMEOUT
+          In_ACCEPT           -> 6 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 12 / Out_RST_NEXT_ZERO_0
+          In_LISTEN           -> 23 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 16 / Out_ACK_SYN_FRESH_NEXT_0
+          In_RCV              -> 23 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 12 / Out_TIMEOUT
+          In_CLOSE            -> 10 / Out_TIMEOUT
+          In_SEND             -> 23 / Out_TIMEOUT
+          In_ACK_V_V_0        -> 12 / Out_RST_NEXT_ZERO_0
+    24    In_CLOSECONNECTION  -> 24 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 24 / Out_ACK_NEXT_NEXT_0
+          In_SYN_ACK_V_V_0    -> 32 / Out_ACK_RST_NEXT_CURRENT_0
+          In_RST_V_V_0        -> 32 / Out_TIMEOUT
+          In_ACCEPT           -> 8 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 24 / Out_ACK_NEXT_NEXT_0
+          In_LISTEN           -> 24 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 32 / Out_ACK_RST_NEXT_CURRENT_0
+          In_RCV              -> 24 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 32 / Out_TIMEOUT
+          In_CLOSE            -> 2 / Out_ACK_RST_NEXT_CURRENT_0
+          In_SEND             -> 24 / Out_TIMEOUT
+          In_ACK_V_V_0        -> 24 / Out_TIMEOUT
+    25    In_CLOSECONNECTION  -> 25 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 12 / Out_RST_ZERO_ZERO_0
+          In_SYN_ACK_V_V_0    -> 12 / Out_RST_ZERO_ZERO_0
+          In_RST_V_V_0        -> 25 / Out_TIMEOUT
+          In_ACCEPT           -> 9 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 12 / Out_RST_ZERO_ZERO_0
+          In_LISTEN           -> 25 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 25 / Out_TIMEOUT
+          In_RCV              -> 25 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 25 / Out_TIMEOUT
+          In_CLOSE            -> 2 / Out_TIMEOUT
+          In_SEND             -> 25 / Out_TIMEOUT
+          In_ACK_V_V_0        -> 12 / Out_RST_ZERO_ZERO_0
+    26    In_CLOSECONNECTION  -> 26 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 2 / Out_RST_NEXT_ZERO_0
+          In_SYN_ACK_V_V_0    -> 2 / Out_ACK_RST_NEXT_CURRENT_0
+          In_RST_V_V_0        -> 2 / Out_TIMEOUT
+          In_ACCEPT           -> 26 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 10 / Out_TIMEOUT
+          In_LISTEN           -> 26 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 2 / Out_ACK_RST_NEXT_CURRENT_0
+          In_RCV              -> 26 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 2 / Out_TIMEOUT
+          In_CLOSE            -> 26 / Out_TIMEOUT
+          In_SEND             -> 26 / Out_TIMEOUT
+          In_ACK_V_V_0        -> 10 / Out_TIMEOUT
+    27    In_CLOSECONNECTION  -> 17 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 3 / Out_RST_NEXT_ZERO_0
+          In_SYN_ACK_V_V_0    -> 3 / Out_ACK_RST_NEXT_CURRENT_0
+          In_RST_V_V_0        -> 3 / Out_TIMEOUT
+          In_ACCEPT           -> 27 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 11 / Out_TIMEOUT
+          In_LISTEN           -> 27 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 3 / Out_ACK_RST_NEXT_CURRENT_0
+          In_RCV              -> 27 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 3 / Out_TIMEOUT
+          In_CLOSE            -> 26 / Out_TIMEOUT
+          In_SEND             -> 27 / Out_TIMEOUT
+          In_ACK_V_V_0        -> 11 / Out_TIMEOUT
+    28    In_CLOSECONNECTION  -> 4 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 33 / Out_ACK_NEXT_NEXT_0
+          In_SYN_ACK_V_V_0    -> 34 / Out_RST_NEXT_ZERO_0
+          In_RST_V_V_0        -> 18 / Out_TIMEOUT
+          In_ACCEPT           -> 28 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 35 / Out_ACK_NEXT_NEXT_0
+          In_LISTEN           -> 28 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 28 / Out_TIMEOUT
+          In_RCV              -> 28 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 36 / Out_TIMEOUT
+          In_CLOSE            -> 10 / Out_TIMEOUT
+          In_SEND             -> 28 / Out_TIMEOUT
+          In_ACK_V_V_0        -> 33 / Out_TIMEOUT
+    29    In_CLOSECONNECTION  -> 29 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 2 / Out_RST_NEXT_ZERO_0
+          In_SYN_ACK_V_V_0    -> 2 / Out_ACK_RST_NEXT_CURRENT_0
+          In_RST_V_V_0        -> 2 / Out_TIMEOUT
+          In_ACCEPT           -> 29 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 37 / Out_ACK_NEXT_NEXT_0
+          In_LISTEN           -> 29 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 2 / Out_ACK_RST_NEXT_CURRENT_0
+          In_RCV              -> 29 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 2 / Out_TIMEOUT
+          In_CLOSE            -> 29 / Out_TIMEOUT
+          In_SEND             -> 29 / Out_TIMEOUT
+          In_ACK_V_V_0        -> 29 / Out_TIMEOUT
+    30    In_CLOSECONNECTION  -> 20 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 3 / Out_RST_NEXT_ZERO_0
+          In_SYN_ACK_V_V_0    -> 3 / Out_ACK_RST_NEXT_CURRENT_0
+          In_RST_V_V_0        -> 3 / Out_TIMEOUT
+          In_ACCEPT           -> 30 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 38 / Out_ACK_NEXT_NEXT_0
+          In_LISTEN           -> 30 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 3 / Out_ACK_RST_NEXT_CURRENT_0
+          In_RCV              -> 30 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 3 / Out_TIMEOUT
+          In_CLOSE            -> 29 / Out_TIMEOUT
+          In_SEND             -> 30 / Out_TIMEOUT
+          In_ACK_V_V_0        -> 30 / Out_TIMEOUT
+    31    In_CLOSECONNECTION  -> 31 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 31 / Out_ACK_NEXT_CURRENT_0
+          In_SYN_ACK_V_V_0    -> 31 / Out_ACK_NEXT_CURRENT_0
+          In_RST_V_V_0        -> 39 / Out_TIMEOUT
+          In_ACCEPT           -> 38 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 31 / Out_ACK_NEXT_CURRENT_0
+          In_LISTEN           -> 31 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 31 / Out_TIMEOUT
+          In_RCV              -> 31 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 39 / Out_TIMEOUT
+          In_CLOSE            -> 37 / Out_TIMEOUT
+          In_SEND             -> 31 / Out_TIMEOUT
+          In_ACK_V_V_0        -> 31 / Out_TIMEOUT
+    32    In_CLOSECONNECTION  -> 32 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 32 / Out_RST_ZERO_ZERO_0
+          In_SYN_ACK_V_V_0    -> 32 / Out_RST_ZERO_ZERO_0
+          In_RST_V_V_0        -> 32 / Out_TIMEOUT
+          In_ACCEPT           -> 12 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 32 / Out_RST_ZERO_ZERO_0
+          In_LISTEN           -> 32 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 40 / Out_ACK_SYN_FRESH_NEXT_0
+          In_RCV              -> 32 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 32 / Out_TIMEOUT
+          In_CLOSE            -> 2 / Out_TIMEOUT
+          In_SEND             -> 32 / Out_TIMEOUT
+          In_ACK_V_V_0        -> 32 / Out_RST_ZERO_ZERO_0
+    33    In_CLOSECONNECTION  -> 5 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 33 / Out_ACK_NEXT_NEXT_0
+          In_SYN_ACK_V_V_0    -> 41 / Out_ACK_RST_NEXT_CURRENT_0
+          In_RST_V_V_0        -> 41 / Out_TIMEOUT
+          In_ACCEPT           -> 33 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 35 / Out_ACK_NEXT_NEXT_0
+          In_LISTEN           -> 33 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 41 / Out_ACK_RST_NEXT_CURRENT_0
+          In_RCV              -> 33 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 41 / Out_TIMEOUT
+          In_CLOSE            -> 2 / Out_ACK_RST_NEXT_CURRENT_0
+          In_SEND             -> 33 / Out_TIMEOUT
+          In_ACK_V_V_0        -> 33 / Out_TIMEOUT
+    34    In_CLOSECONNECTION  -> 6 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 18 / Out_RST_NEXT_ZERO_0
+          In_SYN_ACK_V_V_0    -> 34 / Out_RST_NEXT_ZERO_0
+          In_RST_V_V_0        -> 18 / Out_TIMEOUT
+          In_ACCEPT           -> 34 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 18 / Out_RST_NEXT_ZERO_0
+          In_LISTEN           -> 34 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 28 / Out_ACK_SYN_FRESH_NEXT_0
+          In_RCV              -> 34 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 18 / Out_TIMEOUT
+          In_CLOSE            -> 10 / Out_TIMEOUT
+          In_SEND             -> 34 / Out_TIMEOUT
+          In_ACK_V_V_0        -> 18 / Out_RST_NEXT_ZERO_0
+    35    In_CLOSECONNECTION  -> 8 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 35 / Out_ACK_NEXT_NEXT_0
+          In_SYN_ACK_V_V_0    -> 41 / Out_ACK_RST_NEXT_CURRENT_0
+          In_RST_V_V_0        -> 41 / Out_TIMEOUT
+          In_ACCEPT           -> 35 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 35 / Out_ACK_NEXT_NEXT_0
+          In_LISTEN           -> 35 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 41 / Out_ACK_RST_NEXT_CURRENT_0
+          In_RCV              -> 35 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 41 / Out_TIMEOUT
+          In_CLOSE            -> 2 / Out_ACK_RST_NEXT_CURRENT_0
+          In_SEND             -> 35 / Out_TIMEOUT
+          In_ACK_V_V_0        -> 35 / Out_TIMEOUT
+    36    In_CLOSECONNECTION  -> 9 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 18 / Out_RST_ZERO_ZERO_0
+          In_SYN_ACK_V_V_0    -> 18 / Out_RST_ZERO_ZERO_0
+          In_RST_V_V_0        -> 36 / Out_TIMEOUT
+          In_ACCEPT           -> 36 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 18 / Out_RST_ZERO_ZERO_0
+          In_LISTEN           -> 36 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 36 / Out_TIMEOUT
+          In_RCV              -> 36 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 36 / Out_TIMEOUT
+          In_CLOSE            -> 2 / Out_TIMEOUT
+          In_SEND             -> 36 / Out_TIMEOUT
+          In_ACK_V_V_0        -> 18 / Out_RST_ZERO_ZERO_0
+    37    In_CLOSECONNECTION  -> 37 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 37 / Out_ACK_NEXT_CURRENT_0
+          In_SYN_ACK_V_V_0    -> 37 / Out_ACK_NEXT_CURRENT_0
+          In_RST_V_V_0        -> 42 / Out_TIMEOUT
+          In_ACCEPT           -> 37 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 37 / Out_ACK_NEXT_CURRENT_0
+          In_LISTEN           -> 37 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 37 / Out_TIMEOUT
+          In_RCV              -> 37 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 42 / Out_TIMEOUT
+          In_CLOSE            -> 37 / Out_TIMEOUT
+          In_SEND             -> 37 / Out_TIMEOUT
+          In_ACK_V_V_0        -> 37 / Out_TIMEOUT
+    38    In_CLOSECONNECTION  -> 31 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 38 / Out_ACK_NEXT_CURRENT_0
+          In_SYN_ACK_V_V_0    -> 38 / Out_ACK_NEXT_CURRENT_0
+          In_RST_V_V_0        -> 43 / Out_TIMEOUT
+          In_ACCEPT           -> 38 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 38 / Out_ACK_NEXT_CURRENT_0
+          In_LISTEN           -> 38 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 38 / Out_TIMEOUT
+          In_RCV              -> 38 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 43 / Out_TIMEOUT
+          In_CLOSE            -> 37 / Out_TIMEOUT
+          In_SEND             -> 38 / Out_TIMEOUT
+          In_ACK_V_V_0        -> 38 / Out_TIMEOUT
+    39    In_CLOSECONNECTION  -> 39 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 39 / Out_ACK_FRESH_FRESH_0
+          In_SYN_ACK_V_V_0    -> 39 / Out_ACK_FRESH_FRESH_0
+          In_RST_V_V_0        -> 39 / Out_TIMEOUT
+          In_ACCEPT           -> 43 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 39 / Out_ACK_FRESH_FRESH_0
+          In_LISTEN           -> 39 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 4 / Out_ACK_SYN_FRESH_NEXT_0
+          In_RCV              -> 39 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 39 / Out_TIMEOUT
+          In_CLOSE            -> 42 / Out_TIMEOUT
+          In_SEND             -> 39 / Out_TIMEOUT
+          In_ACK_V_V_0        -> 39 / Out_ACK_FRESH_FRESH_0
+    40    In_CLOSECONNECTION  -> 40 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 32 / Out_RST_NEXT_ZERO_0
+          In_SYN_ACK_V_V_0    -> 44 / Out_RST_NEXT_ZERO_0
+          In_RST_V_V_0        -> 32 / Out_TIMEOUT
+          In_ACCEPT           -> 16 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 32 / Out_RST_NEXT_ZERO_0
+          In_LISTEN           -> 40 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 40 / Out_TIMEOUT
+          In_RCV              -> 40 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 45 / Out_TIMEOUT
+          In_CLOSE            -> 10 / Out_TIMEOUT
+          In_SEND             -> 40 / Out_TIMEOUT
+          In_ACK_V_V_0        -> 32 / Out_RST_NEXT_ZERO_0
+    41    In_CLOSECONNECTION  -> 12 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 41 / Out_RST_ZERO_ZERO_0
+          In_SYN_ACK_V_V_0    -> 41 / Out_RST_ZERO_ZERO_0
+          In_RST_V_V_0        -> 41 / Out_TIMEOUT
+          In_ACCEPT           -> 41 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 41 / Out_RST_ZERO_ZERO_0
+          In_LISTEN           -> 41 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 46 / Out_ACK_SYN_FRESH_NEXT_0
+          In_RCV              -> 41 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 41 / Out_TIMEOUT
+          In_CLOSE            -> 2 / Out_TIMEOUT
+          In_SEND             -> 41 / Out_TIMEOUT
+          In_ACK_V_V_0        -> 41 / Out_RST_ZERO_ZERO_0
+    42    In_CLOSECONNECTION  -> 42 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 42 / Out_ACK_FRESH_FRESH_0
+          In_SYN_ACK_V_V_0    -> 42 / Out_ACK_FRESH_FRESH_0
+          In_RST_V_V_0        -> 42 / Out_TIMEOUT
+          In_ACCEPT           -> 42 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 42 / Out_ACK_FRESH_FRESH_0
+          In_LISTEN           -> 42 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 2 / Out_ACK_RST_ZERO_NEXT_0
+          In_RCV              -> 42 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 42 / Out_TIMEOUT
+          In_CLOSE            -> 42 / Out_TIMEOUT
+          In_SEND             -> 42 / Out_TIMEOUT
+          In_ACK_V_V_0        -> 42 / Out_ACK_FRESH_FRESH_0
+    43    In_CLOSECONNECTION  -> 39 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 43 / Out_ACK_FRESH_FRESH_0
+          In_SYN_ACK_V_V_0    -> 43 / Out_ACK_FRESH_FRESH_0
+          In_RST_V_V_0        -> 43 / Out_TIMEOUT
+          In_ACCEPT           -> 43 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 43 / Out_ACK_FRESH_FRESH_0
+          In_LISTEN           -> 43 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 7 / Out_ACK_SYN_FRESH_NEXT_0
+          In_RCV              -> 43 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 43 / Out_TIMEOUT
+          In_CLOSE            -> 42 / Out_TIMEOUT
+          In_SEND             -> 43 / Out_TIMEOUT
+          In_ACK_V_V_0        -> 43 / Out_ACK_FRESH_FRESH_0
+    44    In_CLOSECONNECTION  -> 44 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 32 / Out_RST_NEXT_ZERO_0
+          In_SYN_ACK_V_V_0    -> 44 / Out_RST_NEXT_ZERO_0
+          In_RST_V_V_0        -> 32 / Out_TIMEOUT
+          In_ACCEPT           -> 23 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 32 / Out_RST_NEXT_ZERO_0
+          In_LISTEN           -> 44 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 40 / Out_ACK_SYN_FRESH_NEXT_0
+          In_RCV              -> 44 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 32 / Out_TIMEOUT
+          In_CLOSE            -> 10 / Out_TIMEOUT
+          In_SEND             -> 44 / Out_TIMEOUT
+          In_ACK_V_V_0        -> 32 / Out_RST_NEXT_ZERO_0
+    45    In_CLOSECONNECTION  -> 45 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 32 / Out_RST_ZERO_ZERO_0
+          In_SYN_ACK_V_V_0    -> 32 / Out_RST_ZERO_ZERO_0
+          In_RST_V_V_0        -> 45 / Out_TIMEOUT
+          In_ACCEPT           -> 25 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 32 / Out_RST_ZERO_ZERO_0
+          In_LISTEN           -> 45 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 45 / Out_TIMEOUT
+          In_RCV              -> 45 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 45 / Out_TIMEOUT
+          In_CLOSE            -> 2 / Out_TIMEOUT
+          In_SEND             -> 45 / Out_TIMEOUT
+          In_ACK_V_V_0        -> 32 / Out_RST_ZERO_ZERO_0
+    46    In_CLOSECONNECTION  -> 16 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 47 / Out_ACK_NEXT_NEXT_0
+          In_SYN_ACK_V_V_0    -> 48 / Out_RST_NEXT_ZERO_0
+          In_RST_V_V_0        -> 41 / Out_TIMEOUT
+          In_ACCEPT           -> 46 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 49 / Out_ACK_NEXT_NEXT_0
+          In_LISTEN           -> 46 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 46 / Out_TIMEOUT
+          In_RCV              -> 46 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 50 / Out_TIMEOUT
+          In_CLOSE            -> 10 / Out_TIMEOUT
+          In_SEND             -> 46 / Out_TIMEOUT
+          In_ACK_V_V_0        -> 47 / Out_TIMEOUT
+    47    In_CLOSECONNECTION  -> 22 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 47 / Out_ACK_NEXT_NEXT_0
+          In_SYN_ACK_V_V_0    -> 51 / Out_ACK_RST_NEXT_CURRENT_0
+          In_RST_V_V_0        -> 51 / Out_TIMEOUT
+          In_ACCEPT           -> 47 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 49 / Out_ACK_NEXT_NEXT_0
+          In_LISTEN           -> 47 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 51 / Out_ACK_RST_NEXT_CURRENT_0
+          In_RCV              -> 47 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 51 / Out_TIMEOUT
+          In_CLOSE            -> 2 / Out_ACK_RST_NEXT_CURRENT_0
+          In_SEND             -> 47 / Out_TIMEOUT
+          In_ACK_V_V_0        -> 47 / Out_TIMEOUT
+    48    In_CLOSECONNECTION  -> 23 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 41 / Out_RST_NEXT_ZERO_0
+          In_SYN_ACK_V_V_0    -> 48 / Out_RST_NEXT_ZERO_0
+          In_RST_V_V_0        -> 41 / Out_TIMEOUT
+          In_ACCEPT           -> 48 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 41 / Out_RST_NEXT_ZERO_0
+          In_LISTEN           -> 48 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 46 / Out_ACK_SYN_FRESH_NEXT_0
+          In_RCV              -> 48 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 41 / Out_TIMEOUT
+          In_CLOSE            -> 10 / Out_TIMEOUT
+          In_SEND             -> 48 / Out_TIMEOUT
+          In_ACK_V_V_0        -> 41 / Out_RST_NEXT_ZERO_0
+    49    In_CLOSECONNECTION  -> 24 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 49 / Out_ACK_NEXT_NEXT_0
+          In_SYN_ACK_V_V_0    -> 51 / Out_ACK_RST_NEXT_CURRENT_0
+          In_RST_V_V_0        -> 51 / Out_TIMEOUT
+          In_ACCEPT           -> 49 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 49 / Out_ACK_NEXT_NEXT_0
+          In_LISTEN           -> 49 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 51 / Out_ACK_RST_NEXT_CURRENT_0
+          In_RCV              -> 49 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 51 / Out_TIMEOUT
+          In_CLOSE            -> 2 / Out_ACK_RST_NEXT_CURRENT_0
+          In_SEND             -> 49 / Out_TIMEOUT
+          In_ACK_V_V_0        -> 49 / Out_TIMEOUT
+    50    In_CLOSECONNECTION  -> 25 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 41 / Out_RST_ZERO_ZERO_0
+          In_SYN_ACK_V_V_0    -> 41 / Out_RST_ZERO_ZERO_0
+          In_RST_V_V_0        -> 50 / Out_TIMEOUT
+          In_ACCEPT           -> 50 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 41 / Out_RST_ZERO_ZERO_0
+          In_LISTEN           -> 50 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 50 / Out_TIMEOUT
+          In_RCV              -> 50 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 50 / Out_TIMEOUT
+          In_CLOSE            -> 2 / Out_TIMEOUT
+          In_SEND             -> 50 / Out_TIMEOUT
+          In_ACK_V_V_0        -> 41 / Out_RST_ZERO_ZERO_0
+    51    In_CLOSECONNECTION  -> 32 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 51 / Out_RST_ZERO_ZERO_0
+          In_SYN_ACK_V_V_0    -> 51 / Out_RST_ZERO_ZERO_0
+          In_RST_V_V_0        -> 51 / Out_TIMEOUT
+          In_ACCEPT           -> 51 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 51 / Out_RST_ZERO_ZERO_0
+          In_LISTEN           -> 51 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 52 / Out_ACK_SYN_FRESH_NEXT_0
+          In_RCV              -> 51 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 51 / Out_TIMEOUT
+          In_CLOSE            -> 2 / Out_TIMEOUT
+          In_SEND             -> 51 / Out_TIMEOUT
+          In_ACK_V_V_0        -> 51 / Out_RST_ZERO_ZERO_0
+    52    In_CLOSECONNECTION  -> 40 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 51 / Out_RST_NEXT_ZERO_0
+          In_SYN_ACK_V_V_0    -> 53 / Out_RST_NEXT_ZERO_0
+          In_RST_V_V_0        -> 51 / Out_TIMEOUT
+          In_ACCEPT           -> 52 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 51 / Out_RST_NEXT_ZERO_0
+          In_LISTEN           -> 52 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 52 / Out_TIMEOUT
+          In_RCV              -> 52 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 54 / Out_TIMEOUT
+          In_CLOSE            -> 10 / Out_TIMEOUT
+          In_SEND             -> 52 / Out_TIMEOUT
+          In_ACK_V_V_0        -> 51 / Out_RST_NEXT_ZERO_0
+    53    In_CLOSECONNECTION  -> 44 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 51 / Out_RST_NEXT_ZERO_0
+          In_SYN_ACK_V_V_0    -> 53 / Out_RST_NEXT_ZERO_0
+          In_RST_V_V_0        -> 51 / Out_TIMEOUT
+          In_ACCEPT           -> 53 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 51 / Out_RST_NEXT_ZERO_0
+          In_LISTEN           -> 53 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 52 / Out_ACK_SYN_FRESH_NEXT_0
+          In_RCV              -> 53 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 51 / Out_TIMEOUT
+          In_CLOSE            -> 10 / Out_TIMEOUT
+          In_SEND             -> 53 / Out_TIMEOUT
+          In_ACK_V_V_0        -> 51 / Out_RST_NEXT_ZERO_0
+    54    In_CLOSECONNECTION  -> 45 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 51 / Out_RST_ZERO_ZERO_0
+          In_SYN_ACK_V_V_0    -> 51 / Out_RST_ZERO_ZERO_0
+          In_RST_V_V_0        -> 54 / Out_TIMEOUT
+          In_ACCEPT           -> 54 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 51 / Out_RST_ZERO_ZERO_0
+          In_LISTEN           -> 54 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 54 / Out_TIMEOUT
+          In_RCV              -> 54 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 54 / Out_TIMEOUT
+          In_CLOSE            -> 2 / Out_TIMEOUT
+          In_SEND             -> 54 / Out_TIMEOUT
+          In_ACK_V_V_0        -> 51 / Out_RST_ZERO_ZERO_0
+-}
+tcpServerBsdTrans :: MealyAutomaton Int TcpServerBsdTransInput TcpServerBsdTransOutput
+tcpServerBsdTrans =
+    case mkMealyAutomatonTable 55 0 deltaTable lambdaTable of
+        Right m -> m
+        Left err -> error ("haal-gen: invalid transition table: " ++ err)
+  where
+    deltaTable =
+        "\0\0\0\0\0\0\1\0\0\0\2\0\0\
+        \\1\1\1\1\3\1\1\4\1\1\2\1\1\
+        \\2\2\2\2\2\2\2\2\2\2\2\2\2\
+        \\1\3\3\3\3\3\3\7\3\3\2\3\3\
+        \\4\5\6\1\7\8\4\4\4\9\10\4\5\
+        \\5\5\12\12\14\8\5\12\5\12\2\5\5\
+        \\6\1\6\1\11\1\6\4\6\1\10\6\1\
+        \\4\14\11\3\7\13\7\7\7\15\10\7\14\
+        \\8\8\12\12\13\8\8\12\8\12\2\8\8\
+        \\9\1\1\9\15\1\9\9\9\9\2\9\1\
+        \\10\2\10\2\10\2\10\2\10\2\10\10\2\
+        \\6\3\11\3\11\3\11\7\11\3\10\11\3\
+        \\12\12\12\12\1\12\12\16\12\12\2\12\12\
+        \\17\13\18\18\13\13\13\18\13\18\19\13\13\
+        \\20\14\18\18\14\13\14\18\14\18\21\14\14\
+        \\9\3\3\15\15\3\15\15\15\15\2\15\3\
+        \\16\22\23\12\4\24\16\16\16\25\10\16\22\
+        \\17\1\1\1\27\6\17\1\17\1\26\17\6\
+        \\1\18\18\18\18\18\18\28\18\18\2\18\18\
+        \\26\19\2\2\19\19\19\2\19\2\19\19\19\
+        \\20\1\1\1\30\31\20\1\20\1\29\20\20\
+        \\29\21\2\2\21\19\21\2\21\2\21\21\21\
+        \\22\22\32\32\5\24\22\32\22\32\2\22\22\
+        \\23\12\23\12\6\12\23\16\23\12\10\23\12\
+        \\24\24\32\32\8\24\24\32\24\32\2\24\24\
+        \\25\12\12\25\9\12\25\25\25\25\2\25\12\
+        \\26\2\2\2\26\10\26\2\26\2\26\26\10\
+        \\17\3\3\3\27\11\27\3\27\3\26\27\11\
+        \\4\33\34\18\28\35\28\28\28\36\10\28\33\
+        \\29\2\2\2\29\37\29\2\29\2\29\29\29\
+        \\20\3\3\3\30\38\30\3\30\3\29\30\30\
+        \\31\31\31\39\38\31\31\31\31\39\37\31\31\
+        \\32\32\32\32\12\32\32\40\32\32\2\32\32\
+        \\5\33\41\41\33\35\33\41\33\41\2\33\33\
+        \\6\18\34\18\34\18\34\28\34\18\10\34\18\
+        \\8\35\41\41\35\35\35\41\35\41\2\35\35\
+        \\9\18\18\36\36\18\36\36\36\36\2\36\18\
+        \\37\37\37\42\37\37\37\37\37\42\37\37\37\
+        \\31\38\38\43\38\38\38\38\38\43\37\38\38\
+        \\39\39\39\39\43\39\39\4\39\39\42\39\39\
+        \\40\32\44\32\16\32\40\40\40\45\10\40\32\
+        \\12\41\41\41\41\41\41\46\41\41\2\41\41\
+        \\42\42\42\42\42\42\42\2\42\42\42\42\42\
+        \\39\43\43\43\43\43\43\7\43\43\42\43\43\
+        \\44\32\44\32\23\32\44\40\44\32\10\44\32\
+        \\45\32\32\45\25\32\45\45\45\45\2\45\32\
+        \\16\47\48\41\46\49\46\46\46\50\10\46\47\
+        \\22\47\51\51\47\49\47\51\47\51\2\47\47\
+        \\23\41\48\41\48\41\48\46\48\41\10\48\41\
+        \\24\49\51\51\49\49\49\51\49\51\2\49\49\
+        \\25\41\41\50\50\41\50\50\50\50\2\50\41\
+        \\32\51\51\51\51\51\51\52\51\51\2\51\51\
+        \\40\51\53\51\52\51\52\52\52\54\10\52\51\
+        \\44\51\53\51\53\51\53\52\53\51\10\53\51\
+        \\45\51\51\54\54\51\54\54\54\54\2\54\51"
+    lambdaTable =
+        "\0\1\1\0\0\1\0\2\0\0\0\0\1\
+        \\0\1\1\0\0\1\0\3\0\0\0\0\1\
+        \\0\1\1\0\0\1\0\2\0\0\0\0\1\
+        \\0\1\1\0\0\1\0\3\0\0\0\0\1\
+        \\0\4\5\0\0\4\0\0\0\0\0\0\0\
+        \\0\4\6\0\0\4\0\6\0\0\6\0\0\
+        \\0\5\5\0\0\5\0\3\0\0\0\0\5\
+        \\0\4\5\0\0\4\0\0\0\0\0\0\0\
+        \\0\4\6\0\0\4\0\6\0\0\6\0\0\
+        \\0\1\1\0\0\1\0\0\0\0\0\0\1\
+        \\0\5\5\0\0\5\0\2\0\0\0\0\5\
+        \\0\5\5\0\0\5\0\3\0\0\0\0\5\
+        \\0\1\1\0\0\1\0\3\0\0\0\0\1\
+        \\7\4\6\0\0\4\0\6\0\0\0\8\0\
+        \\7\4\6\0\0\4\0\6\0\0\0\8\0\
+        \\0\1\1\0\0\1\0\0\0\0\0\0\1\
+        \\0\4\5\0\0\4\0\0\0\0\0\0\0\
+        \\0\5\6\0\0\0\0\6\0\0\0\0\0\
+        \\0\1\1\0\0\1\0\3\0\0\0\0\1\
+        \\7\4\6\0\0\4\0\6\0\0\0\8\0\
+        \\0\5\6\0\0\4\0\6\0\0\0\0\0\
+        \\7\4\6\0\0\4\0\6\0\0\0\8\0\
+        \\0\4\6\0\0\4\0\6\0\0\6\0\0\
+        \\0\5\5\0\0\5\0\3\0\0\0\0\5\
+        \\0\4\6\0\0\4\0\6\0\0\6\0\0\
+        \\0\1\1\0\0\1\0\0\0\0\0\0\1\
+        \\0\5\6\0\0\0\0\6\0\0\0\0\0\
+        \\0\5\6\0\0\0\0\6\0\0\0\0\0\
+        \\0\4\5\0\0\4\0\0\0\0\0\0\0\
+        \\0\5\6\0\0\4\0\6\0\0\0\0\0\
+        \\0\5\6\0\0\4\0\6\0\0\0\0\0\
+        \\0\9\9\0\0\9\0\0\0\0\0\0\0\
+        \\0\1\1\0\0\1\0\3\0\0\0\0\1\
+        \\0\4\6\0\0\4\0\6\0\0\6\0\0\
+        \\0\5\5\0\0\5\0\3\0\0\0\0\5\
+        \\0\4\6\0\0\4\0\6\0\0\6\0\0\
+        \\0\1\1\0\0\1\0\0\0\0\0\0\1\
+        \\0\9\9\0\0\9\0\0\0\0\0\0\0\
+        \\0\9\9\0\0\9\0\0\0\0\0\0\0\
+        \\0\10\10\0\0\10\0\3\0\0\0\0\10\
+        \\0\5\5\0\0\5\0\0\0\0\0\0\5\
+        \\0\1\1\0\0\1\0\3\0\0\0\0\1\
+        \\0\10\10\0\0\10\0\2\0\0\0\0\10\
+        \\0\10\10\0\0\10\0\3\0\0\0\0\10\
+        \\0\5\5\0\0\5\0\3\0\0\0\0\5\
+        \\0\1\1\0\0\1\0\0\0\0\0\0\1\
+        \\0\4\5\0\0\4\0\0\0\0\0\0\0\
+        \\0\4\6\0\0\4\0\6\0\0\6\0\0\
+        \\0\5\5\0\0\5\0\3\0\0\0\0\5\
+        \\0\4\6\0\0\4\0\6\0\0\6\0\0\
+        \\0\1\1\0\0\1\0\0\0\0\0\0\1\
+        \\0\1\1\0\0\1\0\3\0\0\0\0\1\
+        \\0\5\5\0\0\5\0\0\0\0\0\0\5\
+        \\0\5\5\0\0\5\0\3\0\0\0\0\5\
+        \\0\1\1\0\0\1\0\0\0\0\0\0\1"
diff --git a/src/Haal/Models/TCP/TcpServerUbuntuTrans.hs b/src/Haal/Models/TCP/TcpServerUbuntuTrans.hs
--- a/src/Haal/Models/TCP/TcpServerUbuntuTrans.hs
+++ b/src/Haal/Models/TCP/TcpServerUbuntuTrans.hs
@@ -5,1406 +5,840 @@
     , tcpServerUbuntuTrans
     ) where
 
-import qualified Data.Set as Set
-import Haal.Automaton.MealyAutomaton (MealyAutomaton, mkMealyAutomaton)
-
-data TcpServerUbuntuTransInput
-    = In_CLOSECONNECTION
-    | In_ACK_PSH_V_V_1
-    | In_SYN_ACK_V_V_0
-    | In_RST_V_V_0
-    | In_ACCEPT
-    | In_FIN_ACK_V_V_0
-    | In_LISTEN
-    | In_SYN_V_V_0
-    | In_RCV
-    | In_ACK_RST_V_V_0
-    | In_CLOSE
-    | In_ACK_V_V_0
-    deriving (Show, Eq, Ord, Enum, Bounded)
-
-data TcpServerUbuntuTransOutput
-    = Out_TIMEOUT
-    | Out_RST_ZERO_ZERO_0
-    | Out_ACK_RST_ZERO_NEXT_0
-    | Out_ACK_SYN_FRESH_NEXT_0
-    | Out_ACK_NEXT_NEXT_0
-    | Out_RST_NEXT_ZERO_0
-    | Out_ACK_NEXT_CURRENT_0
-    | Out_ACK_RST_NEXT_CURRENT_0
-    | Out_ACK_FIN_NEXT_CURRENT_0
-    deriving (Show, Eq, Ord, Enum, Bounded)
-
-tcpServerUbuntuTrans :: MealyAutomaton Int TcpServerUbuntuTransInput TcpServerUbuntuTransOutput
-tcpServerUbuntuTrans = mkMealyAutomaton delta lambda (Set.fromList [0..56]) 0
-  where
-    delta 0 In_CLOSECONNECTION = 0
-    delta 0 In_ACK_PSH_V_V_1 = 0
-    delta 0 In_SYN_ACK_V_V_0 = 0
-    delta 0 In_RST_V_V_0 = 0
-    delta 0 In_ACCEPT = 0
-    delta 0 In_FIN_ACK_V_V_0 = 0
-    delta 0 In_LISTEN = 1
-    delta 0 In_SYN_V_V_0 = 0
-    delta 0 In_RCV = 0
-    delta 0 In_ACK_RST_V_V_0 = 0
-    delta 0 In_CLOSE = 2
-    delta 0 In_ACK_V_V_0 = 0
-    delta 1 In_CLOSECONNECTION = 1
-    delta 1 In_ACK_PSH_V_V_1 = 1
-    delta 1 In_SYN_ACK_V_V_0 = 1
-    delta 1 In_RST_V_V_0 = 1
-    delta 1 In_ACCEPT = 3
-    delta 1 In_FIN_ACK_V_V_0 = 1
-    delta 1 In_LISTEN = 1
-    delta 1 In_SYN_V_V_0 = 4
-    delta 1 In_RCV = 1
-    delta 1 In_ACK_RST_V_V_0 = 1
-    delta 1 In_CLOSE = 2
-    delta 1 In_ACK_V_V_0 = 1
-    delta 2 In_CLOSECONNECTION = 2
-    delta 2 In_ACK_PSH_V_V_1 = 2
-    delta 2 In_SYN_ACK_V_V_0 = 2
-    delta 2 In_RST_V_V_0 = 2
-    delta 2 In_ACCEPT = 2
-    delta 2 In_FIN_ACK_V_V_0 = 2
-    delta 2 In_LISTEN = 2
-    delta 2 In_SYN_V_V_0 = 2
-    delta 2 In_RCV = 2
-    delta 2 In_ACK_RST_V_V_0 = 2
-    delta 2 In_CLOSE = 2
-    delta 2 In_ACK_V_V_0 = 2
-    delta 4 In_CLOSECONNECTION = 4
-    delta 4 In_ACK_PSH_V_V_1 = 5
-    delta 4 In_SYN_ACK_V_V_0 = 1
-    delta 4 In_RST_V_V_0 = 1
-    delta 4 In_ACCEPT = 6
-    delta 4 In_FIN_ACK_V_V_0 = 7
-    delta 4 In_LISTEN = 4
-    delta 4 In_SYN_V_V_0 = 1
-    delta 4 In_RCV = 4
-    delta 4 In_ACK_RST_V_V_0 = 1
-    delta 4 In_CLOSE = 8
-    delta 4 In_ACK_V_V_0 = 9
-    delta 3 In_CLOSECONNECTION = 1
-    delta 3 In_ACK_PSH_V_V_1 = 3
-    delta 3 In_SYN_ACK_V_V_0 = 3
-    delta 3 In_RST_V_V_0 = 3
-    delta 3 In_ACCEPT = 3
-    delta 3 In_FIN_ACK_V_V_0 = 3
-    delta 3 In_LISTEN = 3
-    delta 3 In_SYN_V_V_0 = 6
-    delta 3 In_RCV = 3
-    delta 3 In_ACK_RST_V_V_0 = 3
-    delta 3 In_CLOSE = 2
-    delta 3 In_ACK_V_V_0 = 3
-    delta 5 In_CLOSECONNECTION = 5
-    delta 5 In_ACK_PSH_V_V_1 = 5
-    delta 5 In_SYN_ACK_V_V_0 = 5
-    delta 5 In_RST_V_V_0 = 10
-    delta 5 In_ACCEPT = 11
-    delta 5 In_FIN_ACK_V_V_0 = 12
-    delta 5 In_LISTEN = 5
-    delta 5 In_SYN_V_V_0 = 5
-    delta 5 In_RCV = 5
-    delta 5 In_ACK_RST_V_V_0 = 10
-    delta 5 In_CLOSE = 2
-    delta 5 In_ACK_V_V_0 = 5
-    delta 9 In_CLOSECONNECTION = 9
-    delta 9 In_ACK_PSH_V_V_1 = 5
-    delta 9 In_SYN_ACK_V_V_0 = 9
-    delta 9 In_RST_V_V_0 = 10
-    delta 9 In_ACCEPT = 13
-    delta 9 In_FIN_ACK_V_V_0 = 7
-    delta 9 In_LISTEN = 9
-    delta 9 In_SYN_V_V_0 = 9
-    delta 9 In_RCV = 9
-    delta 9 In_ACK_RST_V_V_0 = 10
-    delta 9 In_CLOSE = 2
-    delta 9 In_ACK_V_V_0 = 9
-    delta 7 In_CLOSECONNECTION = 7
-    delta 7 In_ACK_PSH_V_V_1 = 7
-    delta 7 In_SYN_ACK_V_V_0 = 7
-    delta 7 In_RST_V_V_0 = 10
-    delta 7 In_ACCEPT = 14
-    delta 7 In_FIN_ACK_V_V_0 = 7
-    delta 7 In_LISTEN = 7
-    delta 7 In_SYN_V_V_0 = 7
-    delta 7 In_RCV = 7
-    delta 7 In_ACK_RST_V_V_0 = 10
-    delta 7 In_CLOSE = 2
-    delta 7 In_ACK_V_V_0 = 7
-    delta 8 In_CLOSECONNECTION = 8
-    delta 8 In_ACK_PSH_V_V_1 = 2
-    delta 8 In_SYN_ACK_V_V_0 = 2
-    delta 8 In_RST_V_V_0 = 2
-    delta 8 In_ACCEPT = 8
-    delta 8 In_FIN_ACK_V_V_0 = 2
-    delta 8 In_LISTEN = 8
-    delta 8 In_SYN_V_V_0 = 2
-    delta 8 In_RCV = 8
-    delta 8 In_ACK_RST_V_V_0 = 2
-    delta 8 In_CLOSE = 8
-    delta 8 In_ACK_V_V_0 = 2
-    delta 6 In_CLOSECONNECTION = 4
-    delta 6 In_ACK_PSH_V_V_1 = 11
-    delta 6 In_SYN_ACK_V_V_0 = 3
-    delta 6 In_RST_V_V_0 = 3
-    delta 6 In_ACCEPT = 6
-    delta 6 In_FIN_ACK_V_V_0 = 14
-    delta 6 In_LISTEN = 6
-    delta 6 In_SYN_V_V_0 = 3
-    delta 6 In_RCV = 6
-    delta 6 In_ACK_RST_V_V_0 = 3
-    delta 6 In_CLOSE = 8
-    delta 6 In_ACK_V_V_0 = 13
-    delta 12 In_CLOSECONNECTION = 12
-    delta 12 In_ACK_PSH_V_V_1 = 12
-    delta 12 In_SYN_ACK_V_V_0 = 12
-    delta 12 In_RST_V_V_0 = 10
-    delta 12 In_ACCEPT = 15
-    delta 12 In_FIN_ACK_V_V_0 = 12
-    delta 12 In_LISTEN = 12
-    delta 12 In_SYN_V_V_0 = 12
-    delta 12 In_RCV = 12
-    delta 12 In_ACK_RST_V_V_0 = 10
-    delta 12 In_CLOSE = 2
-    delta 12 In_ACK_V_V_0 = 12
-    delta 11 In_CLOSECONNECTION = 1
-    delta 11 In_ACK_PSH_V_V_1 = 11
-    delta 11 In_SYN_ACK_V_V_0 = 11
-    delta 11 In_RST_V_V_0 = 16
-    delta 11 In_ACCEPT = 11
-    delta 11 In_FIN_ACK_V_V_0 = 15
-    delta 11 In_LISTEN = 11
-    delta 11 In_SYN_V_V_0 = 11
-    delta 11 In_RCV = 13
-    delta 11 In_ACK_RST_V_V_0 = 16
-    delta 11 In_CLOSE = 17
-    delta 11 In_ACK_V_V_0 = 11
-    delta 10 In_CLOSECONNECTION = 10
-    delta 10 In_ACK_PSH_V_V_1 = 10
-    delta 10 In_SYN_ACK_V_V_0 = 10
-    delta 10 In_RST_V_V_0 = 10
-    delta 10 In_ACCEPT = 16
-    delta 10 In_FIN_ACK_V_V_0 = 10
-    delta 10 In_LISTEN = 10
-    delta 10 In_SYN_V_V_0 = 18
-    delta 10 In_RCV = 10
-    delta 10 In_ACK_RST_V_V_0 = 10
-    delta 10 In_CLOSE = 2
-    delta 10 In_ACK_V_V_0 = 10
-    delta 13 In_CLOSECONNECTION = 19
-    delta 13 In_ACK_PSH_V_V_1 = 11
-    delta 13 In_SYN_ACK_V_V_0 = 13
-    delta 13 In_RST_V_V_0 = 16
-    delta 13 In_ACCEPT = 13
-    delta 13 In_FIN_ACK_V_V_0 = 14
-    delta 13 In_LISTEN = 13
-    delta 13 In_SYN_V_V_0 = 13
-    delta 13 In_RCV = 20
-    delta 13 In_ACK_RST_V_V_0 = 16
-    delta 13 In_CLOSE = 21
-    delta 13 In_ACK_V_V_0 = 13
-    delta 14 In_CLOSECONNECTION = 22
-    delta 14 In_ACK_PSH_V_V_1 = 14
-    delta 14 In_SYN_ACK_V_V_0 = 14
-    delta 14 In_RST_V_V_0 = 16
-    delta 14 In_ACCEPT = 14
-    delta 14 In_FIN_ACK_V_V_0 = 14
-    delta 14 In_LISTEN = 14
-    delta 14 In_SYN_V_V_0 = 14
-    delta 14 In_RCV = 14
-    delta 14 In_ACK_RST_V_V_0 = 16
-    delta 14 In_CLOSE = 23
-    delta 14 In_ACK_V_V_0 = 14
-    delta 15 In_CLOSECONNECTION = 1
-    delta 15 In_ACK_PSH_V_V_1 = 15
-    delta 15 In_SYN_ACK_V_V_0 = 15
-    delta 15 In_RST_V_V_0 = 16
-    delta 15 In_ACCEPT = 15
-    delta 15 In_FIN_ACK_V_V_0 = 15
-    delta 15 In_LISTEN = 15
-    delta 15 In_SYN_V_V_0 = 15
-    delta 15 In_RCV = 14
-    delta 15 In_ACK_RST_V_V_0 = 16
-    delta 15 In_CLOSE = 24
-    delta 15 In_ACK_V_V_0 = 15
-    delta 17 In_CLOSECONNECTION = 2
-    delta 17 In_ACK_PSH_V_V_1 = 17
-    delta 17 In_SYN_ACK_V_V_0 = 17
-    delta 17 In_RST_V_V_0 = 2
-    delta 17 In_ACCEPT = 17
-    delta 17 In_FIN_ACK_V_V_0 = 24
-    delta 17 In_LISTEN = 17
-    delta 17 In_SYN_V_V_0 = 17
-    delta 17 In_RCV = 21
-    delta 17 In_ACK_RST_V_V_0 = 2
-    delta 17 In_CLOSE = 17
-    delta 17 In_ACK_V_V_0 = 17
-    delta 16 In_CLOSECONNECTION = 1
-    delta 16 In_ACK_PSH_V_V_1 = 16
-    delta 16 In_SYN_ACK_V_V_0 = 16
-    delta 16 In_RST_V_V_0 = 16
-    delta 16 In_ACCEPT = 16
-    delta 16 In_FIN_ACK_V_V_0 = 16
-    delta 16 In_LISTEN = 16
-    delta 16 In_SYN_V_V_0 = 25
-    delta 16 In_RCV = 16
-    delta 16 In_ACK_RST_V_V_0 = 16
-    delta 16 In_CLOSE = 2
-    delta 16 In_ACK_V_V_0 = 16
-    delta 18 In_CLOSECONNECTION = 18
-    delta 18 In_ACK_PSH_V_V_1 = 26
-    delta 18 In_SYN_ACK_V_V_0 = 10
-    delta 18 In_RST_V_V_0 = 10
-    delta 18 In_ACCEPT = 25
-    delta 18 In_FIN_ACK_V_V_0 = 27
-    delta 18 In_LISTEN = 18
-    delta 18 In_SYN_V_V_0 = 10
-    delta 18 In_RCV = 18
-    delta 18 In_ACK_RST_V_V_0 = 10
-    delta 18 In_CLOSE = 8
-    delta 18 In_ACK_V_V_0 = 28
-    delta 19 In_CLOSECONNECTION = 19
-    delta 19 In_ACK_PSH_V_V_1 = 1
-    delta 19 In_SYN_ACK_V_V_0 = 19
-    delta 19 In_RST_V_V_0 = 1
-    delta 19 In_ACCEPT = 29
-    delta 19 In_FIN_ACK_V_V_0 = 30
-    delta 19 In_LISTEN = 19
-    delta 19 In_SYN_V_V_0 = 19
-    delta 19 In_RCV = 19
-    delta 19 In_ACK_RST_V_V_0 = 1
-    delta 19 In_CLOSE = 31
-    delta 19 In_ACK_V_V_0 = 32
-    delta 20 In_CLOSECONNECTION = 19
-    delta 20 In_ACK_PSH_V_V_1 = 13
-    delta 20 In_SYN_ACK_V_V_0 = 20
-    delta 20 In_RST_V_V_0 = 16
-    delta 20 In_ACCEPT = 20
-    delta 20 In_FIN_ACK_V_V_0 = 14
-    delta 20 In_LISTEN = 20
-    delta 20 In_SYN_V_V_0 = 20
-    delta 20 In_RCV = 20
-    delta 20 In_ACK_RST_V_V_0 = 16
-    delta 20 In_CLOSE = 21
-    delta 20 In_ACK_V_V_0 = 20
-    delta 21 In_CLOSECONNECTION = 31
-    delta 21 In_ACK_PSH_V_V_1 = 17
-    delta 21 In_SYN_ACK_V_V_0 = 21
-    delta 21 In_RST_V_V_0 = 2
-    delta 21 In_ACCEPT = 21
-    delta 21 In_FIN_ACK_V_V_0 = 23
-    delta 21 In_LISTEN = 21
-    delta 21 In_SYN_V_V_0 = 21
-    delta 21 In_RCV = 33
-    delta 21 In_ACK_RST_V_V_0 = 2
-    delta 21 In_CLOSE = 21
-    delta 21 In_ACK_V_V_0 = 21
-    delta 23 In_CLOSECONNECTION = 34
-    delta 23 In_ACK_PSH_V_V_1 = 23
-    delta 23 In_SYN_ACK_V_V_0 = 23
-    delta 23 In_RST_V_V_0 = 2
-    delta 23 In_ACCEPT = 23
-    delta 23 In_FIN_ACK_V_V_0 = 23
-    delta 23 In_LISTEN = 23
-    delta 23 In_SYN_V_V_0 = 23
-    delta 23 In_RCV = 23
-    delta 23 In_ACK_RST_V_V_0 = 2
-    delta 23 In_CLOSE = 23
-    delta 23 In_ACK_V_V_0 = 23
-    delta 22 In_CLOSECONNECTION = 22
-    delta 22 In_ACK_PSH_V_V_1 = 35
-    delta 22 In_SYN_ACK_V_V_0 = 22
-    delta 22 In_RST_V_V_0 = 1
-    delta 22 In_ACCEPT = 36
-    delta 22 In_FIN_ACK_V_V_0 = 35
-    delta 22 In_LISTEN = 22
-    delta 22 In_SYN_V_V_0 = 22
-    delta 22 In_RCV = 22
-    delta 22 In_ACK_RST_V_V_0 = 1
-    delta 22 In_CLOSE = 34
-    delta 22 In_ACK_V_V_0 = 35
-    delta 24 In_CLOSECONNECTION = 2
-    delta 24 In_ACK_PSH_V_V_1 = 24
-    delta 24 In_SYN_ACK_V_V_0 = 24
-    delta 24 In_RST_V_V_0 = 2
-    delta 24 In_ACCEPT = 24
-    delta 24 In_FIN_ACK_V_V_0 = 24
-    delta 24 In_LISTEN = 24
-    delta 24 In_SYN_V_V_0 = 24
-    delta 24 In_RCV = 23
-    delta 24 In_ACK_RST_V_V_0 = 2
-    delta 24 In_CLOSE = 24
-    delta 24 In_ACK_V_V_0 = 24
-    delta 25 In_CLOSECONNECTION = 4
-    delta 25 In_ACK_PSH_V_V_1 = 37
-    delta 25 In_SYN_ACK_V_V_0 = 16
-    delta 25 In_RST_V_V_0 = 16
-    delta 25 In_ACCEPT = 25
-    delta 25 In_FIN_ACK_V_V_0 = 38
-    delta 25 In_LISTEN = 25
-    delta 25 In_SYN_V_V_0 = 16
-    delta 25 In_RCV = 25
-    delta 25 In_ACK_RST_V_V_0 = 16
-    delta 25 In_CLOSE = 8
-    delta 25 In_ACK_V_V_0 = 39
-    delta 27 In_CLOSECONNECTION = 27
-    delta 27 In_ACK_PSH_V_V_1 = 27
-    delta 27 In_SYN_ACK_V_V_0 = 27
-    delta 27 In_RST_V_V_0 = 40
-    delta 27 In_ACCEPT = 38
-    delta 27 In_FIN_ACK_V_V_0 = 27
-    delta 27 In_LISTEN = 27
-    delta 27 In_SYN_V_V_0 = 27
-    delta 27 In_RCV = 27
-    delta 27 In_ACK_RST_V_V_0 = 40
-    delta 27 In_CLOSE = 2
-    delta 27 In_ACK_V_V_0 = 27
-    delta 28 In_CLOSECONNECTION = 28
-    delta 28 In_ACK_PSH_V_V_1 = 26
-    delta 28 In_SYN_ACK_V_V_0 = 28
-    delta 28 In_RST_V_V_0 = 40
-    delta 28 In_ACCEPT = 39
-    delta 28 In_FIN_ACK_V_V_0 = 27
-    delta 28 In_LISTEN = 28
-    delta 28 In_SYN_V_V_0 = 28
-    delta 28 In_RCV = 28
-    delta 28 In_ACK_RST_V_V_0 = 40
-    delta 28 In_CLOSE = 2
-    delta 28 In_ACK_V_V_0 = 28
-    delta 26 In_CLOSECONNECTION = 26
-    delta 26 In_ACK_PSH_V_V_1 = 26
-    delta 26 In_SYN_ACK_V_V_0 = 26
-    delta 26 In_RST_V_V_0 = 40
-    delta 26 In_ACCEPT = 37
-    delta 26 In_FIN_ACK_V_V_0 = 41
-    delta 26 In_LISTEN = 26
-    delta 26 In_SYN_V_V_0 = 26
-    delta 26 In_RCV = 26
-    delta 26 In_ACK_RST_V_V_0 = 40
-    delta 26 In_CLOSE = 2
-    delta 26 In_ACK_V_V_0 = 26
-    delta 31 In_CLOSECONNECTION = 31
-    delta 31 In_ACK_PSH_V_V_1 = 2
-    delta 31 In_SYN_ACK_V_V_0 = 31
-    delta 31 In_RST_V_V_0 = 2
-    delta 31 In_ACCEPT = 31
-    delta 31 In_FIN_ACK_V_V_0 = 42
-    delta 31 In_LISTEN = 31
-    delta 31 In_SYN_V_V_0 = 31
-    delta 31 In_RCV = 31
-    delta 31 In_ACK_RST_V_V_0 = 2
-    delta 31 In_CLOSE = 31
-    delta 31 In_ACK_V_V_0 = 43
-    delta 32 In_CLOSECONNECTION = 32
-    delta 32 In_ACK_PSH_V_V_1 = 1
-    delta 32 In_SYN_ACK_V_V_0 = 1
-    delta 32 In_RST_V_V_0 = 1
-    delta 32 In_ACCEPT = 44
-    delta 32 In_FIN_ACK_V_V_0 = 30
-    delta 32 In_LISTEN = 32
-    delta 32 In_SYN_V_V_0 = 1
-    delta 32 In_RCV = 32
-    delta 32 In_ACK_RST_V_V_0 = 1
-    delta 32 In_CLOSE = 43
-    delta 32 In_ACK_V_V_0 = 32
-    delta 29 In_CLOSECONNECTION = 19
-    delta 29 In_ACK_PSH_V_V_1 = 3
-    delta 29 In_SYN_ACK_V_V_0 = 29
-    delta 29 In_RST_V_V_0 = 3
-    delta 29 In_ACCEPT = 29
-    delta 29 In_FIN_ACK_V_V_0 = 45
-    delta 29 In_LISTEN = 29
-    delta 29 In_SYN_V_V_0 = 29
-    delta 29 In_RCV = 29
-    delta 29 In_ACK_RST_V_V_0 = 3
-    delta 29 In_CLOSE = 31
-    delta 29 In_ACK_V_V_0 = 44
-    delta 30 In_CLOSECONNECTION = 30
-    delta 30 In_ACK_PSH_V_V_1 = 30
-    delta 30 In_SYN_ACK_V_V_0 = 30
-    delta 30 In_RST_V_V_0 = 1
-    delta 30 In_ACCEPT = 45
-    delta 30 In_FIN_ACK_V_V_0 = 30
-    delta 30 In_LISTEN = 30
-    delta 30 In_SYN_V_V_0 = 30
-    delta 30 In_RCV = 30
-    delta 30 In_ACK_RST_V_V_0 = 1
-    delta 30 In_CLOSE = 42
-    delta 30 In_ACK_V_V_0 = 30
-    delta 33 In_CLOSECONNECTION = 31
-    delta 33 In_ACK_PSH_V_V_1 = 21
-    delta 33 In_SYN_ACK_V_V_0 = 33
-    delta 33 In_RST_V_V_0 = 2
-    delta 33 In_ACCEPT = 33
-    delta 33 In_FIN_ACK_V_V_0 = 23
-    delta 33 In_LISTEN = 33
-    delta 33 In_SYN_V_V_0 = 33
-    delta 33 In_RCV = 33
-    delta 33 In_ACK_RST_V_V_0 = 2
-    delta 33 In_CLOSE = 21
-    delta 33 In_ACK_V_V_0 = 33
-    delta 34 In_CLOSECONNECTION = 34
-    delta 34 In_ACK_PSH_V_V_1 = 8
-    delta 34 In_SYN_ACK_V_V_0 = 34
-    delta 34 In_RST_V_V_0 = 2
-    delta 34 In_ACCEPT = 34
-    delta 34 In_FIN_ACK_V_V_0 = 8
-    delta 34 In_LISTEN = 34
-    delta 34 In_SYN_V_V_0 = 34
-    delta 34 In_RCV = 34
-    delta 34 In_ACK_RST_V_V_0 = 2
-    delta 34 In_CLOSE = 34
-    delta 34 In_ACK_V_V_0 = 8
-    delta 35 In_CLOSECONNECTION = 35
-    delta 35 In_ACK_PSH_V_V_1 = 1
-    delta 35 In_SYN_ACK_V_V_0 = 1
-    delta 35 In_RST_V_V_0 = 1
-    delta 35 In_ACCEPT = 46
-    delta 35 In_FIN_ACK_V_V_0 = 1
-    delta 35 In_LISTEN = 35
-    delta 35 In_SYN_V_V_0 = 4
-    delta 35 In_RCV = 35
-    delta 35 In_ACK_RST_V_V_0 = 1
-    delta 35 In_CLOSE = 8
-    delta 35 In_ACK_V_V_0 = 1
-    delta 36 In_CLOSECONNECTION = 22
-    delta 36 In_ACK_PSH_V_V_1 = 46
-    delta 36 In_SYN_ACK_V_V_0 = 36
-    delta 36 In_RST_V_V_0 = 3
-    delta 36 In_ACCEPT = 36
-    delta 36 In_FIN_ACK_V_V_0 = 46
-    delta 36 In_LISTEN = 36
-    delta 36 In_SYN_V_V_0 = 36
-    delta 36 In_RCV = 36
-    delta 36 In_ACK_RST_V_V_0 = 3
-    delta 36 In_CLOSE = 34
-    delta 36 In_ACK_V_V_0 = 46
-    delta 37 In_CLOSECONNECTION = 5
-    delta 37 In_ACK_PSH_V_V_1 = 37
-    delta 37 In_SYN_ACK_V_V_0 = 37
-    delta 37 In_RST_V_V_0 = 47
-    delta 37 In_ACCEPT = 37
-    delta 37 In_FIN_ACK_V_V_0 = 48
-    delta 37 In_LISTEN = 37
-    delta 37 In_SYN_V_V_0 = 37
-    delta 37 In_RCV = 37
-    delta 37 In_ACK_RST_V_V_0 = 47
-    delta 37 In_CLOSE = 2
-    delta 37 In_ACK_V_V_0 = 37
-    delta 38 In_CLOSECONNECTION = 7
-    delta 38 In_ACK_PSH_V_V_1 = 38
-    delta 38 In_SYN_ACK_V_V_0 = 38
-    delta 38 In_RST_V_V_0 = 47
-    delta 38 In_ACCEPT = 38
-    delta 38 In_FIN_ACK_V_V_0 = 38
-    delta 38 In_LISTEN = 38
-    delta 38 In_SYN_V_V_0 = 38
-    delta 38 In_RCV = 38
-    delta 38 In_ACK_RST_V_V_0 = 47
-    delta 38 In_CLOSE = 2
-    delta 38 In_ACK_V_V_0 = 38
-    delta 39 In_CLOSECONNECTION = 9
-    delta 39 In_ACK_PSH_V_V_1 = 37
-    delta 39 In_SYN_ACK_V_V_0 = 39
-    delta 39 In_RST_V_V_0 = 47
-    delta 39 In_ACCEPT = 39
-    delta 39 In_FIN_ACK_V_V_0 = 38
-    delta 39 In_LISTEN = 39
-    delta 39 In_SYN_V_V_0 = 39
-    delta 39 In_RCV = 39
-    delta 39 In_ACK_RST_V_V_0 = 47
-    delta 39 In_CLOSE = 2
-    delta 39 In_ACK_V_V_0 = 39
-    delta 40 In_CLOSECONNECTION = 40
-    delta 40 In_ACK_PSH_V_V_1 = 40
-    delta 40 In_SYN_ACK_V_V_0 = 40
-    delta 40 In_RST_V_V_0 = 40
-    delta 40 In_ACCEPT = 47
-    delta 40 In_FIN_ACK_V_V_0 = 40
-    delta 40 In_LISTEN = 40
-    delta 40 In_SYN_V_V_0 = 49
-    delta 40 In_RCV = 40
-    delta 40 In_ACK_RST_V_V_0 = 40
-    delta 40 In_CLOSE = 2
-    delta 40 In_ACK_V_V_0 = 40
-    delta 41 In_CLOSECONNECTION = 41
-    delta 41 In_ACK_PSH_V_V_1 = 41
-    delta 41 In_SYN_ACK_V_V_0 = 41
-    delta 41 In_RST_V_V_0 = 40
-    delta 41 In_ACCEPT = 48
-    delta 41 In_FIN_ACK_V_V_0 = 41
-    delta 41 In_LISTEN = 41
-    delta 41 In_SYN_V_V_0 = 41
-    delta 41 In_RCV = 41
-    delta 41 In_ACK_RST_V_V_0 = 40
-    delta 41 In_CLOSE = 2
-    delta 41 In_ACK_V_V_0 = 41
-    delta 43 In_CLOSECONNECTION = 43
-    delta 43 In_ACK_PSH_V_V_1 = 2
-    delta 43 In_SYN_ACK_V_V_0 = 2
-    delta 43 In_RST_V_V_0 = 2
-    delta 43 In_ACCEPT = 43
-    delta 43 In_FIN_ACK_V_V_0 = 42
-    delta 43 In_LISTEN = 43
-    delta 43 In_SYN_V_V_0 = 2
-    delta 43 In_RCV = 43
-    delta 43 In_ACK_RST_V_V_0 = 2
-    delta 43 In_CLOSE = 43
-    delta 43 In_ACK_V_V_0 = 43
-    delta 42 In_CLOSECONNECTION = 42
-    delta 42 In_ACK_PSH_V_V_1 = 42
-    delta 42 In_SYN_ACK_V_V_0 = 42
-    delta 42 In_RST_V_V_0 = 2
-    delta 42 In_ACCEPT = 42
-    delta 42 In_FIN_ACK_V_V_0 = 42
-    delta 42 In_LISTEN = 42
-    delta 42 In_SYN_V_V_0 = 42
-    delta 42 In_RCV = 42
-    delta 42 In_ACK_RST_V_V_0 = 2
-    delta 42 In_CLOSE = 42
-    delta 42 In_ACK_V_V_0 = 42
-    delta 44 In_CLOSECONNECTION = 32
-    delta 44 In_ACK_PSH_V_V_1 = 3
-    delta 44 In_SYN_ACK_V_V_0 = 3
-    delta 44 In_RST_V_V_0 = 3
-    delta 44 In_ACCEPT = 44
-    delta 44 In_FIN_ACK_V_V_0 = 45
-    delta 44 In_LISTEN = 44
-    delta 44 In_SYN_V_V_0 = 3
-    delta 44 In_RCV = 44
-    delta 44 In_ACK_RST_V_V_0 = 3
-    delta 44 In_CLOSE = 43
-    delta 44 In_ACK_V_V_0 = 44
-    delta 45 In_CLOSECONNECTION = 30
-    delta 45 In_ACK_PSH_V_V_1 = 45
-    delta 45 In_SYN_ACK_V_V_0 = 45
-    delta 45 In_RST_V_V_0 = 3
-    delta 45 In_ACCEPT = 45
-    delta 45 In_FIN_ACK_V_V_0 = 45
-    delta 45 In_LISTEN = 45
-    delta 45 In_SYN_V_V_0 = 45
-    delta 45 In_RCV = 45
-    delta 45 In_ACK_RST_V_V_0 = 3
-    delta 45 In_CLOSE = 42
-    delta 45 In_ACK_V_V_0 = 45
-    delta 46 In_CLOSECONNECTION = 35
-    delta 46 In_ACK_PSH_V_V_1 = 3
-    delta 46 In_SYN_ACK_V_V_0 = 3
-    delta 46 In_RST_V_V_0 = 3
-    delta 46 In_ACCEPT = 46
-    delta 46 In_FIN_ACK_V_V_0 = 3
-    delta 46 In_LISTEN = 46
-    delta 46 In_SYN_V_V_0 = 6
-    delta 46 In_RCV = 46
-    delta 46 In_ACK_RST_V_V_0 = 3
-    delta 46 In_CLOSE = 8
-    delta 46 In_ACK_V_V_0 = 3
-    delta 48 In_CLOSECONNECTION = 12
-    delta 48 In_ACK_PSH_V_V_1 = 48
-    delta 48 In_SYN_ACK_V_V_0 = 48
-    delta 48 In_RST_V_V_0 = 47
-    delta 48 In_ACCEPT = 48
-    delta 48 In_FIN_ACK_V_V_0 = 48
-    delta 48 In_LISTEN = 48
-    delta 48 In_SYN_V_V_0 = 48
-    delta 48 In_RCV = 48
-    delta 48 In_ACK_RST_V_V_0 = 47
-    delta 48 In_CLOSE = 2
-    delta 48 In_ACK_V_V_0 = 48
-    delta 47 In_CLOSECONNECTION = 10
-    delta 47 In_ACK_PSH_V_V_1 = 47
-    delta 47 In_SYN_ACK_V_V_0 = 47
-    delta 47 In_RST_V_V_0 = 47
-    delta 47 In_ACCEPT = 47
-    delta 47 In_FIN_ACK_V_V_0 = 47
-    delta 47 In_LISTEN = 47
-    delta 47 In_SYN_V_V_0 = 50
-    delta 47 In_RCV = 47
-    delta 47 In_ACK_RST_V_V_0 = 47
-    delta 47 In_CLOSE = 2
-    delta 47 In_ACK_V_V_0 = 47
-    delta 49 In_CLOSECONNECTION = 49
-    delta 49 In_ACK_PSH_V_V_1 = 49
-    delta 49 In_SYN_ACK_V_V_0 = 40
-    delta 49 In_RST_V_V_0 = 40
-    delta 49 In_ACCEPT = 50
-    delta 49 In_FIN_ACK_V_V_0 = 49
-    delta 49 In_LISTEN = 49
-    delta 49 In_SYN_V_V_0 = 40
-    delta 49 In_RCV = 49
-    delta 49 In_ACK_RST_V_V_0 = 40
-    delta 49 In_CLOSE = 8
-    delta 49 In_ACK_V_V_0 = 49
-    delta 50 In_CLOSECONNECTION = 18
-    delta 50 In_ACK_PSH_V_V_1 = 51
-    delta 50 In_SYN_ACK_V_V_0 = 47
-    delta 50 In_RST_V_V_0 = 47
-    delta 50 In_ACCEPT = 50
-    delta 50 In_FIN_ACK_V_V_0 = 52
-    delta 50 In_LISTEN = 50
-    delta 50 In_SYN_V_V_0 = 47
-    delta 50 In_RCV = 50
-    delta 50 In_ACK_RST_V_V_0 = 47
-    delta 50 In_CLOSE = 8
-    delta 50 In_ACK_V_V_0 = 53
-    delta 53 In_CLOSECONNECTION = 28
-    delta 53 In_ACK_PSH_V_V_1 = 51
-    delta 53 In_SYN_ACK_V_V_0 = 53
-    delta 53 In_RST_V_V_0 = 54
-    delta 53 In_ACCEPT = 53
-    delta 53 In_FIN_ACK_V_V_0 = 52
-    delta 53 In_LISTEN = 53
-    delta 53 In_SYN_V_V_0 = 53
-    delta 53 In_RCV = 53
-    delta 53 In_ACK_RST_V_V_0 = 54
-    delta 53 In_CLOSE = 2
-    delta 53 In_ACK_V_V_0 = 53
-    delta 51 In_CLOSECONNECTION = 26
-    delta 51 In_ACK_PSH_V_V_1 = 51
-    delta 51 In_SYN_ACK_V_V_0 = 51
-    delta 51 In_RST_V_V_0 = 54
-    delta 51 In_ACCEPT = 51
-    delta 51 In_FIN_ACK_V_V_0 = 55
-    delta 51 In_LISTEN = 51
-    delta 51 In_SYN_V_V_0 = 51
-    delta 51 In_RCV = 51
-    delta 51 In_ACK_RST_V_V_0 = 54
-    delta 51 In_CLOSE = 2
-    delta 51 In_ACK_V_V_0 = 51
-    delta 52 In_CLOSECONNECTION = 27
-    delta 52 In_ACK_PSH_V_V_1 = 52
-    delta 52 In_SYN_ACK_V_V_0 = 52
-    delta 52 In_RST_V_V_0 = 54
-    delta 52 In_ACCEPT = 52
-    delta 52 In_FIN_ACK_V_V_0 = 52
-    delta 52 In_LISTEN = 52
-    delta 52 In_SYN_V_V_0 = 52
-    delta 52 In_RCV = 52
-    delta 52 In_ACK_RST_V_V_0 = 54
-    delta 52 In_CLOSE = 2
-    delta 52 In_ACK_V_V_0 = 52
-    delta 54 In_CLOSECONNECTION = 40
-    delta 54 In_ACK_PSH_V_V_1 = 54
-    delta 54 In_SYN_ACK_V_V_0 = 54
-    delta 54 In_RST_V_V_0 = 54
-    delta 54 In_ACCEPT = 54
-    delta 54 In_FIN_ACK_V_V_0 = 54
-    delta 54 In_LISTEN = 54
-    delta 54 In_SYN_V_V_0 = 56
-    delta 54 In_RCV = 54
-    delta 54 In_ACK_RST_V_V_0 = 54
-    delta 54 In_CLOSE = 2
-    delta 54 In_ACK_V_V_0 = 54
-    delta 55 In_CLOSECONNECTION = 41
-    delta 55 In_ACK_PSH_V_V_1 = 55
-    delta 55 In_SYN_ACK_V_V_0 = 55
-    delta 55 In_RST_V_V_0 = 54
-    delta 55 In_ACCEPT = 55
-    delta 55 In_FIN_ACK_V_V_0 = 55
-    delta 55 In_LISTEN = 55
-    delta 55 In_SYN_V_V_0 = 55
-    delta 55 In_RCV = 55
-    delta 55 In_ACK_RST_V_V_0 = 54
-    delta 55 In_CLOSE = 2
-    delta 55 In_ACK_V_V_0 = 55
-    delta 56 In_CLOSECONNECTION = 49
-    delta 56 In_ACK_PSH_V_V_1 = 56
-    delta 56 In_SYN_ACK_V_V_0 = 54
-    delta 56 In_RST_V_V_0 = 54
-    delta 56 In_ACCEPT = 56
-    delta 56 In_FIN_ACK_V_V_0 = 56
-    delta 56 In_LISTEN = 56
-    delta 56 In_SYN_V_V_0 = 54
-    delta 56 In_RCV = 56
-    delta 56 In_ACK_RST_V_V_0 = 54
-    delta 56 In_CLOSE = 8
-    delta 56 In_ACK_V_V_0 = 56
-    delta _ _ = error "haal-gen: undefined transition"
-    lambda 0 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 0 In_ACK_PSH_V_V_1 = Out_RST_ZERO_ZERO_0
-    lambda 0 In_SYN_ACK_V_V_0 = Out_RST_ZERO_ZERO_0
-    lambda 0 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 0 In_ACCEPT = Out_TIMEOUT
-    lambda 0 In_FIN_ACK_V_V_0 = Out_RST_ZERO_ZERO_0
-    lambda 0 In_LISTEN = Out_TIMEOUT
-    lambda 0 In_SYN_V_V_0 = Out_ACK_RST_ZERO_NEXT_0
-    lambda 0 In_RCV = Out_TIMEOUT
-    lambda 0 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 0 In_CLOSE = Out_TIMEOUT
-    lambda 0 In_ACK_V_V_0 = Out_RST_ZERO_ZERO_0
-    lambda 1 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 1 In_ACK_PSH_V_V_1 = Out_RST_ZERO_ZERO_0
-    lambda 1 In_SYN_ACK_V_V_0 = Out_RST_ZERO_ZERO_0
-    lambda 1 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 1 In_ACCEPT = Out_TIMEOUT
-    lambda 1 In_FIN_ACK_V_V_0 = Out_RST_ZERO_ZERO_0
-    lambda 1 In_LISTEN = Out_TIMEOUT
-    lambda 1 In_SYN_V_V_0 = Out_ACK_SYN_FRESH_NEXT_0
-    lambda 1 In_RCV = Out_TIMEOUT
-    lambda 1 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 1 In_CLOSE = Out_TIMEOUT
-    lambda 1 In_ACK_V_V_0 = Out_RST_ZERO_ZERO_0
-    lambda 2 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 2 In_ACK_PSH_V_V_1 = Out_RST_ZERO_ZERO_0
-    lambda 2 In_SYN_ACK_V_V_0 = Out_RST_ZERO_ZERO_0
-    lambda 2 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 2 In_ACCEPT = Out_TIMEOUT
-    lambda 2 In_FIN_ACK_V_V_0 = Out_RST_ZERO_ZERO_0
-    lambda 2 In_LISTEN = Out_TIMEOUT
-    lambda 2 In_SYN_V_V_0 = Out_ACK_RST_ZERO_NEXT_0
-    lambda 2 In_RCV = Out_TIMEOUT
-    lambda 2 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 2 In_CLOSE = Out_TIMEOUT
-    lambda 2 In_ACK_V_V_0 = Out_RST_ZERO_ZERO_0
-    lambda 4 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 4 In_ACK_PSH_V_V_1 = Out_ACK_NEXT_NEXT_0
-    lambda 4 In_SYN_ACK_V_V_0 = Out_RST_NEXT_ZERO_0
-    lambda 4 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 4 In_ACCEPT = Out_TIMEOUT
-    lambda 4 In_FIN_ACK_V_V_0 = Out_ACK_NEXT_NEXT_0
-    lambda 4 In_LISTEN = Out_TIMEOUT
-    lambda 4 In_SYN_V_V_0 = Out_ACK_RST_ZERO_NEXT_0
-    lambda 4 In_RCV = Out_TIMEOUT
-    lambda 4 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 4 In_CLOSE = Out_TIMEOUT
-    lambda 4 In_ACK_V_V_0 = Out_TIMEOUT
-    lambda 3 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 3 In_ACK_PSH_V_V_1 = Out_RST_ZERO_ZERO_0
-    lambda 3 In_SYN_ACK_V_V_0 = Out_RST_ZERO_ZERO_0
-    lambda 3 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 3 In_ACCEPT = Out_TIMEOUT
-    lambda 3 In_FIN_ACK_V_V_0 = Out_RST_ZERO_ZERO_0
-    lambda 3 In_LISTEN = Out_TIMEOUT
-    lambda 3 In_SYN_V_V_0 = Out_ACK_SYN_FRESH_NEXT_0
-    lambda 3 In_RCV = Out_TIMEOUT
-    lambda 3 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 3 In_CLOSE = Out_TIMEOUT
-    lambda 3 In_ACK_V_V_0 = Out_RST_ZERO_ZERO_0
-    lambda 5 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 5 In_ACK_PSH_V_V_1 = Out_ACK_NEXT_NEXT_0
-    lambda 5 In_SYN_ACK_V_V_0 = Out_ACK_NEXT_CURRENT_0
-    lambda 5 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 5 In_ACCEPT = Out_TIMEOUT
-    lambda 5 In_FIN_ACK_V_V_0 = Out_ACK_NEXT_NEXT_0
-    lambda 5 In_LISTEN = Out_TIMEOUT
-    lambda 5 In_SYN_V_V_0 = Out_TIMEOUT
-    lambda 5 In_RCV = Out_TIMEOUT
-    lambda 5 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 5 In_CLOSE = Out_ACK_RST_NEXT_CURRENT_0
-    lambda 5 In_ACK_V_V_0 = Out_TIMEOUT
-    lambda 9 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 9 In_ACK_PSH_V_V_1 = Out_ACK_NEXT_NEXT_0
-    lambda 9 In_SYN_ACK_V_V_0 = Out_ACK_NEXT_CURRENT_0
-    lambda 9 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 9 In_ACCEPT = Out_TIMEOUT
-    lambda 9 In_FIN_ACK_V_V_0 = Out_ACK_NEXT_NEXT_0
-    lambda 9 In_LISTEN = Out_TIMEOUT
-    lambda 9 In_SYN_V_V_0 = Out_TIMEOUT
-    lambda 9 In_RCV = Out_TIMEOUT
-    lambda 9 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 9 In_CLOSE = Out_ACK_RST_NEXT_CURRENT_0
-    lambda 9 In_ACK_V_V_0 = Out_TIMEOUT
-    lambda 7 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 7 In_ACK_PSH_V_V_1 = Out_TIMEOUT
-    lambda 7 In_SYN_ACK_V_V_0 = Out_ACK_NEXT_CURRENT_0
-    lambda 7 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 7 In_ACCEPT = Out_TIMEOUT
-    lambda 7 In_FIN_ACK_V_V_0 = Out_TIMEOUT
-    lambda 7 In_LISTEN = Out_TIMEOUT
-    lambda 7 In_SYN_V_V_0 = Out_TIMEOUT
-    lambda 7 In_RCV = Out_TIMEOUT
-    lambda 7 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 7 In_CLOSE = Out_ACK_RST_NEXT_CURRENT_0
-    lambda 7 In_ACK_V_V_0 = Out_TIMEOUT
-    lambda 8 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 8 In_ACK_PSH_V_V_1 = Out_RST_NEXT_ZERO_0
-    lambda 8 In_SYN_ACK_V_V_0 = Out_RST_NEXT_ZERO_0
-    lambda 8 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 8 In_ACCEPT = Out_TIMEOUT
-    lambda 8 In_FIN_ACK_V_V_0 = Out_RST_NEXT_ZERO_0
-    lambda 8 In_LISTEN = Out_TIMEOUT
-    lambda 8 In_SYN_V_V_0 = Out_ACK_RST_ZERO_NEXT_0
-    lambda 8 In_RCV = Out_TIMEOUT
-    lambda 8 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 8 In_CLOSE = Out_TIMEOUT
-    lambda 8 In_ACK_V_V_0 = Out_RST_NEXT_ZERO_0
-    lambda 6 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 6 In_ACK_PSH_V_V_1 = Out_ACK_NEXT_NEXT_0
-    lambda 6 In_SYN_ACK_V_V_0 = Out_RST_NEXT_ZERO_0
-    lambda 6 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 6 In_ACCEPT = Out_TIMEOUT
-    lambda 6 In_FIN_ACK_V_V_0 = Out_ACK_NEXT_NEXT_0
-    lambda 6 In_LISTEN = Out_TIMEOUT
-    lambda 6 In_SYN_V_V_0 = Out_ACK_RST_ZERO_NEXT_0
-    lambda 6 In_RCV = Out_TIMEOUT
-    lambda 6 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 6 In_CLOSE = Out_TIMEOUT
-    lambda 6 In_ACK_V_V_0 = Out_TIMEOUT
-    lambda 12 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 12 In_ACK_PSH_V_V_1 = Out_TIMEOUT
-    lambda 12 In_SYN_ACK_V_V_0 = Out_ACK_NEXT_CURRENT_0
-    lambda 12 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 12 In_ACCEPT = Out_TIMEOUT
-    lambda 12 In_FIN_ACK_V_V_0 = Out_TIMEOUT
-    lambda 12 In_LISTEN = Out_TIMEOUT
-    lambda 12 In_SYN_V_V_0 = Out_TIMEOUT
-    lambda 12 In_RCV = Out_TIMEOUT
-    lambda 12 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 12 In_CLOSE = Out_ACK_RST_NEXT_CURRENT_0
-    lambda 12 In_ACK_V_V_0 = Out_TIMEOUT
-    lambda 11 In_CLOSECONNECTION = Out_ACK_RST_NEXT_CURRENT_0
-    lambda 11 In_ACK_PSH_V_V_1 = Out_ACK_NEXT_NEXT_0
-    lambda 11 In_SYN_ACK_V_V_0 = Out_ACK_NEXT_CURRENT_0
-    lambda 11 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 11 In_ACCEPT = Out_TIMEOUT
-    lambda 11 In_FIN_ACK_V_V_0 = Out_ACK_NEXT_NEXT_0
-    lambda 11 In_LISTEN = Out_TIMEOUT
-    lambda 11 In_SYN_V_V_0 = Out_TIMEOUT
-    lambda 11 In_RCV = Out_TIMEOUT
-    lambda 11 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 11 In_CLOSE = Out_TIMEOUT
-    lambda 11 In_ACK_V_V_0 = Out_TIMEOUT
-    lambda 10 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 10 In_ACK_PSH_V_V_1 = Out_RST_ZERO_ZERO_0
-    lambda 10 In_SYN_ACK_V_V_0 = Out_RST_ZERO_ZERO_0
-    lambda 10 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 10 In_ACCEPT = Out_TIMEOUT
-    lambda 10 In_FIN_ACK_V_V_0 = Out_RST_ZERO_ZERO_0
-    lambda 10 In_LISTEN = Out_TIMEOUT
-    lambda 10 In_SYN_V_V_0 = Out_ACK_SYN_FRESH_NEXT_0
-    lambda 10 In_RCV = Out_TIMEOUT
-    lambda 10 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 10 In_CLOSE = Out_TIMEOUT
-    lambda 10 In_ACK_V_V_0 = Out_RST_ZERO_ZERO_0
-    lambda 13 In_CLOSECONNECTION = Out_ACK_FIN_NEXT_CURRENT_0
-    lambda 13 In_ACK_PSH_V_V_1 = Out_ACK_NEXT_NEXT_0
-    lambda 13 In_SYN_ACK_V_V_0 = Out_ACK_NEXT_CURRENT_0
-    lambda 13 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 13 In_ACCEPT = Out_TIMEOUT
-    lambda 13 In_FIN_ACK_V_V_0 = Out_ACK_NEXT_NEXT_0
-    lambda 13 In_LISTEN = Out_TIMEOUT
-    lambda 13 In_SYN_V_V_0 = Out_TIMEOUT
-    lambda 13 In_RCV = Out_TIMEOUT
-    lambda 13 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 13 In_CLOSE = Out_TIMEOUT
-    lambda 13 In_ACK_V_V_0 = Out_TIMEOUT
-    lambda 14 In_CLOSECONNECTION = Out_ACK_FIN_NEXT_CURRENT_0
-    lambda 14 In_ACK_PSH_V_V_1 = Out_TIMEOUT
-    lambda 14 In_SYN_ACK_V_V_0 = Out_ACK_NEXT_CURRENT_0
-    lambda 14 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 14 In_ACCEPT = Out_TIMEOUT
-    lambda 14 In_FIN_ACK_V_V_0 = Out_TIMEOUT
-    lambda 14 In_LISTEN = Out_TIMEOUT
-    lambda 14 In_SYN_V_V_0 = Out_TIMEOUT
-    lambda 14 In_RCV = Out_TIMEOUT
-    lambda 14 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 14 In_CLOSE = Out_TIMEOUT
-    lambda 14 In_ACK_V_V_0 = Out_TIMEOUT
-    lambda 15 In_CLOSECONNECTION = Out_ACK_RST_NEXT_CURRENT_0
-    lambda 15 In_ACK_PSH_V_V_1 = Out_TIMEOUT
-    lambda 15 In_SYN_ACK_V_V_0 = Out_ACK_NEXT_CURRENT_0
-    lambda 15 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 15 In_ACCEPT = Out_TIMEOUT
-    lambda 15 In_FIN_ACK_V_V_0 = Out_TIMEOUT
-    lambda 15 In_LISTEN = Out_TIMEOUT
-    lambda 15 In_SYN_V_V_0 = Out_TIMEOUT
-    lambda 15 In_RCV = Out_TIMEOUT
-    lambda 15 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 15 In_CLOSE = Out_TIMEOUT
-    lambda 15 In_ACK_V_V_0 = Out_TIMEOUT
-    lambda 17 In_CLOSECONNECTION = Out_ACK_RST_NEXT_CURRENT_0
-    lambda 17 In_ACK_PSH_V_V_1 = Out_ACK_NEXT_NEXT_0
-    lambda 17 In_SYN_ACK_V_V_0 = Out_ACK_NEXT_CURRENT_0
-    lambda 17 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 17 In_ACCEPT = Out_TIMEOUT
-    lambda 17 In_FIN_ACK_V_V_0 = Out_ACK_NEXT_NEXT_0
-    lambda 17 In_LISTEN = Out_TIMEOUT
-    lambda 17 In_SYN_V_V_0 = Out_TIMEOUT
-    lambda 17 In_RCV = Out_TIMEOUT
-    lambda 17 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 17 In_CLOSE = Out_TIMEOUT
-    lambda 17 In_ACK_V_V_0 = Out_TIMEOUT
-    lambda 16 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 16 In_ACK_PSH_V_V_1 = Out_RST_ZERO_ZERO_0
-    lambda 16 In_SYN_ACK_V_V_0 = Out_RST_ZERO_ZERO_0
-    lambda 16 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 16 In_ACCEPT = Out_TIMEOUT
-    lambda 16 In_FIN_ACK_V_V_0 = Out_RST_ZERO_ZERO_0
-    lambda 16 In_LISTEN = Out_TIMEOUT
-    lambda 16 In_SYN_V_V_0 = Out_ACK_SYN_FRESH_NEXT_0
-    lambda 16 In_RCV = Out_TIMEOUT
-    lambda 16 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 16 In_CLOSE = Out_TIMEOUT
-    lambda 16 In_ACK_V_V_0 = Out_RST_ZERO_ZERO_0
-    lambda 18 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 18 In_ACK_PSH_V_V_1 = Out_ACK_NEXT_NEXT_0
-    lambda 18 In_SYN_ACK_V_V_0 = Out_RST_NEXT_ZERO_0
-    lambda 18 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 18 In_ACCEPT = Out_TIMEOUT
-    lambda 18 In_FIN_ACK_V_V_0 = Out_ACK_NEXT_NEXT_0
-    lambda 18 In_LISTEN = Out_TIMEOUT
-    lambda 18 In_SYN_V_V_0 = Out_ACK_RST_ZERO_NEXT_0
-    lambda 18 In_RCV = Out_TIMEOUT
-    lambda 18 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 18 In_CLOSE = Out_TIMEOUT
-    lambda 18 In_ACK_V_V_0 = Out_TIMEOUT
-    lambda 19 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 19 In_ACK_PSH_V_V_1 = Out_RST_NEXT_ZERO_0
-    lambda 19 In_SYN_ACK_V_V_0 = Out_ACK_NEXT_CURRENT_0
-    lambda 19 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 19 In_ACCEPT = Out_TIMEOUT
-    lambda 19 In_FIN_ACK_V_V_0 = Out_ACK_NEXT_NEXT_0
-    lambda 19 In_LISTEN = Out_TIMEOUT
-    lambda 19 In_SYN_V_V_0 = Out_TIMEOUT
-    lambda 19 In_RCV = Out_TIMEOUT
-    lambda 19 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 19 In_CLOSE = Out_TIMEOUT
-    lambda 19 In_ACK_V_V_0 = Out_TIMEOUT
-    lambda 20 In_CLOSECONNECTION = Out_ACK_FIN_NEXT_CURRENT_0
-    lambda 20 In_ACK_PSH_V_V_1 = Out_ACK_NEXT_NEXT_0
-    lambda 20 In_SYN_ACK_V_V_0 = Out_ACK_NEXT_CURRENT_0
-    lambda 20 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 20 In_ACCEPT = Out_TIMEOUT
-    lambda 20 In_FIN_ACK_V_V_0 = Out_ACK_NEXT_NEXT_0
-    lambda 20 In_LISTEN = Out_TIMEOUT
-    lambda 20 In_SYN_V_V_0 = Out_TIMEOUT
-    lambda 20 In_RCV = Out_TIMEOUT
-    lambda 20 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 20 In_CLOSE = Out_TIMEOUT
-    lambda 20 In_ACK_V_V_0 = Out_TIMEOUT
-    lambda 21 In_CLOSECONNECTION = Out_ACK_FIN_NEXT_CURRENT_0
-    lambda 21 In_ACK_PSH_V_V_1 = Out_ACK_NEXT_NEXT_0
-    lambda 21 In_SYN_ACK_V_V_0 = Out_ACK_NEXT_CURRENT_0
-    lambda 21 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 21 In_ACCEPT = Out_TIMEOUT
-    lambda 21 In_FIN_ACK_V_V_0 = Out_ACK_NEXT_NEXT_0
-    lambda 21 In_LISTEN = Out_TIMEOUT
-    lambda 21 In_SYN_V_V_0 = Out_TIMEOUT
-    lambda 21 In_RCV = Out_TIMEOUT
-    lambda 21 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 21 In_CLOSE = Out_TIMEOUT
-    lambda 21 In_ACK_V_V_0 = Out_TIMEOUT
-    lambda 23 In_CLOSECONNECTION = Out_ACK_FIN_NEXT_CURRENT_0
-    lambda 23 In_ACK_PSH_V_V_1 = Out_TIMEOUT
-    lambda 23 In_SYN_ACK_V_V_0 = Out_ACK_NEXT_CURRENT_0
-    lambda 23 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 23 In_ACCEPT = Out_TIMEOUT
-    lambda 23 In_FIN_ACK_V_V_0 = Out_TIMEOUT
-    lambda 23 In_LISTEN = Out_TIMEOUT
-    lambda 23 In_SYN_V_V_0 = Out_TIMEOUT
-    lambda 23 In_RCV = Out_TIMEOUT
-    lambda 23 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 23 In_CLOSE = Out_TIMEOUT
-    lambda 23 In_ACK_V_V_0 = Out_TIMEOUT
-    lambda 22 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 22 In_ACK_PSH_V_V_1 = Out_TIMEOUT
-    lambda 22 In_SYN_ACK_V_V_0 = Out_ACK_NEXT_CURRENT_0
-    lambda 22 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 22 In_ACCEPT = Out_TIMEOUT
-    lambda 22 In_FIN_ACK_V_V_0 = Out_TIMEOUT
-    lambda 22 In_LISTEN = Out_TIMEOUT
-    lambda 22 In_SYN_V_V_0 = Out_TIMEOUT
-    lambda 22 In_RCV = Out_TIMEOUT
-    lambda 22 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 22 In_CLOSE = Out_TIMEOUT
-    lambda 22 In_ACK_V_V_0 = Out_TIMEOUT
-    lambda 24 In_CLOSECONNECTION = Out_ACK_RST_NEXT_CURRENT_0
-    lambda 24 In_ACK_PSH_V_V_1 = Out_TIMEOUT
-    lambda 24 In_SYN_ACK_V_V_0 = Out_ACK_NEXT_CURRENT_0
-    lambda 24 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 24 In_ACCEPT = Out_TIMEOUT
-    lambda 24 In_FIN_ACK_V_V_0 = Out_TIMEOUT
-    lambda 24 In_LISTEN = Out_TIMEOUT
-    lambda 24 In_SYN_V_V_0 = Out_TIMEOUT
-    lambda 24 In_RCV = Out_TIMEOUT
-    lambda 24 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 24 In_CLOSE = Out_TIMEOUT
-    lambda 24 In_ACK_V_V_0 = Out_TIMEOUT
-    lambda 25 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 25 In_ACK_PSH_V_V_1 = Out_ACK_NEXT_NEXT_0
-    lambda 25 In_SYN_ACK_V_V_0 = Out_RST_NEXT_ZERO_0
-    lambda 25 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 25 In_ACCEPT = Out_TIMEOUT
-    lambda 25 In_FIN_ACK_V_V_0 = Out_ACK_NEXT_NEXT_0
-    lambda 25 In_LISTEN = Out_TIMEOUT
-    lambda 25 In_SYN_V_V_0 = Out_ACK_RST_ZERO_NEXT_0
-    lambda 25 In_RCV = Out_TIMEOUT
-    lambda 25 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 25 In_CLOSE = Out_TIMEOUT
-    lambda 25 In_ACK_V_V_0 = Out_TIMEOUT
-    lambda 27 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 27 In_ACK_PSH_V_V_1 = Out_TIMEOUT
-    lambda 27 In_SYN_ACK_V_V_0 = Out_ACK_NEXT_CURRENT_0
-    lambda 27 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 27 In_ACCEPT = Out_TIMEOUT
-    lambda 27 In_FIN_ACK_V_V_0 = Out_TIMEOUT
-    lambda 27 In_LISTEN = Out_TIMEOUT
-    lambda 27 In_SYN_V_V_0 = Out_TIMEOUT
-    lambda 27 In_RCV = Out_TIMEOUT
-    lambda 27 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 27 In_CLOSE = Out_ACK_RST_NEXT_CURRENT_0
-    lambda 27 In_ACK_V_V_0 = Out_TIMEOUT
-    lambda 28 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 28 In_ACK_PSH_V_V_1 = Out_ACK_NEXT_NEXT_0
-    lambda 28 In_SYN_ACK_V_V_0 = Out_ACK_NEXT_CURRENT_0
-    lambda 28 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 28 In_ACCEPT = Out_TIMEOUT
-    lambda 28 In_FIN_ACK_V_V_0 = Out_ACK_NEXT_NEXT_0
-    lambda 28 In_LISTEN = Out_TIMEOUT
-    lambda 28 In_SYN_V_V_0 = Out_TIMEOUT
-    lambda 28 In_RCV = Out_TIMEOUT
-    lambda 28 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 28 In_CLOSE = Out_ACK_RST_NEXT_CURRENT_0
-    lambda 28 In_ACK_V_V_0 = Out_TIMEOUT
-    lambda 26 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 26 In_ACK_PSH_V_V_1 = Out_ACK_NEXT_NEXT_0
-    lambda 26 In_SYN_ACK_V_V_0 = Out_ACK_NEXT_CURRENT_0
-    lambda 26 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 26 In_ACCEPT = Out_TIMEOUT
-    lambda 26 In_FIN_ACK_V_V_0 = Out_ACK_NEXT_NEXT_0
-    lambda 26 In_LISTEN = Out_TIMEOUT
-    lambda 26 In_SYN_V_V_0 = Out_TIMEOUT
-    lambda 26 In_RCV = Out_TIMEOUT
-    lambda 26 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 26 In_CLOSE = Out_ACK_RST_NEXT_CURRENT_0
-    lambda 26 In_ACK_V_V_0 = Out_TIMEOUT
-    lambda 31 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 31 In_ACK_PSH_V_V_1 = Out_RST_NEXT_ZERO_0
-    lambda 31 In_SYN_ACK_V_V_0 = Out_ACK_NEXT_CURRENT_0
-    lambda 31 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 31 In_ACCEPT = Out_TIMEOUT
-    lambda 31 In_FIN_ACK_V_V_0 = Out_ACK_NEXT_NEXT_0
-    lambda 31 In_LISTEN = Out_TIMEOUT
-    lambda 31 In_SYN_V_V_0 = Out_TIMEOUT
-    lambda 31 In_RCV = Out_TIMEOUT
-    lambda 31 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 31 In_CLOSE = Out_TIMEOUT
-    lambda 31 In_ACK_V_V_0 = Out_TIMEOUT
-    lambda 32 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 32 In_ACK_PSH_V_V_1 = Out_RST_NEXT_ZERO_0
-    lambda 32 In_SYN_ACK_V_V_0 = Out_RST_NEXT_ZERO_0
-    lambda 32 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 32 In_ACCEPT = Out_TIMEOUT
-    lambda 32 In_FIN_ACK_V_V_0 = Out_ACK_NEXT_NEXT_0
-    lambda 32 In_LISTEN = Out_TIMEOUT
-    lambda 32 In_SYN_V_V_0 = Out_ACK_RST_ZERO_NEXT_0
-    lambda 32 In_RCV = Out_TIMEOUT
-    lambda 32 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 32 In_CLOSE = Out_TIMEOUT
-    lambda 32 In_ACK_V_V_0 = Out_TIMEOUT
-    lambda 29 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 29 In_ACK_PSH_V_V_1 = Out_RST_NEXT_ZERO_0
-    lambda 29 In_SYN_ACK_V_V_0 = Out_ACK_NEXT_CURRENT_0
-    lambda 29 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 29 In_ACCEPT = Out_TIMEOUT
-    lambda 29 In_FIN_ACK_V_V_0 = Out_ACK_NEXT_NEXT_0
-    lambda 29 In_LISTEN = Out_TIMEOUT
-    lambda 29 In_SYN_V_V_0 = Out_TIMEOUT
-    lambda 29 In_RCV = Out_TIMEOUT
-    lambda 29 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 29 In_CLOSE = Out_TIMEOUT
-    lambda 29 In_ACK_V_V_0 = Out_TIMEOUT
-    lambda 30 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 30 In_ACK_PSH_V_V_1 = Out_ACK_NEXT_CURRENT_0
-    lambda 30 In_SYN_ACK_V_V_0 = Out_ACK_NEXT_CURRENT_0
-    lambda 30 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 30 In_ACCEPT = Out_TIMEOUT
-    lambda 30 In_FIN_ACK_V_V_0 = Out_ACK_NEXT_CURRENT_0
-    lambda 30 In_LISTEN = Out_TIMEOUT
-    lambda 30 In_SYN_V_V_0 = Out_ACK_NEXT_CURRENT_0
-    lambda 30 In_RCV = Out_TIMEOUT
-    lambda 30 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 30 In_CLOSE = Out_TIMEOUT
-    lambda 30 In_ACK_V_V_0 = Out_TIMEOUT
-    lambda 33 In_CLOSECONNECTION = Out_ACK_FIN_NEXT_CURRENT_0
-    lambda 33 In_ACK_PSH_V_V_1 = Out_ACK_NEXT_NEXT_0
-    lambda 33 In_SYN_ACK_V_V_0 = Out_ACK_NEXT_CURRENT_0
-    lambda 33 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 33 In_ACCEPT = Out_TIMEOUT
-    lambda 33 In_FIN_ACK_V_V_0 = Out_ACK_NEXT_NEXT_0
-    lambda 33 In_LISTEN = Out_TIMEOUT
-    lambda 33 In_SYN_V_V_0 = Out_TIMEOUT
-    lambda 33 In_RCV = Out_TIMEOUT
-    lambda 33 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 33 In_CLOSE = Out_TIMEOUT
-    lambda 33 In_ACK_V_V_0 = Out_TIMEOUT
-    lambda 34 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 34 In_ACK_PSH_V_V_1 = Out_TIMEOUT
-    lambda 34 In_SYN_ACK_V_V_0 = Out_ACK_NEXT_CURRENT_0
-    lambda 34 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 34 In_ACCEPT = Out_TIMEOUT
-    lambda 34 In_FIN_ACK_V_V_0 = Out_TIMEOUT
-    lambda 34 In_LISTEN = Out_TIMEOUT
-    lambda 34 In_SYN_V_V_0 = Out_TIMEOUT
-    lambda 34 In_RCV = Out_TIMEOUT
-    lambda 34 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 34 In_CLOSE = Out_TIMEOUT
-    lambda 34 In_ACK_V_V_0 = Out_TIMEOUT
-    lambda 35 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 35 In_ACK_PSH_V_V_1 = Out_RST_NEXT_ZERO_0
-    lambda 35 In_SYN_ACK_V_V_0 = Out_RST_NEXT_ZERO_0
-    lambda 35 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 35 In_ACCEPT = Out_TIMEOUT
-    lambda 35 In_FIN_ACK_V_V_0 = Out_RST_NEXT_ZERO_0
-    lambda 35 In_LISTEN = Out_TIMEOUT
-    lambda 35 In_SYN_V_V_0 = Out_ACK_SYN_FRESH_NEXT_0
-    lambda 35 In_RCV = Out_TIMEOUT
-    lambda 35 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 35 In_CLOSE = Out_TIMEOUT
-    lambda 35 In_ACK_V_V_0 = Out_RST_NEXT_ZERO_0
-    lambda 36 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 36 In_ACK_PSH_V_V_1 = Out_TIMEOUT
-    lambda 36 In_SYN_ACK_V_V_0 = Out_ACK_NEXT_CURRENT_0
-    lambda 36 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 36 In_ACCEPT = Out_TIMEOUT
-    lambda 36 In_FIN_ACK_V_V_0 = Out_TIMEOUT
-    lambda 36 In_LISTEN = Out_TIMEOUT
-    lambda 36 In_SYN_V_V_0 = Out_TIMEOUT
-    lambda 36 In_RCV = Out_TIMEOUT
-    lambda 36 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 36 In_CLOSE = Out_TIMEOUT
-    lambda 36 In_ACK_V_V_0 = Out_TIMEOUT
-    lambda 37 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 37 In_ACK_PSH_V_V_1 = Out_ACK_NEXT_NEXT_0
-    lambda 37 In_SYN_ACK_V_V_0 = Out_ACK_NEXT_CURRENT_0
-    lambda 37 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 37 In_ACCEPT = Out_TIMEOUT
-    lambda 37 In_FIN_ACK_V_V_0 = Out_ACK_NEXT_NEXT_0
-    lambda 37 In_LISTEN = Out_TIMEOUT
-    lambda 37 In_SYN_V_V_0 = Out_TIMEOUT
-    lambda 37 In_RCV = Out_TIMEOUT
-    lambda 37 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 37 In_CLOSE = Out_ACK_RST_NEXT_CURRENT_0
-    lambda 37 In_ACK_V_V_0 = Out_TIMEOUT
-    lambda 38 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 38 In_ACK_PSH_V_V_1 = Out_TIMEOUT
-    lambda 38 In_SYN_ACK_V_V_0 = Out_ACK_NEXT_CURRENT_0
-    lambda 38 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 38 In_ACCEPT = Out_TIMEOUT
-    lambda 38 In_FIN_ACK_V_V_0 = Out_TIMEOUT
-    lambda 38 In_LISTEN = Out_TIMEOUT
-    lambda 38 In_SYN_V_V_0 = Out_TIMEOUT
-    lambda 38 In_RCV = Out_TIMEOUT
-    lambda 38 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 38 In_CLOSE = Out_ACK_RST_NEXT_CURRENT_0
-    lambda 38 In_ACK_V_V_0 = Out_TIMEOUT
-    lambda 39 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 39 In_ACK_PSH_V_V_1 = Out_ACK_NEXT_NEXT_0
-    lambda 39 In_SYN_ACK_V_V_0 = Out_ACK_NEXT_CURRENT_0
-    lambda 39 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 39 In_ACCEPT = Out_TIMEOUT
-    lambda 39 In_FIN_ACK_V_V_0 = Out_ACK_NEXT_NEXT_0
-    lambda 39 In_LISTEN = Out_TIMEOUT
-    lambda 39 In_SYN_V_V_0 = Out_TIMEOUT
-    lambda 39 In_RCV = Out_TIMEOUT
-    lambda 39 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 39 In_CLOSE = Out_ACK_RST_NEXT_CURRENT_0
-    lambda 39 In_ACK_V_V_0 = Out_TIMEOUT
-    lambda 40 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 40 In_ACK_PSH_V_V_1 = Out_RST_ZERO_ZERO_0
-    lambda 40 In_SYN_ACK_V_V_0 = Out_RST_ZERO_ZERO_0
-    lambda 40 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 40 In_ACCEPT = Out_TIMEOUT
-    lambda 40 In_FIN_ACK_V_V_0 = Out_RST_ZERO_ZERO_0
-    lambda 40 In_LISTEN = Out_TIMEOUT
-    lambda 40 In_SYN_V_V_0 = Out_ACK_SYN_FRESH_NEXT_0
-    lambda 40 In_RCV = Out_TIMEOUT
-    lambda 40 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 40 In_CLOSE = Out_TIMEOUT
-    lambda 40 In_ACK_V_V_0 = Out_RST_ZERO_ZERO_0
-    lambda 41 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 41 In_ACK_PSH_V_V_1 = Out_TIMEOUT
-    lambda 41 In_SYN_ACK_V_V_0 = Out_ACK_NEXT_CURRENT_0
-    lambda 41 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 41 In_ACCEPT = Out_TIMEOUT
-    lambda 41 In_FIN_ACK_V_V_0 = Out_TIMEOUT
-    lambda 41 In_LISTEN = Out_TIMEOUT
-    lambda 41 In_SYN_V_V_0 = Out_TIMEOUT
-    lambda 41 In_RCV = Out_TIMEOUT
-    lambda 41 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 41 In_CLOSE = Out_ACK_RST_NEXT_CURRENT_0
-    lambda 41 In_ACK_V_V_0 = Out_TIMEOUT
-    lambda 43 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 43 In_ACK_PSH_V_V_1 = Out_RST_NEXT_ZERO_0
-    lambda 43 In_SYN_ACK_V_V_0 = Out_RST_NEXT_ZERO_0
-    lambda 43 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 43 In_ACCEPT = Out_TIMEOUT
-    lambda 43 In_FIN_ACK_V_V_0 = Out_ACK_NEXT_NEXT_0
-    lambda 43 In_LISTEN = Out_TIMEOUT
-    lambda 43 In_SYN_V_V_0 = Out_ACK_RST_ZERO_NEXT_0
-    lambda 43 In_RCV = Out_TIMEOUT
-    lambda 43 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 43 In_CLOSE = Out_TIMEOUT
-    lambda 43 In_ACK_V_V_0 = Out_TIMEOUT
-    lambda 42 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 42 In_ACK_PSH_V_V_1 = Out_ACK_NEXT_CURRENT_0
-    lambda 42 In_SYN_ACK_V_V_0 = Out_ACK_NEXT_CURRENT_0
-    lambda 42 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 42 In_ACCEPT = Out_TIMEOUT
-    lambda 42 In_FIN_ACK_V_V_0 = Out_ACK_NEXT_CURRENT_0
-    lambda 42 In_LISTEN = Out_TIMEOUT
-    lambda 42 In_SYN_V_V_0 = Out_ACK_NEXT_CURRENT_0
-    lambda 42 In_RCV = Out_TIMEOUT
-    lambda 42 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 42 In_CLOSE = Out_TIMEOUT
-    lambda 42 In_ACK_V_V_0 = Out_TIMEOUT
-    lambda 44 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 44 In_ACK_PSH_V_V_1 = Out_RST_NEXT_ZERO_0
-    lambda 44 In_SYN_ACK_V_V_0 = Out_RST_NEXT_ZERO_0
-    lambda 44 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 44 In_ACCEPT = Out_TIMEOUT
-    lambda 44 In_FIN_ACK_V_V_0 = Out_ACK_NEXT_NEXT_0
-    lambda 44 In_LISTEN = Out_TIMEOUT
-    lambda 44 In_SYN_V_V_0 = Out_ACK_RST_ZERO_NEXT_0
-    lambda 44 In_RCV = Out_TIMEOUT
-    lambda 44 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 44 In_CLOSE = Out_TIMEOUT
-    lambda 44 In_ACK_V_V_0 = Out_TIMEOUT
-    lambda 45 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 45 In_ACK_PSH_V_V_1 = Out_ACK_NEXT_CURRENT_0
-    lambda 45 In_SYN_ACK_V_V_0 = Out_ACK_NEXT_CURRENT_0
-    lambda 45 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 45 In_ACCEPT = Out_TIMEOUT
-    lambda 45 In_FIN_ACK_V_V_0 = Out_ACK_NEXT_CURRENT_0
-    lambda 45 In_LISTEN = Out_TIMEOUT
-    lambda 45 In_SYN_V_V_0 = Out_ACK_NEXT_CURRENT_0
-    lambda 45 In_RCV = Out_TIMEOUT
-    lambda 45 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 45 In_CLOSE = Out_TIMEOUT
-    lambda 45 In_ACK_V_V_0 = Out_TIMEOUT
-    lambda 46 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 46 In_ACK_PSH_V_V_1 = Out_RST_NEXT_ZERO_0
-    lambda 46 In_SYN_ACK_V_V_0 = Out_RST_NEXT_ZERO_0
-    lambda 46 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 46 In_ACCEPT = Out_TIMEOUT
-    lambda 46 In_FIN_ACK_V_V_0 = Out_RST_NEXT_ZERO_0
-    lambda 46 In_LISTEN = Out_TIMEOUT
-    lambda 46 In_SYN_V_V_0 = Out_ACK_SYN_FRESH_NEXT_0
-    lambda 46 In_RCV = Out_TIMEOUT
-    lambda 46 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 46 In_CLOSE = Out_TIMEOUT
-    lambda 46 In_ACK_V_V_0 = Out_RST_NEXT_ZERO_0
-    lambda 48 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 48 In_ACK_PSH_V_V_1 = Out_TIMEOUT
-    lambda 48 In_SYN_ACK_V_V_0 = Out_ACK_NEXT_CURRENT_0
-    lambda 48 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 48 In_ACCEPT = Out_TIMEOUT
-    lambda 48 In_FIN_ACK_V_V_0 = Out_TIMEOUT
-    lambda 48 In_LISTEN = Out_TIMEOUT
-    lambda 48 In_SYN_V_V_0 = Out_TIMEOUT
-    lambda 48 In_RCV = Out_TIMEOUT
-    lambda 48 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 48 In_CLOSE = Out_ACK_RST_NEXT_CURRENT_0
-    lambda 48 In_ACK_V_V_0 = Out_TIMEOUT
-    lambda 47 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 47 In_ACK_PSH_V_V_1 = Out_RST_ZERO_ZERO_0
-    lambda 47 In_SYN_ACK_V_V_0 = Out_RST_ZERO_ZERO_0
-    lambda 47 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 47 In_ACCEPT = Out_TIMEOUT
-    lambda 47 In_FIN_ACK_V_V_0 = Out_RST_ZERO_ZERO_0
-    lambda 47 In_LISTEN = Out_TIMEOUT
-    lambda 47 In_SYN_V_V_0 = Out_ACK_SYN_FRESH_NEXT_0
-    lambda 47 In_RCV = Out_TIMEOUT
-    lambda 47 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 47 In_CLOSE = Out_TIMEOUT
-    lambda 47 In_ACK_V_V_0 = Out_RST_ZERO_ZERO_0
-    lambda 49 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 49 In_ACK_PSH_V_V_1 = Out_TIMEOUT
-    lambda 49 In_SYN_ACK_V_V_0 = Out_RST_NEXT_ZERO_0
-    lambda 49 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 49 In_ACCEPT = Out_TIMEOUT
-    lambda 49 In_FIN_ACK_V_V_0 = Out_TIMEOUT
-    lambda 49 In_LISTEN = Out_TIMEOUT
-    lambda 49 In_SYN_V_V_0 = Out_ACK_RST_ZERO_NEXT_0
-    lambda 49 In_RCV = Out_TIMEOUT
-    lambda 49 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 49 In_CLOSE = Out_TIMEOUT
-    lambda 49 In_ACK_V_V_0 = Out_TIMEOUT
-    lambda 50 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 50 In_ACK_PSH_V_V_1 = Out_ACK_NEXT_NEXT_0
-    lambda 50 In_SYN_ACK_V_V_0 = Out_RST_NEXT_ZERO_0
-    lambda 50 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 50 In_ACCEPT = Out_TIMEOUT
-    lambda 50 In_FIN_ACK_V_V_0 = Out_ACK_NEXT_NEXT_0
-    lambda 50 In_LISTEN = Out_TIMEOUT
-    lambda 50 In_SYN_V_V_0 = Out_ACK_RST_ZERO_NEXT_0
-    lambda 50 In_RCV = Out_TIMEOUT
-    lambda 50 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 50 In_CLOSE = Out_TIMEOUT
-    lambda 50 In_ACK_V_V_0 = Out_TIMEOUT
-    lambda 53 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 53 In_ACK_PSH_V_V_1 = Out_ACK_NEXT_NEXT_0
-    lambda 53 In_SYN_ACK_V_V_0 = Out_ACK_NEXT_CURRENT_0
-    lambda 53 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 53 In_ACCEPT = Out_TIMEOUT
-    lambda 53 In_FIN_ACK_V_V_0 = Out_ACK_NEXT_NEXT_0
-    lambda 53 In_LISTEN = Out_TIMEOUT
-    lambda 53 In_SYN_V_V_0 = Out_TIMEOUT
-    lambda 53 In_RCV = Out_TIMEOUT
-    lambda 53 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 53 In_CLOSE = Out_ACK_RST_NEXT_CURRENT_0
-    lambda 53 In_ACK_V_V_0 = Out_TIMEOUT
-    lambda 51 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 51 In_ACK_PSH_V_V_1 = Out_ACK_NEXT_NEXT_0
-    lambda 51 In_SYN_ACK_V_V_0 = Out_ACK_NEXT_CURRENT_0
-    lambda 51 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 51 In_ACCEPT = Out_TIMEOUT
-    lambda 51 In_FIN_ACK_V_V_0 = Out_ACK_NEXT_NEXT_0
-    lambda 51 In_LISTEN = Out_TIMEOUT
-    lambda 51 In_SYN_V_V_0 = Out_TIMEOUT
-    lambda 51 In_RCV = Out_TIMEOUT
-    lambda 51 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 51 In_CLOSE = Out_ACK_RST_NEXT_CURRENT_0
-    lambda 51 In_ACK_V_V_0 = Out_TIMEOUT
-    lambda 52 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 52 In_ACK_PSH_V_V_1 = Out_TIMEOUT
-    lambda 52 In_SYN_ACK_V_V_0 = Out_ACK_NEXT_CURRENT_0
-    lambda 52 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 52 In_ACCEPT = Out_TIMEOUT
-    lambda 52 In_FIN_ACK_V_V_0 = Out_TIMEOUT
-    lambda 52 In_LISTEN = Out_TIMEOUT
-    lambda 52 In_SYN_V_V_0 = Out_TIMEOUT
-    lambda 52 In_RCV = Out_TIMEOUT
-    lambda 52 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 52 In_CLOSE = Out_ACK_RST_NEXT_CURRENT_0
-    lambda 52 In_ACK_V_V_0 = Out_TIMEOUT
-    lambda 54 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 54 In_ACK_PSH_V_V_1 = Out_RST_ZERO_ZERO_0
-    lambda 54 In_SYN_ACK_V_V_0 = Out_RST_ZERO_ZERO_0
-    lambda 54 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 54 In_ACCEPT = Out_TIMEOUT
-    lambda 54 In_FIN_ACK_V_V_0 = Out_RST_ZERO_ZERO_0
-    lambda 54 In_LISTEN = Out_TIMEOUT
-    lambda 54 In_SYN_V_V_0 = Out_ACK_SYN_FRESH_NEXT_0
-    lambda 54 In_RCV = Out_TIMEOUT
-    lambda 54 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 54 In_CLOSE = Out_TIMEOUT
-    lambda 54 In_ACK_V_V_0 = Out_RST_ZERO_ZERO_0
-    lambda 55 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 55 In_ACK_PSH_V_V_1 = Out_TIMEOUT
-    lambda 55 In_SYN_ACK_V_V_0 = Out_ACK_NEXT_CURRENT_0
-    lambda 55 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 55 In_ACCEPT = Out_TIMEOUT
-    lambda 55 In_FIN_ACK_V_V_0 = Out_TIMEOUT
-    lambda 55 In_LISTEN = Out_TIMEOUT
-    lambda 55 In_SYN_V_V_0 = Out_TIMEOUT
-    lambda 55 In_RCV = Out_TIMEOUT
-    lambda 55 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 55 In_CLOSE = Out_ACK_RST_NEXT_CURRENT_0
-    lambda 55 In_ACK_V_V_0 = Out_TIMEOUT
-    lambda 56 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 56 In_ACK_PSH_V_V_1 = Out_TIMEOUT
-    lambda 56 In_SYN_ACK_V_V_0 = Out_RST_NEXT_ZERO_0
-    lambda 56 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 56 In_ACCEPT = Out_TIMEOUT
-    lambda 56 In_FIN_ACK_V_V_0 = Out_TIMEOUT
-    lambda 56 In_LISTEN = Out_TIMEOUT
-    lambda 56 In_SYN_V_V_0 = Out_ACK_RST_ZERO_NEXT_0
-    lambda 56 In_RCV = Out_TIMEOUT
-    lambda 56 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 56 In_CLOSE = Out_TIMEOUT
-    lambda 56 In_ACK_V_V_0 = Out_TIMEOUT
-    lambda _ _ = error "haal-gen: undefined transition"
+import Haal.Automaton.MealyAutomaton (MealyAutomaton, mkMealyAutomatonTable)
+
+data TcpServerUbuntuTransInput
+    = In_CLOSECONNECTION
+    | In_ACK_PSH_V_V_1
+    | In_SYN_ACK_V_V_0
+    | In_RST_V_V_0
+    | In_ACCEPT
+    | In_FIN_ACK_V_V_0
+    | In_LISTEN
+    | In_SYN_V_V_0
+    | In_RCV
+    | In_ACK_RST_V_V_0
+    | In_CLOSE
+    | In_ACK_V_V_0
+    deriving (Show, Eq, Ord, Enum, Bounded)
+
+data TcpServerUbuntuTransOutput
+    = Out_TIMEOUT
+    | Out_RST_ZERO_ZERO_0
+    | Out_ACK_RST_ZERO_NEXT_0
+    | Out_ACK_SYN_FRESH_NEXT_0
+    | Out_ACK_NEXT_NEXT_0
+    | Out_RST_NEXT_ZERO_0
+    | Out_ACK_NEXT_CURRENT_0
+    | Out_ACK_RST_NEXT_CURRENT_0
+    | Out_ACK_FIN_NEXT_CURRENT_0
+    deriving (Show, Eq, Ord, Enum, Bounded)
+
+{- Transitions (state  input -> next state / output):
+    0     In_CLOSECONNECTION  -> 0 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 0 / Out_RST_ZERO_ZERO_0
+          In_SYN_ACK_V_V_0    -> 0 / Out_RST_ZERO_ZERO_0
+          In_RST_V_V_0        -> 0 / Out_TIMEOUT
+          In_ACCEPT           -> 0 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 0 / Out_RST_ZERO_ZERO_0
+          In_LISTEN           -> 1 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 0 / Out_ACK_RST_ZERO_NEXT_0
+          In_RCV              -> 0 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 0 / Out_TIMEOUT
+          In_CLOSE            -> 2 / Out_TIMEOUT
+          In_ACK_V_V_0        -> 0 / Out_RST_ZERO_ZERO_0
+    1     In_CLOSECONNECTION  -> 1 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 1 / Out_RST_ZERO_ZERO_0
+          In_SYN_ACK_V_V_0    -> 1 / Out_RST_ZERO_ZERO_0
+          In_RST_V_V_0        -> 1 / Out_TIMEOUT
+          In_ACCEPT           -> 3 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 1 / Out_RST_ZERO_ZERO_0
+          In_LISTEN           -> 1 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 4 / Out_ACK_SYN_FRESH_NEXT_0
+          In_RCV              -> 1 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 1 / Out_TIMEOUT
+          In_CLOSE            -> 2 / Out_TIMEOUT
+          In_ACK_V_V_0        -> 1 / Out_RST_ZERO_ZERO_0
+    2     In_CLOSECONNECTION  -> 2 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 2 / Out_RST_ZERO_ZERO_0
+          In_SYN_ACK_V_V_0    -> 2 / Out_RST_ZERO_ZERO_0
+          In_RST_V_V_0        -> 2 / Out_TIMEOUT
+          In_ACCEPT           -> 2 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 2 / Out_RST_ZERO_ZERO_0
+          In_LISTEN           -> 2 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 2 / Out_ACK_RST_ZERO_NEXT_0
+          In_RCV              -> 2 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 2 / Out_TIMEOUT
+          In_CLOSE            -> 2 / Out_TIMEOUT
+          In_ACK_V_V_0        -> 2 / Out_RST_ZERO_ZERO_0
+    3     In_CLOSECONNECTION  -> 1 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 3 / Out_RST_ZERO_ZERO_0
+          In_SYN_ACK_V_V_0    -> 3 / Out_RST_ZERO_ZERO_0
+          In_RST_V_V_0        -> 3 / Out_TIMEOUT
+          In_ACCEPT           -> 3 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 3 / Out_RST_ZERO_ZERO_0
+          In_LISTEN           -> 3 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 6 / Out_ACK_SYN_FRESH_NEXT_0
+          In_RCV              -> 3 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 3 / Out_TIMEOUT
+          In_CLOSE            -> 2 / Out_TIMEOUT
+          In_ACK_V_V_0        -> 3 / Out_RST_ZERO_ZERO_0
+    4     In_CLOSECONNECTION  -> 4 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 5 / Out_ACK_NEXT_NEXT_0
+          In_SYN_ACK_V_V_0    -> 1 / Out_RST_NEXT_ZERO_0
+          In_RST_V_V_0        -> 1 / Out_TIMEOUT
+          In_ACCEPT           -> 6 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 7 / Out_ACK_NEXT_NEXT_0
+          In_LISTEN           -> 4 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 1 / Out_ACK_RST_ZERO_NEXT_0
+          In_RCV              -> 4 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 1 / Out_TIMEOUT
+          In_CLOSE            -> 8 / Out_TIMEOUT
+          In_ACK_V_V_0        -> 9 / Out_TIMEOUT
+    5     In_CLOSECONNECTION  -> 5 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 5 / Out_ACK_NEXT_NEXT_0
+          In_SYN_ACK_V_V_0    -> 5 / Out_ACK_NEXT_CURRENT_0
+          In_RST_V_V_0        -> 10 / Out_TIMEOUT
+          In_ACCEPT           -> 11 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 12 / Out_ACK_NEXT_NEXT_0
+          In_LISTEN           -> 5 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 5 / Out_TIMEOUT
+          In_RCV              -> 5 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 10 / Out_TIMEOUT
+          In_CLOSE            -> 2 / Out_ACK_RST_NEXT_CURRENT_0
+          In_ACK_V_V_0        -> 5 / Out_TIMEOUT
+    6     In_CLOSECONNECTION  -> 4 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 11 / Out_ACK_NEXT_NEXT_0
+          In_SYN_ACK_V_V_0    -> 3 / Out_RST_NEXT_ZERO_0
+          In_RST_V_V_0        -> 3 / Out_TIMEOUT
+          In_ACCEPT           -> 6 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 14 / Out_ACK_NEXT_NEXT_0
+          In_LISTEN           -> 6 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 3 / Out_ACK_RST_ZERO_NEXT_0
+          In_RCV              -> 6 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 3 / Out_TIMEOUT
+          In_CLOSE            -> 8 / Out_TIMEOUT
+          In_ACK_V_V_0        -> 13 / Out_TIMEOUT
+    7     In_CLOSECONNECTION  -> 7 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 7 / Out_TIMEOUT
+          In_SYN_ACK_V_V_0    -> 7 / Out_ACK_NEXT_CURRENT_0
+          In_RST_V_V_0        -> 10 / Out_TIMEOUT
+          In_ACCEPT           -> 14 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 7 / Out_TIMEOUT
+          In_LISTEN           -> 7 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 7 / Out_TIMEOUT
+          In_RCV              -> 7 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 10 / Out_TIMEOUT
+          In_CLOSE            -> 2 / Out_ACK_RST_NEXT_CURRENT_0
+          In_ACK_V_V_0        -> 7 / Out_TIMEOUT
+    8     In_CLOSECONNECTION  -> 8 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 2 / Out_RST_NEXT_ZERO_0
+          In_SYN_ACK_V_V_0    -> 2 / Out_RST_NEXT_ZERO_0
+          In_RST_V_V_0        -> 2 / Out_TIMEOUT
+          In_ACCEPT           -> 8 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 2 / Out_RST_NEXT_ZERO_0
+          In_LISTEN           -> 8 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 2 / Out_ACK_RST_ZERO_NEXT_0
+          In_RCV              -> 8 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 2 / Out_TIMEOUT
+          In_CLOSE            -> 8 / Out_TIMEOUT
+          In_ACK_V_V_0        -> 2 / Out_RST_NEXT_ZERO_0
+    9     In_CLOSECONNECTION  -> 9 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 5 / Out_ACK_NEXT_NEXT_0
+          In_SYN_ACK_V_V_0    -> 9 / Out_ACK_NEXT_CURRENT_0
+          In_RST_V_V_0        -> 10 / Out_TIMEOUT
+          In_ACCEPT           -> 13 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 7 / Out_ACK_NEXT_NEXT_0
+          In_LISTEN           -> 9 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 9 / Out_TIMEOUT
+          In_RCV              -> 9 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 10 / Out_TIMEOUT
+          In_CLOSE            -> 2 / Out_ACK_RST_NEXT_CURRENT_0
+          In_ACK_V_V_0        -> 9 / Out_TIMEOUT
+    10    In_CLOSECONNECTION  -> 10 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 10 / Out_RST_ZERO_ZERO_0
+          In_SYN_ACK_V_V_0    -> 10 / Out_RST_ZERO_ZERO_0
+          In_RST_V_V_0        -> 10 / Out_TIMEOUT
+          In_ACCEPT           -> 16 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 10 / Out_RST_ZERO_ZERO_0
+          In_LISTEN           -> 10 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 18 / Out_ACK_SYN_FRESH_NEXT_0
+          In_RCV              -> 10 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 10 / Out_TIMEOUT
+          In_CLOSE            -> 2 / Out_TIMEOUT
+          In_ACK_V_V_0        -> 10 / Out_RST_ZERO_ZERO_0
+    11    In_CLOSECONNECTION  -> 1 / Out_ACK_RST_NEXT_CURRENT_0
+          In_ACK_PSH_V_V_1    -> 11 / Out_ACK_NEXT_NEXT_0
+          In_SYN_ACK_V_V_0    -> 11 / Out_ACK_NEXT_CURRENT_0
+          In_RST_V_V_0        -> 16 / Out_TIMEOUT
+          In_ACCEPT           -> 11 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 15 / Out_ACK_NEXT_NEXT_0
+          In_LISTEN           -> 11 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 11 / Out_TIMEOUT
+          In_RCV              -> 13 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 16 / Out_TIMEOUT
+          In_CLOSE            -> 17 / Out_TIMEOUT
+          In_ACK_V_V_0        -> 11 / Out_TIMEOUT
+    12    In_CLOSECONNECTION  -> 12 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 12 / Out_TIMEOUT
+          In_SYN_ACK_V_V_0    -> 12 / Out_ACK_NEXT_CURRENT_0
+          In_RST_V_V_0        -> 10 / Out_TIMEOUT
+          In_ACCEPT           -> 15 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 12 / Out_TIMEOUT
+          In_LISTEN           -> 12 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 12 / Out_TIMEOUT
+          In_RCV              -> 12 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 10 / Out_TIMEOUT
+          In_CLOSE            -> 2 / Out_ACK_RST_NEXT_CURRENT_0
+          In_ACK_V_V_0        -> 12 / Out_TIMEOUT
+    13    In_CLOSECONNECTION  -> 19 / Out_ACK_FIN_NEXT_CURRENT_0
+          In_ACK_PSH_V_V_1    -> 11 / Out_ACK_NEXT_NEXT_0
+          In_SYN_ACK_V_V_0    -> 13 / Out_ACK_NEXT_CURRENT_0
+          In_RST_V_V_0        -> 16 / Out_TIMEOUT
+          In_ACCEPT           -> 13 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 14 / Out_ACK_NEXT_NEXT_0
+          In_LISTEN           -> 13 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 13 / Out_TIMEOUT
+          In_RCV              -> 20 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 16 / Out_TIMEOUT
+          In_CLOSE            -> 21 / Out_TIMEOUT
+          In_ACK_V_V_0        -> 13 / Out_TIMEOUT
+    14    In_CLOSECONNECTION  -> 22 / Out_ACK_FIN_NEXT_CURRENT_0
+          In_ACK_PSH_V_V_1    -> 14 / Out_TIMEOUT
+          In_SYN_ACK_V_V_0    -> 14 / Out_ACK_NEXT_CURRENT_0
+          In_RST_V_V_0        -> 16 / Out_TIMEOUT
+          In_ACCEPT           -> 14 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 14 / Out_TIMEOUT
+          In_LISTEN           -> 14 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 14 / Out_TIMEOUT
+          In_RCV              -> 14 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 16 / Out_TIMEOUT
+          In_CLOSE            -> 23 / Out_TIMEOUT
+          In_ACK_V_V_0        -> 14 / Out_TIMEOUT
+    15    In_CLOSECONNECTION  -> 1 / Out_ACK_RST_NEXT_CURRENT_0
+          In_ACK_PSH_V_V_1    -> 15 / Out_TIMEOUT
+          In_SYN_ACK_V_V_0    -> 15 / Out_ACK_NEXT_CURRENT_0
+          In_RST_V_V_0        -> 16 / Out_TIMEOUT
+          In_ACCEPT           -> 15 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 15 / Out_TIMEOUT
+          In_LISTEN           -> 15 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 15 / Out_TIMEOUT
+          In_RCV              -> 14 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 16 / Out_TIMEOUT
+          In_CLOSE            -> 24 / Out_TIMEOUT
+          In_ACK_V_V_0        -> 15 / Out_TIMEOUT
+    16    In_CLOSECONNECTION  -> 1 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 16 / Out_RST_ZERO_ZERO_0
+          In_SYN_ACK_V_V_0    -> 16 / Out_RST_ZERO_ZERO_0
+          In_RST_V_V_0        -> 16 / Out_TIMEOUT
+          In_ACCEPT           -> 16 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 16 / Out_RST_ZERO_ZERO_0
+          In_LISTEN           -> 16 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 25 / Out_ACK_SYN_FRESH_NEXT_0
+          In_RCV              -> 16 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 16 / Out_TIMEOUT
+          In_CLOSE            -> 2 / Out_TIMEOUT
+          In_ACK_V_V_0        -> 16 / Out_RST_ZERO_ZERO_0
+    17    In_CLOSECONNECTION  -> 2 / Out_ACK_RST_NEXT_CURRENT_0
+          In_ACK_PSH_V_V_1    -> 17 / Out_ACK_NEXT_NEXT_0
+          In_SYN_ACK_V_V_0    -> 17 / Out_ACK_NEXT_CURRENT_0
+          In_RST_V_V_0        -> 2 / Out_TIMEOUT
+          In_ACCEPT           -> 17 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 24 / Out_ACK_NEXT_NEXT_0
+          In_LISTEN           -> 17 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 17 / Out_TIMEOUT
+          In_RCV              -> 21 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 2 / Out_TIMEOUT
+          In_CLOSE            -> 17 / Out_TIMEOUT
+          In_ACK_V_V_0        -> 17 / Out_TIMEOUT
+    18    In_CLOSECONNECTION  -> 18 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 26 / Out_ACK_NEXT_NEXT_0
+          In_SYN_ACK_V_V_0    -> 10 / Out_RST_NEXT_ZERO_0
+          In_RST_V_V_0        -> 10 / Out_TIMEOUT
+          In_ACCEPT           -> 25 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 27 / Out_ACK_NEXT_NEXT_0
+          In_LISTEN           -> 18 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 10 / Out_ACK_RST_ZERO_NEXT_0
+          In_RCV              -> 18 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 10 / Out_TIMEOUT
+          In_CLOSE            -> 8 / Out_TIMEOUT
+          In_ACK_V_V_0        -> 28 / Out_TIMEOUT
+    19    In_CLOSECONNECTION  -> 19 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 1 / Out_RST_NEXT_ZERO_0
+          In_SYN_ACK_V_V_0    -> 19 / Out_ACK_NEXT_CURRENT_0
+          In_RST_V_V_0        -> 1 / Out_TIMEOUT
+          In_ACCEPT           -> 29 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 30 / Out_ACK_NEXT_NEXT_0
+          In_LISTEN           -> 19 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 19 / Out_TIMEOUT
+          In_RCV              -> 19 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 1 / Out_TIMEOUT
+          In_CLOSE            -> 31 / Out_TIMEOUT
+          In_ACK_V_V_0        -> 32 / Out_TIMEOUT
+    20    In_CLOSECONNECTION  -> 19 / Out_ACK_FIN_NEXT_CURRENT_0
+          In_ACK_PSH_V_V_1    -> 13 / Out_ACK_NEXT_NEXT_0
+          In_SYN_ACK_V_V_0    -> 20 / Out_ACK_NEXT_CURRENT_0
+          In_RST_V_V_0        -> 16 / Out_TIMEOUT
+          In_ACCEPT           -> 20 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 14 / Out_ACK_NEXT_NEXT_0
+          In_LISTEN           -> 20 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 20 / Out_TIMEOUT
+          In_RCV              -> 20 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 16 / Out_TIMEOUT
+          In_CLOSE            -> 21 / Out_TIMEOUT
+          In_ACK_V_V_0        -> 20 / Out_TIMEOUT
+    21    In_CLOSECONNECTION  -> 31 / Out_ACK_FIN_NEXT_CURRENT_0
+          In_ACK_PSH_V_V_1    -> 17 / Out_ACK_NEXT_NEXT_0
+          In_SYN_ACK_V_V_0    -> 21 / Out_ACK_NEXT_CURRENT_0
+          In_RST_V_V_0        -> 2 / Out_TIMEOUT
+          In_ACCEPT           -> 21 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 23 / Out_ACK_NEXT_NEXT_0
+          In_LISTEN           -> 21 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 21 / Out_TIMEOUT
+          In_RCV              -> 33 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 2 / Out_TIMEOUT
+          In_CLOSE            -> 21 / Out_TIMEOUT
+          In_ACK_V_V_0        -> 21 / Out_TIMEOUT
+    22    In_CLOSECONNECTION  -> 22 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 35 / Out_TIMEOUT
+          In_SYN_ACK_V_V_0    -> 22 / Out_ACK_NEXT_CURRENT_0
+          In_RST_V_V_0        -> 1 / Out_TIMEOUT
+          In_ACCEPT           -> 36 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 35 / Out_TIMEOUT
+          In_LISTEN           -> 22 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 22 / Out_TIMEOUT
+          In_RCV              -> 22 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 1 / Out_TIMEOUT
+          In_CLOSE            -> 34 / Out_TIMEOUT
+          In_ACK_V_V_0        -> 35 / Out_TIMEOUT
+    23    In_CLOSECONNECTION  -> 34 / Out_ACK_FIN_NEXT_CURRENT_0
+          In_ACK_PSH_V_V_1    -> 23 / Out_TIMEOUT
+          In_SYN_ACK_V_V_0    -> 23 / Out_ACK_NEXT_CURRENT_0
+          In_RST_V_V_0        -> 2 / Out_TIMEOUT
+          In_ACCEPT           -> 23 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 23 / Out_TIMEOUT
+          In_LISTEN           -> 23 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 23 / Out_TIMEOUT
+          In_RCV              -> 23 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 2 / Out_TIMEOUT
+          In_CLOSE            -> 23 / Out_TIMEOUT
+          In_ACK_V_V_0        -> 23 / Out_TIMEOUT
+    24    In_CLOSECONNECTION  -> 2 / Out_ACK_RST_NEXT_CURRENT_0
+          In_ACK_PSH_V_V_1    -> 24 / Out_TIMEOUT
+          In_SYN_ACK_V_V_0    -> 24 / Out_ACK_NEXT_CURRENT_0
+          In_RST_V_V_0        -> 2 / Out_TIMEOUT
+          In_ACCEPT           -> 24 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 24 / Out_TIMEOUT
+          In_LISTEN           -> 24 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 24 / Out_TIMEOUT
+          In_RCV              -> 23 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 2 / Out_TIMEOUT
+          In_CLOSE            -> 24 / Out_TIMEOUT
+          In_ACK_V_V_0        -> 24 / Out_TIMEOUT
+    25    In_CLOSECONNECTION  -> 4 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 37 / Out_ACK_NEXT_NEXT_0
+          In_SYN_ACK_V_V_0    -> 16 / Out_RST_NEXT_ZERO_0
+          In_RST_V_V_0        -> 16 / Out_TIMEOUT
+          In_ACCEPT           -> 25 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 38 / Out_ACK_NEXT_NEXT_0
+          In_LISTEN           -> 25 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 16 / Out_ACK_RST_ZERO_NEXT_0
+          In_RCV              -> 25 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 16 / Out_TIMEOUT
+          In_CLOSE            -> 8 / Out_TIMEOUT
+          In_ACK_V_V_0        -> 39 / Out_TIMEOUT
+    26    In_CLOSECONNECTION  -> 26 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 26 / Out_ACK_NEXT_NEXT_0
+          In_SYN_ACK_V_V_0    -> 26 / Out_ACK_NEXT_CURRENT_0
+          In_RST_V_V_0        -> 40 / Out_TIMEOUT
+          In_ACCEPT           -> 37 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 41 / Out_ACK_NEXT_NEXT_0
+          In_LISTEN           -> 26 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 26 / Out_TIMEOUT
+          In_RCV              -> 26 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 40 / Out_TIMEOUT
+          In_CLOSE            -> 2 / Out_ACK_RST_NEXT_CURRENT_0
+          In_ACK_V_V_0        -> 26 / Out_TIMEOUT
+    27    In_CLOSECONNECTION  -> 27 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 27 / Out_TIMEOUT
+          In_SYN_ACK_V_V_0    -> 27 / Out_ACK_NEXT_CURRENT_0
+          In_RST_V_V_0        -> 40 / Out_TIMEOUT
+          In_ACCEPT           -> 38 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 27 / Out_TIMEOUT
+          In_LISTEN           -> 27 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 27 / Out_TIMEOUT
+          In_RCV              -> 27 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 40 / Out_TIMEOUT
+          In_CLOSE            -> 2 / Out_ACK_RST_NEXT_CURRENT_0
+          In_ACK_V_V_0        -> 27 / Out_TIMEOUT
+    28    In_CLOSECONNECTION  -> 28 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 26 / Out_ACK_NEXT_NEXT_0
+          In_SYN_ACK_V_V_0    -> 28 / Out_ACK_NEXT_CURRENT_0
+          In_RST_V_V_0        -> 40 / Out_TIMEOUT
+          In_ACCEPT           -> 39 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 27 / Out_ACK_NEXT_NEXT_0
+          In_LISTEN           -> 28 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 28 / Out_TIMEOUT
+          In_RCV              -> 28 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 40 / Out_TIMEOUT
+          In_CLOSE            -> 2 / Out_ACK_RST_NEXT_CURRENT_0
+          In_ACK_V_V_0        -> 28 / Out_TIMEOUT
+    29    In_CLOSECONNECTION  -> 19 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 3 / Out_RST_NEXT_ZERO_0
+          In_SYN_ACK_V_V_0    -> 29 / Out_ACK_NEXT_CURRENT_0
+          In_RST_V_V_0        -> 3 / Out_TIMEOUT
+          In_ACCEPT           -> 29 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 45 / Out_ACK_NEXT_NEXT_0
+          In_LISTEN           -> 29 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 29 / Out_TIMEOUT
+          In_RCV              -> 29 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 3 / Out_TIMEOUT
+          In_CLOSE            -> 31 / Out_TIMEOUT
+          In_ACK_V_V_0        -> 44 / Out_TIMEOUT
+    30    In_CLOSECONNECTION  -> 30 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 30 / Out_ACK_NEXT_CURRENT_0
+          In_SYN_ACK_V_V_0    -> 30 / Out_ACK_NEXT_CURRENT_0
+          In_RST_V_V_0        -> 1 / Out_TIMEOUT
+          In_ACCEPT           -> 45 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 30 / Out_ACK_NEXT_CURRENT_0
+          In_LISTEN           -> 30 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 30 / Out_ACK_NEXT_CURRENT_0
+          In_RCV              -> 30 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 1 / Out_TIMEOUT
+          In_CLOSE            -> 42 / Out_TIMEOUT
+          In_ACK_V_V_0        -> 30 / Out_TIMEOUT
+    31    In_CLOSECONNECTION  -> 31 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 2 / Out_RST_NEXT_ZERO_0
+          In_SYN_ACK_V_V_0    -> 31 / Out_ACK_NEXT_CURRENT_0
+          In_RST_V_V_0        -> 2 / Out_TIMEOUT
+          In_ACCEPT           -> 31 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 42 / Out_ACK_NEXT_NEXT_0
+          In_LISTEN           -> 31 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 31 / Out_TIMEOUT
+          In_RCV              -> 31 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 2 / Out_TIMEOUT
+          In_CLOSE            -> 31 / Out_TIMEOUT
+          In_ACK_V_V_0        -> 43 / Out_TIMEOUT
+    32    In_CLOSECONNECTION  -> 32 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 1 / Out_RST_NEXT_ZERO_0
+          In_SYN_ACK_V_V_0    -> 1 / Out_RST_NEXT_ZERO_0
+          In_RST_V_V_0        -> 1 / Out_TIMEOUT
+          In_ACCEPT           -> 44 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 30 / Out_ACK_NEXT_NEXT_0
+          In_LISTEN           -> 32 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 1 / Out_ACK_RST_ZERO_NEXT_0
+          In_RCV              -> 32 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 1 / Out_TIMEOUT
+          In_CLOSE            -> 43 / Out_TIMEOUT
+          In_ACK_V_V_0        -> 32 / Out_TIMEOUT
+    33    In_CLOSECONNECTION  -> 31 / Out_ACK_FIN_NEXT_CURRENT_0
+          In_ACK_PSH_V_V_1    -> 21 / Out_ACK_NEXT_NEXT_0
+          In_SYN_ACK_V_V_0    -> 33 / Out_ACK_NEXT_CURRENT_0
+          In_RST_V_V_0        -> 2 / Out_TIMEOUT
+          In_ACCEPT           -> 33 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 23 / Out_ACK_NEXT_NEXT_0
+          In_LISTEN           -> 33 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 33 / Out_TIMEOUT
+          In_RCV              -> 33 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 2 / Out_TIMEOUT
+          In_CLOSE            -> 21 / Out_TIMEOUT
+          In_ACK_V_V_0        -> 33 / Out_TIMEOUT
+    34    In_CLOSECONNECTION  -> 34 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 8 / Out_TIMEOUT
+          In_SYN_ACK_V_V_0    -> 34 / Out_ACK_NEXT_CURRENT_0
+          In_RST_V_V_0        -> 2 / Out_TIMEOUT
+          In_ACCEPT           -> 34 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 8 / Out_TIMEOUT
+          In_LISTEN           -> 34 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 34 / Out_TIMEOUT
+          In_RCV              -> 34 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 2 / Out_TIMEOUT
+          In_CLOSE            -> 34 / Out_TIMEOUT
+          In_ACK_V_V_0        -> 8 / Out_TIMEOUT
+    35    In_CLOSECONNECTION  -> 35 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 1 / Out_RST_NEXT_ZERO_0
+          In_SYN_ACK_V_V_0    -> 1 / Out_RST_NEXT_ZERO_0
+          In_RST_V_V_0        -> 1 / Out_TIMEOUT
+          In_ACCEPT           -> 46 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 1 / Out_RST_NEXT_ZERO_0
+          In_LISTEN           -> 35 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 4 / Out_ACK_SYN_FRESH_NEXT_0
+          In_RCV              -> 35 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 1 / Out_TIMEOUT
+          In_CLOSE            -> 8 / Out_TIMEOUT
+          In_ACK_V_V_0        -> 1 / Out_RST_NEXT_ZERO_0
+    36    In_CLOSECONNECTION  -> 22 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 46 / Out_TIMEOUT
+          In_SYN_ACK_V_V_0    -> 36 / Out_ACK_NEXT_CURRENT_0
+          In_RST_V_V_0        -> 3 / Out_TIMEOUT
+          In_ACCEPT           -> 36 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 46 / Out_TIMEOUT
+          In_LISTEN           -> 36 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 36 / Out_TIMEOUT
+          In_RCV              -> 36 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 3 / Out_TIMEOUT
+          In_CLOSE            -> 34 / Out_TIMEOUT
+          In_ACK_V_V_0        -> 46 / Out_TIMEOUT
+    37    In_CLOSECONNECTION  -> 5 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 37 / Out_ACK_NEXT_NEXT_0
+          In_SYN_ACK_V_V_0    -> 37 / Out_ACK_NEXT_CURRENT_0
+          In_RST_V_V_0        -> 47 / Out_TIMEOUT
+          In_ACCEPT           -> 37 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 48 / Out_ACK_NEXT_NEXT_0
+          In_LISTEN           -> 37 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 37 / Out_TIMEOUT
+          In_RCV              -> 37 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 47 / Out_TIMEOUT
+          In_CLOSE            -> 2 / Out_ACK_RST_NEXT_CURRENT_0
+          In_ACK_V_V_0        -> 37 / Out_TIMEOUT
+    38    In_CLOSECONNECTION  -> 7 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 38 / Out_TIMEOUT
+          In_SYN_ACK_V_V_0    -> 38 / Out_ACK_NEXT_CURRENT_0
+          In_RST_V_V_0        -> 47 / Out_TIMEOUT
+          In_ACCEPT           -> 38 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 38 / Out_TIMEOUT
+          In_LISTEN           -> 38 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 38 / Out_TIMEOUT
+          In_RCV              -> 38 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 47 / Out_TIMEOUT
+          In_CLOSE            -> 2 / Out_ACK_RST_NEXT_CURRENT_0
+          In_ACK_V_V_0        -> 38 / Out_TIMEOUT
+    39    In_CLOSECONNECTION  -> 9 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 37 / Out_ACK_NEXT_NEXT_0
+          In_SYN_ACK_V_V_0    -> 39 / Out_ACK_NEXT_CURRENT_0
+          In_RST_V_V_0        -> 47 / Out_TIMEOUT
+          In_ACCEPT           -> 39 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 38 / Out_ACK_NEXT_NEXT_0
+          In_LISTEN           -> 39 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 39 / Out_TIMEOUT
+          In_RCV              -> 39 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 47 / Out_TIMEOUT
+          In_CLOSE            -> 2 / Out_ACK_RST_NEXT_CURRENT_0
+          In_ACK_V_V_0        -> 39 / Out_TIMEOUT
+    40    In_CLOSECONNECTION  -> 40 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 40 / Out_RST_ZERO_ZERO_0
+          In_SYN_ACK_V_V_0    -> 40 / Out_RST_ZERO_ZERO_0
+          In_RST_V_V_0        -> 40 / Out_TIMEOUT
+          In_ACCEPT           -> 47 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 40 / Out_RST_ZERO_ZERO_0
+          In_LISTEN           -> 40 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 49 / Out_ACK_SYN_FRESH_NEXT_0
+          In_RCV              -> 40 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 40 / Out_TIMEOUT
+          In_CLOSE            -> 2 / Out_TIMEOUT
+          In_ACK_V_V_0        -> 40 / Out_RST_ZERO_ZERO_0
+    41    In_CLOSECONNECTION  -> 41 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 41 / Out_TIMEOUT
+          In_SYN_ACK_V_V_0    -> 41 / Out_ACK_NEXT_CURRENT_0
+          In_RST_V_V_0        -> 40 / Out_TIMEOUT
+          In_ACCEPT           -> 48 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 41 / Out_TIMEOUT
+          In_LISTEN           -> 41 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 41 / Out_TIMEOUT
+          In_RCV              -> 41 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 40 / Out_TIMEOUT
+          In_CLOSE            -> 2 / Out_ACK_RST_NEXT_CURRENT_0
+          In_ACK_V_V_0        -> 41 / Out_TIMEOUT
+    42    In_CLOSECONNECTION  -> 42 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 42 / Out_ACK_NEXT_CURRENT_0
+          In_SYN_ACK_V_V_0    -> 42 / Out_ACK_NEXT_CURRENT_0
+          In_RST_V_V_0        -> 2 / Out_TIMEOUT
+          In_ACCEPT           -> 42 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 42 / Out_ACK_NEXT_CURRENT_0
+          In_LISTEN           -> 42 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 42 / Out_ACK_NEXT_CURRENT_0
+          In_RCV              -> 42 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 2 / Out_TIMEOUT
+          In_CLOSE            -> 42 / Out_TIMEOUT
+          In_ACK_V_V_0        -> 42 / Out_TIMEOUT
+    43    In_CLOSECONNECTION  -> 43 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 2 / Out_RST_NEXT_ZERO_0
+          In_SYN_ACK_V_V_0    -> 2 / Out_RST_NEXT_ZERO_0
+          In_RST_V_V_0        -> 2 / Out_TIMEOUT
+          In_ACCEPT           -> 43 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 42 / Out_ACK_NEXT_NEXT_0
+          In_LISTEN           -> 43 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 2 / Out_ACK_RST_ZERO_NEXT_0
+          In_RCV              -> 43 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 2 / Out_TIMEOUT
+          In_CLOSE            -> 43 / Out_TIMEOUT
+          In_ACK_V_V_0        -> 43 / Out_TIMEOUT
+    44    In_CLOSECONNECTION  -> 32 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 3 / Out_RST_NEXT_ZERO_0
+          In_SYN_ACK_V_V_0    -> 3 / Out_RST_NEXT_ZERO_0
+          In_RST_V_V_0        -> 3 / Out_TIMEOUT
+          In_ACCEPT           -> 44 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 45 / Out_ACK_NEXT_NEXT_0
+          In_LISTEN           -> 44 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 3 / Out_ACK_RST_ZERO_NEXT_0
+          In_RCV              -> 44 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 3 / Out_TIMEOUT
+          In_CLOSE            -> 43 / Out_TIMEOUT
+          In_ACK_V_V_0        -> 44 / Out_TIMEOUT
+    45    In_CLOSECONNECTION  -> 30 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 45 / Out_ACK_NEXT_CURRENT_0
+          In_SYN_ACK_V_V_0    -> 45 / Out_ACK_NEXT_CURRENT_0
+          In_RST_V_V_0        -> 3 / Out_TIMEOUT
+          In_ACCEPT           -> 45 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 45 / Out_ACK_NEXT_CURRENT_0
+          In_LISTEN           -> 45 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 45 / Out_ACK_NEXT_CURRENT_0
+          In_RCV              -> 45 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 3 / Out_TIMEOUT
+          In_CLOSE            -> 42 / Out_TIMEOUT
+          In_ACK_V_V_0        -> 45 / Out_TIMEOUT
+    46    In_CLOSECONNECTION  -> 35 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 3 / Out_RST_NEXT_ZERO_0
+          In_SYN_ACK_V_V_0    -> 3 / Out_RST_NEXT_ZERO_0
+          In_RST_V_V_0        -> 3 / Out_TIMEOUT
+          In_ACCEPT           -> 46 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 3 / Out_RST_NEXT_ZERO_0
+          In_LISTEN           -> 46 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 6 / Out_ACK_SYN_FRESH_NEXT_0
+          In_RCV              -> 46 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 3 / Out_TIMEOUT
+          In_CLOSE            -> 8 / Out_TIMEOUT
+          In_ACK_V_V_0        -> 3 / Out_RST_NEXT_ZERO_0
+    47    In_CLOSECONNECTION  -> 10 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 47 / Out_RST_ZERO_ZERO_0
+          In_SYN_ACK_V_V_0    -> 47 / Out_RST_ZERO_ZERO_0
+          In_RST_V_V_0        -> 47 / Out_TIMEOUT
+          In_ACCEPT           -> 47 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 47 / Out_RST_ZERO_ZERO_0
+          In_LISTEN           -> 47 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 50 / Out_ACK_SYN_FRESH_NEXT_0
+          In_RCV              -> 47 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 47 / Out_TIMEOUT
+          In_CLOSE            -> 2 / Out_TIMEOUT
+          In_ACK_V_V_0        -> 47 / Out_RST_ZERO_ZERO_0
+    48    In_CLOSECONNECTION  -> 12 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 48 / Out_TIMEOUT
+          In_SYN_ACK_V_V_0    -> 48 / Out_ACK_NEXT_CURRENT_0
+          In_RST_V_V_0        -> 47 / Out_TIMEOUT
+          In_ACCEPT           -> 48 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 48 / Out_TIMEOUT
+          In_LISTEN           -> 48 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 48 / Out_TIMEOUT
+          In_RCV              -> 48 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 47 / Out_TIMEOUT
+          In_CLOSE            -> 2 / Out_ACK_RST_NEXT_CURRENT_0
+          In_ACK_V_V_0        -> 48 / Out_TIMEOUT
+    49    In_CLOSECONNECTION  -> 49 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 49 / Out_TIMEOUT
+          In_SYN_ACK_V_V_0    -> 40 / Out_RST_NEXT_ZERO_0
+          In_RST_V_V_0        -> 40 / Out_TIMEOUT
+          In_ACCEPT           -> 50 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 49 / Out_TIMEOUT
+          In_LISTEN           -> 49 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 40 / Out_ACK_RST_ZERO_NEXT_0
+          In_RCV              -> 49 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 40 / Out_TIMEOUT
+          In_CLOSE            -> 8 / Out_TIMEOUT
+          In_ACK_V_V_0        -> 49 / Out_TIMEOUT
+    50    In_CLOSECONNECTION  -> 18 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 51 / Out_ACK_NEXT_NEXT_0
+          In_SYN_ACK_V_V_0    -> 47 / Out_RST_NEXT_ZERO_0
+          In_RST_V_V_0        -> 47 / Out_TIMEOUT
+          In_ACCEPT           -> 50 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 52 / Out_ACK_NEXT_NEXT_0
+          In_LISTEN           -> 50 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 47 / Out_ACK_RST_ZERO_NEXT_0
+          In_RCV              -> 50 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 47 / Out_TIMEOUT
+          In_CLOSE            -> 8 / Out_TIMEOUT
+          In_ACK_V_V_0        -> 53 / Out_TIMEOUT
+    51    In_CLOSECONNECTION  -> 26 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 51 / Out_ACK_NEXT_NEXT_0
+          In_SYN_ACK_V_V_0    -> 51 / Out_ACK_NEXT_CURRENT_0
+          In_RST_V_V_0        -> 54 / Out_TIMEOUT
+          In_ACCEPT           -> 51 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 55 / Out_ACK_NEXT_NEXT_0
+          In_LISTEN           -> 51 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 51 / Out_TIMEOUT
+          In_RCV              -> 51 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 54 / Out_TIMEOUT
+          In_CLOSE            -> 2 / Out_ACK_RST_NEXT_CURRENT_0
+          In_ACK_V_V_0        -> 51 / Out_TIMEOUT
+    52    In_CLOSECONNECTION  -> 27 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 52 / Out_TIMEOUT
+          In_SYN_ACK_V_V_0    -> 52 / Out_ACK_NEXT_CURRENT_0
+          In_RST_V_V_0        -> 54 / Out_TIMEOUT
+          In_ACCEPT           -> 52 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 52 / Out_TIMEOUT
+          In_LISTEN           -> 52 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 52 / Out_TIMEOUT
+          In_RCV              -> 52 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 54 / Out_TIMEOUT
+          In_CLOSE            -> 2 / Out_ACK_RST_NEXT_CURRENT_0
+          In_ACK_V_V_0        -> 52 / Out_TIMEOUT
+    53    In_CLOSECONNECTION  -> 28 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 51 / Out_ACK_NEXT_NEXT_0
+          In_SYN_ACK_V_V_0    -> 53 / Out_ACK_NEXT_CURRENT_0
+          In_RST_V_V_0        -> 54 / Out_TIMEOUT
+          In_ACCEPT           -> 53 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 52 / Out_ACK_NEXT_NEXT_0
+          In_LISTEN           -> 53 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 53 / Out_TIMEOUT
+          In_RCV              -> 53 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 54 / Out_TIMEOUT
+          In_CLOSE            -> 2 / Out_ACK_RST_NEXT_CURRENT_0
+          In_ACK_V_V_0        -> 53 / Out_TIMEOUT
+    54    In_CLOSECONNECTION  -> 40 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 54 / Out_RST_ZERO_ZERO_0
+          In_SYN_ACK_V_V_0    -> 54 / Out_RST_ZERO_ZERO_0
+          In_RST_V_V_0        -> 54 / Out_TIMEOUT
+          In_ACCEPT           -> 54 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 54 / Out_RST_ZERO_ZERO_0
+          In_LISTEN           -> 54 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 56 / Out_ACK_SYN_FRESH_NEXT_0
+          In_RCV              -> 54 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 54 / Out_TIMEOUT
+          In_CLOSE            -> 2 / Out_TIMEOUT
+          In_ACK_V_V_0        -> 54 / Out_RST_ZERO_ZERO_0
+    55    In_CLOSECONNECTION  -> 41 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 55 / Out_TIMEOUT
+          In_SYN_ACK_V_V_0    -> 55 / Out_ACK_NEXT_CURRENT_0
+          In_RST_V_V_0        -> 54 / Out_TIMEOUT
+          In_ACCEPT           -> 55 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 55 / Out_TIMEOUT
+          In_LISTEN           -> 55 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 55 / Out_TIMEOUT
+          In_RCV              -> 55 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 54 / Out_TIMEOUT
+          In_CLOSE            -> 2 / Out_ACK_RST_NEXT_CURRENT_0
+          In_ACK_V_V_0        -> 55 / Out_TIMEOUT
+    56    In_CLOSECONNECTION  -> 49 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 56 / Out_TIMEOUT
+          In_SYN_ACK_V_V_0    -> 54 / Out_RST_NEXT_ZERO_0
+          In_RST_V_V_0        -> 54 / Out_TIMEOUT
+          In_ACCEPT           -> 56 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 56 / Out_TIMEOUT
+          In_LISTEN           -> 56 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 54 / Out_ACK_RST_ZERO_NEXT_0
+          In_RCV              -> 56 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 54 / Out_TIMEOUT
+          In_CLOSE            -> 8 / Out_TIMEOUT
+          In_ACK_V_V_0        -> 56 / Out_TIMEOUT
+-}
+tcpServerUbuntuTrans :: MealyAutomaton Int TcpServerUbuntuTransInput TcpServerUbuntuTransOutput
+tcpServerUbuntuTrans =
+    case mkMealyAutomatonTable 57 0 deltaTable lambdaTable of
+        Right m -> m
+        Left err -> error ("haal-gen: invalid transition table: " ++ err)
+  where
+    deltaTable =
+        "\0\0\0\0\0\0\1\0\0\0\2\0\
+        \\1\1\1\1\3\1\1\4\1\1\2\1\
+        \\2\2\2\2\2\2\2\2\2\2\2\2\
+        \\1\3\3\3\3\3\3\6\3\3\2\3\
+        \\4\5\1\1\6\7\4\1\4\1\8\9\
+        \\5\5\5\10\11\12\5\5\5\10\2\5\
+        \\4\11\3\3\6\14\6\3\6\3\8\13\
+        \\7\7\7\10\14\7\7\7\7\10\2\7\
+        \\8\2\2\2\8\2\8\2\8\2\8\2\
+        \\9\5\9\10\13\7\9\9\9\10\2\9\
+        \\10\10\10\10\16\10\10\18\10\10\2\10\
+        \\1\11\11\16\11\15\11\11\13\16\17\11\
+        \\12\12\12\10\15\12\12\12\12\10\2\12\
+        \\19\11\13\16\13\14\13\13\20\16\21\13\
+        \\22\14\14\16\14\14\14\14\14\16\23\14\
+        \\1\15\15\16\15\15\15\15\14\16\24\15\
+        \\1\16\16\16\16\16\16\25\16\16\2\16\
+        \\2\17\17\2\17\24\17\17\21\2\17\17\
+        \\18\26\10\10\25\27\18\10\18\10\8\28\
+        \\19\1\19\1\29\30\19\19\19\1\31\32\
+        \\19\13\20\16\20\14\20\20\20\16\21\20\
+        \\31\17\21\2\21\23\21\21\33\2\21\21\
+        \\22\35\22\1\36\35\22\22\22\1\34\35\
+        \\34\23\23\2\23\23\23\23\23\2\23\23\
+        \\2\24\24\2\24\24\24\24\23\2\24\24\
+        \\4\37\16\16\25\38\25\16\25\16\8\39\
+        \\26\26\26\40\37\41\26\26\26\40\2\26\
+        \\27\27\27\40\38\27\27\27\27\40\2\27\
+        \\28\26\28\40\39\27\28\28\28\40\2\28\
+        \\19\3\29\3\29\45\29\29\29\3\31\44\
+        \\30\30\30\1\45\30\30\30\30\1\42\30\
+        \\31\2\31\2\31\42\31\31\31\2\31\43\
+        \\32\1\1\1\44\30\32\1\32\1\43\32\
+        \\31\21\33\2\33\23\33\33\33\2\21\33\
+        \\34\8\34\2\34\8\34\34\34\2\34\8\
+        \\35\1\1\1\46\1\35\4\35\1\8\1\
+        \\22\46\36\3\36\46\36\36\36\3\34\46\
+        \\5\37\37\47\37\48\37\37\37\47\2\37\
+        \\7\38\38\47\38\38\38\38\38\47\2\38\
+        \\9\37\39\47\39\38\39\39\39\47\2\39\
+        \\40\40\40\40\47\40\40\49\40\40\2\40\
+        \\41\41\41\40\48\41\41\41\41\40\2\41\
+        \\42\42\42\2\42\42\42\42\42\2\42\42\
+        \\43\2\2\2\43\42\43\2\43\2\43\43\
+        \\32\3\3\3\44\45\44\3\44\3\43\44\
+        \\30\45\45\3\45\45\45\45\45\3\42\45\
+        \\35\3\3\3\46\3\46\6\46\3\8\3\
+        \\10\47\47\47\47\47\47\50\47\47\2\47\
+        \\12\48\48\47\48\48\48\48\48\47\2\48\
+        \\49\49\40\40\50\49\49\40\49\40\8\49\
+        \\18\51\47\47\50\52\50\47\50\47\8\53\
+        \\26\51\51\54\51\55\51\51\51\54\2\51\
+        \\27\52\52\54\52\52\52\52\52\54\2\52\
+        \\28\51\53\54\53\52\53\53\53\54\2\53\
+        \\40\54\54\54\54\54\54\56\54\54\2\54\
+        \\41\55\55\54\55\55\55\55\55\54\2\55\
+        \\49\56\54\54\56\56\56\54\56\54\8\56"
+    lambdaTable =
+        "\0\1\1\0\0\1\0\2\0\0\0\1\
+        \\0\1\1\0\0\1\0\3\0\0\0\1\
+        \\0\1\1\0\0\1\0\2\0\0\0\1\
+        \\0\1\1\0\0\1\0\3\0\0\0\1\
+        \\0\4\5\0\0\4\0\2\0\0\0\0\
+        \\0\4\6\0\0\4\0\0\0\0\7\0\
+        \\0\4\5\0\0\4\0\2\0\0\0\0\
+        \\0\0\6\0\0\0\0\0\0\0\7\0\
+        \\0\5\5\0\0\5\0\2\0\0\0\5\
+        \\0\4\6\0\0\4\0\0\0\0\7\0\
+        \\0\1\1\0\0\1\0\3\0\0\0\1\
+        \\7\4\6\0\0\4\0\0\0\0\0\0\
+        \\0\0\6\0\0\0\0\0\0\0\7\0\
+        \\8\4\6\0\0\4\0\0\0\0\0\0\
+        \\8\0\6\0\0\0\0\0\0\0\0\0\
+        \\7\0\6\0\0\0\0\0\0\0\0\0\
+        \\0\1\1\0\0\1\0\3\0\0\0\1\
+        \\7\4\6\0\0\4\0\0\0\0\0\0\
+        \\0\4\5\0\0\4\0\2\0\0\0\0\
+        \\0\5\6\0\0\4\0\0\0\0\0\0\
+        \\8\4\6\0\0\4\0\0\0\0\0\0\
+        \\8\4\6\0\0\4\0\0\0\0\0\0\
+        \\0\0\6\0\0\0\0\0\0\0\0\0\
+        \\8\0\6\0\0\0\0\0\0\0\0\0\
+        \\7\0\6\0\0\0\0\0\0\0\0\0\
+        \\0\4\5\0\0\4\0\2\0\0\0\0\
+        \\0\4\6\0\0\4\0\0\0\0\7\0\
+        \\0\0\6\0\0\0\0\0\0\0\7\0\
+        \\0\4\6\0\0\4\0\0\0\0\7\0\
+        \\0\5\6\0\0\4\0\0\0\0\0\0\
+        \\0\6\6\0\0\6\0\6\0\0\0\0\
+        \\0\5\6\0\0\4\0\0\0\0\0\0\
+        \\0\5\5\0\0\4\0\2\0\0\0\0\
+        \\8\4\6\0\0\4\0\0\0\0\0\0\
+        \\0\0\6\0\0\0\0\0\0\0\0\0\
+        \\0\5\5\0\0\5\0\3\0\0\0\5\
+        \\0\0\6\0\0\0\0\0\0\0\0\0\
+        \\0\4\6\0\0\4\0\0\0\0\7\0\
+        \\0\0\6\0\0\0\0\0\0\0\7\0\
+        \\0\4\6\0\0\4\0\0\0\0\7\0\
+        \\0\1\1\0\0\1\0\3\0\0\0\1\
+        \\0\0\6\0\0\0\0\0\0\0\7\0\
+        \\0\6\6\0\0\6\0\6\0\0\0\0\
+        \\0\5\5\0\0\4\0\2\0\0\0\0\
+        \\0\5\5\0\0\4\0\2\0\0\0\0\
+        \\0\6\6\0\0\6\0\6\0\0\0\0\
+        \\0\5\5\0\0\5\0\3\0\0\0\5\
+        \\0\1\1\0\0\1\0\3\0\0\0\1\
+        \\0\0\6\0\0\0\0\0\0\0\7\0\
+        \\0\0\5\0\0\0\0\2\0\0\0\0\
+        \\0\4\5\0\0\4\0\2\0\0\0\0\
+        \\0\4\6\0\0\4\0\0\0\0\7\0\
+        \\0\0\6\0\0\0\0\0\0\0\7\0\
+        \\0\4\6\0\0\4\0\0\0\0\7\0\
+        \\0\1\1\0\0\1\0\3\0\0\0\1\
+        \\0\0\6\0\0\0\0\0\0\0\7\0\
+        \\0\0\5\0\0\0\0\2\0\0\0\0"
diff --git a/src/Haal/Models/TCP/TcpServerWindowsTrans.hs b/src/Haal/Models/TCP/TcpServerWindowsTrans.hs
--- a/src/Haal/Models/TCP/TcpServerWindowsTrans.hs
+++ b/src/Haal/Models/TCP/TcpServerWindowsTrans.hs
@@ -5,1028 +5,614 @@
     , tcpServerWindowsTrans
     ) where
 
-import qualified Data.Set as Set
-import Haal.Automaton.MealyAutomaton (MealyAutomaton, mkMealyAutomaton)
-
-data TcpServerWindowsTransInput
-    = In_CLOSECONNECTION
-    | In_ACK_PSH_V_V_1
-    | In_SYN_ACK_V_V_0
-    | In_RST_V_V_0
-    | In_ACCEPT
-    | In_FIN_ACK_V_V_0
-    | In_LISTEN
-    | In_SYN_V_V_0
-    | In_RCV
-    | In_ACK_RST_V_V_0
-    | In_CLOSE
-    | In_SEND
-    | In_ACK_V_V_0
-    deriving (Show, Eq, Ord, Enum, Bounded)
-
-data TcpServerWindowsTransOutput
-    = Out_TIMEOUT
-    | Out_ACK_SYN_FRESH_NEXT_0
-    | Out_ACK_NEXT_NEXT_0
-    | Out_ACK_RST_ZERO_NEXT_0
-    | Out_RST_NEXT_FRESH_0
-    | Out_ACK_RST_NEXT_CURRENT_0
-    | Out_RST_NEXT_CURRENT_0
-    | Out_ACK_FIN_NEXT_CURRENT_0
-    | Out_ACK_PSH_NEXT_CURRENT_1
-    | Out_ACK_RST_NEXT_NEXT_0
-    deriving (Show, Eq, Ord, Enum, Bounded)
-
-tcpServerWindowsTrans :: MealyAutomaton Int TcpServerWindowsTransInput TcpServerWindowsTransOutput
-tcpServerWindowsTrans = mkMealyAutomaton delta lambda (Set.fromList [0..37]) 0
-  where
-    delta 0 In_CLOSECONNECTION = 0
-    delta 0 In_ACK_PSH_V_V_1 = 0
-    delta 0 In_SYN_ACK_V_V_0 = 0
-    delta 0 In_RST_V_V_0 = 0
-    delta 0 In_ACCEPT = 0
-    delta 0 In_FIN_ACK_V_V_0 = 0
-    delta 0 In_LISTEN = 1
-    delta 0 In_SYN_V_V_0 = 0
-    delta 0 In_RCV = 0
-    delta 0 In_ACK_RST_V_V_0 = 0
-    delta 0 In_CLOSE = 2
-    delta 0 In_SEND = 0
-    delta 0 In_ACK_V_V_0 = 0
-    delta 1 In_CLOSECONNECTION = 1
-    delta 1 In_ACK_PSH_V_V_1 = 1
-    delta 1 In_SYN_ACK_V_V_0 = 1
-    delta 1 In_RST_V_V_0 = 1
-    delta 1 In_ACCEPT = 3
-    delta 1 In_FIN_ACK_V_V_0 = 1
-    delta 1 In_LISTEN = 1
-    delta 1 In_SYN_V_V_0 = 4
-    delta 1 In_RCV = 1
-    delta 1 In_ACK_RST_V_V_0 = 1
-    delta 1 In_CLOSE = 2
-    delta 1 In_SEND = 1
-    delta 1 In_ACK_V_V_0 = 1
-    delta 2 In_CLOSECONNECTION = 2
-    delta 2 In_ACK_PSH_V_V_1 = 2
-    delta 2 In_SYN_ACK_V_V_0 = 2
-    delta 2 In_RST_V_V_0 = 2
-    delta 2 In_ACCEPT = 2
-    delta 2 In_FIN_ACK_V_V_0 = 2
-    delta 2 In_LISTEN = 2
-    delta 2 In_SYN_V_V_0 = 2
-    delta 2 In_RCV = 2
-    delta 2 In_ACK_RST_V_V_0 = 2
-    delta 2 In_CLOSE = 2
-    delta 2 In_SEND = 2
-    delta 2 In_ACK_V_V_0 = 2
-    delta 3 In_CLOSECONNECTION = 1
-    delta 3 In_ACK_PSH_V_V_1 = 3
-    delta 3 In_SYN_ACK_V_V_0 = 3
-    delta 3 In_RST_V_V_0 = 3
-    delta 3 In_ACCEPT = 3
-    delta 3 In_FIN_ACK_V_V_0 = 3
-    delta 3 In_LISTEN = 3
-    delta 3 In_SYN_V_V_0 = 5
-    delta 3 In_RCV = 3
-    delta 3 In_ACK_RST_V_V_0 = 3
-    delta 3 In_CLOSE = 2
-    delta 3 In_SEND = 3
-    delta 3 In_ACK_V_V_0 = 3
-    delta 4 In_CLOSECONNECTION = 4
-    delta 4 In_ACK_PSH_V_V_1 = 6
-    delta 4 In_SYN_ACK_V_V_0 = 4
-    delta 4 In_RST_V_V_0 = 1
-    delta 4 In_ACCEPT = 5
-    delta 4 In_FIN_ACK_V_V_0 = 7
-    delta 4 In_LISTEN = 4
-    delta 4 In_SYN_V_V_0 = 1
-    delta 4 In_RCV = 4
-    delta 4 In_ACK_RST_V_V_0 = 1
-    delta 4 In_CLOSE = 8
-    delta 4 In_SEND = 4
-    delta 4 In_ACK_V_V_0 = 9
-    delta 5 In_CLOSECONNECTION = 4
-    delta 5 In_ACK_PSH_V_V_1 = 10
-    delta 5 In_SYN_ACK_V_V_0 = 5
-    delta 5 In_RST_V_V_0 = 3
-    delta 5 In_ACCEPT = 5
-    delta 5 In_FIN_ACK_V_V_0 = 11
-    delta 5 In_LISTEN = 5
-    delta 5 In_SYN_V_V_0 = 3
-    delta 5 In_RCV = 5
-    delta 5 In_ACK_RST_V_V_0 = 3
-    delta 5 In_CLOSE = 8
-    delta 5 In_SEND = 5
-    delta 5 In_ACK_V_V_0 = 12
-    delta 9 In_CLOSECONNECTION = 9
-    delta 9 In_ACK_PSH_V_V_1 = 6
-    delta 9 In_SYN_ACK_V_V_0 = 13
-    delta 9 In_RST_V_V_0 = 13
-    delta 9 In_ACCEPT = 12
-    delta 9 In_FIN_ACK_V_V_0 = 7
-    delta 9 In_LISTEN = 9
-    delta 9 In_SYN_V_V_0 = 13
-    delta 9 In_RCV = 9
-    delta 9 In_ACK_RST_V_V_0 = 13
-    delta 9 In_CLOSE = 2
-    delta 9 In_SEND = 9
-    delta 9 In_ACK_V_V_0 = 9
-    delta 6 In_CLOSECONNECTION = 6
-    delta 6 In_ACK_PSH_V_V_1 = 6
-    delta 6 In_SYN_ACK_V_V_0 = 13
-    delta 6 In_RST_V_V_0 = 13
-    delta 6 In_ACCEPT = 10
-    delta 6 In_FIN_ACK_V_V_0 = 14
-    delta 6 In_LISTEN = 6
-    delta 6 In_SYN_V_V_0 = 13
-    delta 6 In_RCV = 6
-    delta 6 In_ACK_RST_V_V_0 = 13
-    delta 6 In_CLOSE = 2
-    delta 6 In_SEND = 6
-    delta 6 In_ACK_V_V_0 = 6
-    delta 8 In_CLOSECONNECTION = 8
-    delta 8 In_ACK_PSH_V_V_1 = 2
-    delta 8 In_SYN_ACK_V_V_0 = 8
-    delta 8 In_RST_V_V_0 = 2
-    delta 8 In_ACCEPT = 8
-    delta 8 In_FIN_ACK_V_V_0 = 2
-    delta 8 In_LISTEN = 8
-    delta 8 In_SYN_V_V_0 = 2
-    delta 8 In_RCV = 8
-    delta 8 In_ACK_RST_V_V_0 = 2
-    delta 8 In_CLOSE = 8
-    delta 8 In_SEND = 8
-    delta 8 In_ACK_V_V_0 = 2
-    delta 7 In_CLOSECONNECTION = 7
-    delta 7 In_ACK_PSH_V_V_1 = 7
-    delta 7 In_SYN_ACK_V_V_0 = 13
-    delta 7 In_RST_V_V_0 = 13
-    delta 7 In_ACCEPT = 11
-    delta 7 In_FIN_ACK_V_V_0 = 7
-    delta 7 In_LISTEN = 7
-    delta 7 In_SYN_V_V_0 = 13
-    delta 7 In_RCV = 7
-    delta 7 In_ACK_RST_V_V_0 = 13
-    delta 7 In_CLOSE = 2
-    delta 7 In_SEND = 7
-    delta 7 In_ACK_V_V_0 = 7
-    delta 11 In_CLOSECONNECTION = 15
-    delta 11 In_ACK_PSH_V_V_1 = 11
-    delta 11 In_SYN_ACK_V_V_0 = 16
-    delta 11 In_RST_V_V_0 = 16
-    delta 11 In_ACCEPT = 11
-    delta 11 In_FIN_ACK_V_V_0 = 11
-    delta 11 In_LISTEN = 11
-    delta 11 In_SYN_V_V_0 = 16
-    delta 11 In_RCV = 11
-    delta 11 In_ACK_RST_V_V_0 = 16
-    delta 11 In_CLOSE = 17
-    delta 11 In_SEND = 11
-    delta 11 In_ACK_V_V_0 = 11
-    delta 12 In_CLOSECONNECTION = 18
-    delta 12 In_ACK_PSH_V_V_1 = 10
-    delta 12 In_SYN_ACK_V_V_0 = 16
-    delta 12 In_RST_V_V_0 = 16
-    delta 12 In_ACCEPT = 12
-    delta 12 In_FIN_ACK_V_V_0 = 11
-    delta 12 In_LISTEN = 12
-    delta 12 In_SYN_V_V_0 = 16
-    delta 12 In_RCV = 19
-    delta 12 In_ACK_RST_V_V_0 = 16
-    delta 12 In_CLOSE = 20
-    delta 12 In_SEND = 12
-    delta 12 In_ACK_V_V_0 = 12
-    delta 10 In_CLOSECONNECTION = 1
-    delta 10 In_ACK_PSH_V_V_1 = 10
-    delta 10 In_SYN_ACK_V_V_0 = 16
-    delta 10 In_RST_V_V_0 = 16
-    delta 10 In_ACCEPT = 10
-    delta 10 In_FIN_ACK_V_V_0 = 21
-    delta 10 In_LISTEN = 10
-    delta 10 In_SYN_V_V_0 = 16
-    delta 10 In_RCV = 12
-    delta 10 In_ACK_RST_V_V_0 = 16
-    delta 10 In_CLOSE = 22
-    delta 10 In_SEND = 10
-    delta 10 In_ACK_V_V_0 = 10
-    delta 13 In_CLOSECONNECTION = 13
-    delta 13 In_ACK_PSH_V_V_1 = 13
-    delta 13 In_SYN_ACK_V_V_0 = 13
-    delta 13 In_RST_V_V_0 = 13
-    delta 13 In_ACCEPT = 16
-    delta 13 In_FIN_ACK_V_V_0 = 13
-    delta 13 In_LISTEN = 13
-    delta 13 In_SYN_V_V_0 = 13
-    delta 13 In_RCV = 13
-    delta 13 In_ACK_RST_V_V_0 = 13
-    delta 13 In_CLOSE = 2
-    delta 13 In_SEND = 13
-    delta 13 In_ACK_V_V_0 = 13
-    delta 14 In_CLOSECONNECTION = 14
-    delta 14 In_ACK_PSH_V_V_1 = 14
-    delta 14 In_SYN_ACK_V_V_0 = 13
-    delta 14 In_RST_V_V_0 = 13
-    delta 14 In_ACCEPT = 21
-    delta 14 In_FIN_ACK_V_V_0 = 14
-    delta 14 In_LISTEN = 14
-    delta 14 In_SYN_V_V_0 = 13
-    delta 14 In_RCV = 14
-    delta 14 In_ACK_RST_V_V_0 = 13
-    delta 14 In_CLOSE = 2
-    delta 14 In_SEND = 14
-    delta 14 In_ACK_V_V_0 = 14
-    delta 15 In_CLOSECONNECTION = 15
-    delta 15 In_ACK_PSH_V_V_1 = 1
-    delta 15 In_SYN_ACK_V_V_0 = 1
-    delta 15 In_RST_V_V_0 = 1
-    delta 15 In_ACCEPT = 23
-    delta 15 In_FIN_ACK_V_V_0 = 1
-    delta 15 In_LISTEN = 15
-    delta 15 In_SYN_V_V_0 = 1
-    delta 15 In_RCV = 15
-    delta 15 In_ACK_RST_V_V_0 = 1
-    delta 15 In_CLOSE = 24
-    delta 15 In_SEND = 15
-    delta 15 In_ACK_V_V_0 = 1
-    delta 17 In_CLOSECONNECTION = 24
-    delta 17 In_ACK_PSH_V_V_1 = 17
-    delta 17 In_SYN_ACK_V_V_0 = 2
-    delta 17 In_RST_V_V_0 = 2
-    delta 17 In_ACCEPT = 17
-    delta 17 In_FIN_ACK_V_V_0 = 17
-    delta 17 In_LISTEN = 17
-    delta 17 In_SYN_V_V_0 = 2
-    delta 17 In_RCV = 17
-    delta 17 In_ACK_RST_V_V_0 = 2
-    delta 17 In_CLOSE = 17
-    delta 17 In_SEND = 17
-    delta 17 In_ACK_V_V_0 = 17
-    delta 16 In_CLOSECONNECTION = 1
-    delta 16 In_ACK_PSH_V_V_1 = 16
-    delta 16 In_SYN_ACK_V_V_0 = 16
-    delta 16 In_RST_V_V_0 = 16
-    delta 16 In_ACCEPT = 16
-    delta 16 In_FIN_ACK_V_V_0 = 16
-    delta 16 In_LISTEN = 16
-    delta 16 In_SYN_V_V_0 = 25
-    delta 16 In_RCV = 16
-    delta 16 In_ACK_RST_V_V_0 = 16
-    delta 16 In_CLOSE = 2
-    delta 16 In_SEND = 16
-    delta 16 In_ACK_V_V_0 = 16
-    delta 19 In_CLOSECONNECTION = 1
-    delta 19 In_ACK_PSH_V_V_1 = 12
-    delta 19 In_SYN_ACK_V_V_0 = 16
-    delta 19 In_RST_V_V_0 = 16
-    delta 19 In_ACCEPT = 19
-    delta 19 In_FIN_ACK_V_V_0 = 11
-    delta 19 In_LISTEN = 19
-    delta 19 In_SYN_V_V_0 = 16
-    delta 19 In_RCV = 19
-    delta 19 In_ACK_RST_V_V_0 = 16
-    delta 19 In_CLOSE = 20
-    delta 19 In_SEND = 19
-    delta 19 In_ACK_V_V_0 = 19
-    delta 18 In_CLOSECONNECTION = 18
-    delta 18 In_ACK_PSH_V_V_1 = 1
-    delta 18 In_SYN_ACK_V_V_0 = 1
-    delta 18 In_RST_V_V_0 = 1
-    delta 18 In_ACCEPT = 26
-    delta 18 In_FIN_ACK_V_V_0 = 27
-    delta 18 In_LISTEN = 18
-    delta 18 In_SYN_V_V_0 = 1
-    delta 18 In_RCV = 18
-    delta 18 In_ACK_RST_V_V_0 = 1
-    delta 18 In_CLOSE = 28
-    delta 18 In_SEND = 18
-    delta 18 In_ACK_V_V_0 = 18
-    delta 20 In_CLOSECONNECTION = 28
-    delta 20 In_ACK_PSH_V_V_1 = 22
-    delta 20 In_SYN_ACK_V_V_0 = 2
-    delta 20 In_RST_V_V_0 = 2
-    delta 20 In_ACCEPT = 20
-    delta 20 In_FIN_ACK_V_V_0 = 17
-    delta 20 In_LISTEN = 20
-    delta 20 In_SYN_V_V_0 = 2
-    delta 20 In_RCV = 29
-    delta 20 In_ACK_RST_V_V_0 = 2
-    delta 20 In_CLOSE = 20
-    delta 20 In_SEND = 20
-    delta 20 In_ACK_V_V_0 = 20
-    delta 22 In_CLOSECONNECTION = 2
-    delta 22 In_ACK_PSH_V_V_1 = 22
-    delta 22 In_SYN_ACK_V_V_0 = 2
-    delta 22 In_RST_V_V_0 = 2
-    delta 22 In_ACCEPT = 22
-    delta 22 In_FIN_ACK_V_V_0 = 30
-    delta 22 In_LISTEN = 22
-    delta 22 In_SYN_V_V_0 = 2
-    delta 22 In_RCV = 20
-    delta 22 In_ACK_RST_V_V_0 = 2
-    delta 22 In_CLOSE = 22
-    delta 22 In_SEND = 22
-    delta 22 In_ACK_V_V_0 = 22
-    delta 21 In_CLOSECONNECTION = 1
-    delta 21 In_ACK_PSH_V_V_1 = 21
-    delta 21 In_SYN_ACK_V_V_0 = 16
-    delta 21 In_RST_V_V_0 = 16
-    delta 21 In_ACCEPT = 21
-    delta 21 In_FIN_ACK_V_V_0 = 21
-    delta 21 In_LISTEN = 21
-    delta 21 In_SYN_V_V_0 = 16
-    delta 21 In_RCV = 11
-    delta 21 In_ACK_RST_V_V_0 = 16
-    delta 21 In_CLOSE = 30
-    delta 21 In_SEND = 21
-    delta 21 In_ACK_V_V_0 = 21
-    delta 24 In_CLOSECONNECTION = 24
-    delta 24 In_ACK_PSH_V_V_1 = 2
-    delta 24 In_SYN_ACK_V_V_0 = 2
-    delta 24 In_RST_V_V_0 = 2
-    delta 24 In_ACCEPT = 24
-    delta 24 In_FIN_ACK_V_V_0 = 2
-    delta 24 In_LISTEN = 24
-    delta 24 In_SYN_V_V_0 = 2
-    delta 24 In_RCV = 24
-    delta 24 In_ACK_RST_V_V_0 = 2
-    delta 24 In_CLOSE = 24
-    delta 24 In_SEND = 24
-    delta 24 In_ACK_V_V_0 = 2
-    delta 23 In_CLOSECONNECTION = 15
-    delta 23 In_ACK_PSH_V_V_1 = 3
-    delta 23 In_SYN_ACK_V_V_0 = 3
-    delta 23 In_RST_V_V_0 = 3
-    delta 23 In_ACCEPT = 23
-    delta 23 In_FIN_ACK_V_V_0 = 3
-    delta 23 In_LISTEN = 23
-    delta 23 In_SYN_V_V_0 = 3
-    delta 23 In_RCV = 23
-    delta 23 In_ACK_RST_V_V_0 = 3
-    delta 23 In_CLOSE = 24
-    delta 23 In_SEND = 23
-    delta 23 In_ACK_V_V_0 = 3
-    delta 25 In_CLOSECONNECTION = 4
-    delta 25 In_ACK_PSH_V_V_1 = 31
-    delta 25 In_SYN_ACK_V_V_0 = 25
-    delta 25 In_RST_V_V_0 = 16
-    delta 25 In_ACCEPT = 25
-    delta 25 In_FIN_ACK_V_V_0 = 32
-    delta 25 In_LISTEN = 25
-    delta 25 In_SYN_V_V_0 = 16
-    delta 25 In_RCV = 25
-    delta 25 In_ACK_RST_V_V_0 = 16
-    delta 25 In_CLOSE = 8
-    delta 25 In_SEND = 25
-    delta 25 In_ACK_V_V_0 = 33
-    delta 28 In_CLOSECONNECTION = 28
-    delta 28 In_ACK_PSH_V_V_1 = 2
-    delta 28 In_SYN_ACK_V_V_0 = 2
-    delta 28 In_RST_V_V_0 = 2
-    delta 28 In_ACCEPT = 28
-    delta 28 In_FIN_ACK_V_V_0 = 34
-    delta 28 In_LISTEN = 28
-    delta 28 In_SYN_V_V_0 = 2
-    delta 28 In_RCV = 28
-    delta 28 In_ACK_RST_V_V_0 = 2
-    delta 28 In_CLOSE = 28
-    delta 28 In_SEND = 28
-    delta 28 In_ACK_V_V_0 = 28
-    delta 27 In_CLOSECONNECTION = 27
-    delta 27 In_ACK_PSH_V_V_1 = 27
-    delta 27 In_SYN_ACK_V_V_0 = 27
-    delta 27 In_RST_V_V_0 = 1
-    delta 27 In_ACCEPT = 35
-    delta 27 In_FIN_ACK_V_V_0 = 27
-    delta 27 In_LISTEN = 27
-    delta 27 In_SYN_V_V_0 = 4
-    delta 27 In_RCV = 27
-    delta 27 In_ACK_RST_V_V_0 = 1
-    delta 27 In_CLOSE = 34
-    delta 27 In_SEND = 27
-    delta 27 In_ACK_V_V_0 = 27
-    delta 26 In_CLOSECONNECTION = 18
-    delta 26 In_ACK_PSH_V_V_1 = 3
-    delta 26 In_SYN_ACK_V_V_0 = 3
-    delta 26 In_RST_V_V_0 = 3
-    delta 26 In_ACCEPT = 26
-    delta 26 In_FIN_ACK_V_V_0 = 35
-    delta 26 In_LISTEN = 26
-    delta 26 In_SYN_V_V_0 = 3
-    delta 26 In_RCV = 26
-    delta 26 In_ACK_RST_V_V_0 = 3
-    delta 26 In_CLOSE = 28
-    delta 26 In_SEND = 26
-    delta 26 In_ACK_V_V_0 = 26
-    delta 29 In_CLOSECONNECTION = 2
-    delta 29 In_ACK_PSH_V_V_1 = 20
-    delta 29 In_SYN_ACK_V_V_0 = 2
-    delta 29 In_RST_V_V_0 = 2
-    delta 29 In_ACCEPT = 29
-    delta 29 In_FIN_ACK_V_V_0 = 17
-    delta 29 In_LISTEN = 29
-    delta 29 In_SYN_V_V_0 = 2
-    delta 29 In_RCV = 29
-    delta 29 In_ACK_RST_V_V_0 = 2
-    delta 29 In_CLOSE = 20
-    delta 29 In_SEND = 29
-    delta 29 In_ACK_V_V_0 = 29
-    delta 30 In_CLOSECONNECTION = 2
-    delta 30 In_ACK_PSH_V_V_1 = 30
-    delta 30 In_SYN_ACK_V_V_0 = 2
-    delta 30 In_RST_V_V_0 = 2
-    delta 30 In_ACCEPT = 30
-    delta 30 In_FIN_ACK_V_V_0 = 30
-    delta 30 In_LISTEN = 30
-    delta 30 In_SYN_V_V_0 = 2
-    delta 30 In_RCV = 17
-    delta 30 In_ACK_RST_V_V_0 = 2
-    delta 30 In_CLOSE = 30
-    delta 30 In_SEND = 30
-    delta 30 In_ACK_V_V_0 = 30
-    delta 32 In_CLOSECONNECTION = 7
-    delta 32 In_ACK_PSH_V_V_1 = 32
-    delta 32 In_SYN_ACK_V_V_0 = 36
-    delta 32 In_RST_V_V_0 = 36
-    delta 32 In_ACCEPT = 32
-    delta 32 In_FIN_ACK_V_V_0 = 32
-    delta 32 In_LISTEN = 32
-    delta 32 In_SYN_V_V_0 = 36
-    delta 32 In_RCV = 32
-    delta 32 In_ACK_RST_V_V_0 = 36
-    delta 32 In_CLOSE = 2
-    delta 32 In_SEND = 32
-    delta 32 In_ACK_V_V_0 = 32
-    delta 33 In_CLOSECONNECTION = 9
-    delta 33 In_ACK_PSH_V_V_1 = 31
-    delta 33 In_SYN_ACK_V_V_0 = 36
-    delta 33 In_RST_V_V_0 = 36
-    delta 33 In_ACCEPT = 33
-    delta 33 In_FIN_ACK_V_V_0 = 32
-    delta 33 In_LISTEN = 33
-    delta 33 In_SYN_V_V_0 = 36
-    delta 33 In_RCV = 33
-    delta 33 In_ACK_RST_V_V_0 = 36
-    delta 33 In_CLOSE = 2
-    delta 33 In_SEND = 33
-    delta 33 In_ACK_V_V_0 = 33
-    delta 31 In_CLOSECONNECTION = 6
-    delta 31 In_ACK_PSH_V_V_1 = 31
-    delta 31 In_SYN_ACK_V_V_0 = 36
-    delta 31 In_RST_V_V_0 = 36
-    delta 31 In_ACCEPT = 31
-    delta 31 In_FIN_ACK_V_V_0 = 37
-    delta 31 In_LISTEN = 31
-    delta 31 In_SYN_V_V_0 = 36
-    delta 31 In_RCV = 31
-    delta 31 In_ACK_RST_V_V_0 = 36
-    delta 31 In_CLOSE = 2
-    delta 31 In_SEND = 31
-    delta 31 In_ACK_V_V_0 = 31
-    delta 34 In_CLOSECONNECTION = 34
-    delta 34 In_ACK_PSH_V_V_1 = 34
-    delta 34 In_SYN_ACK_V_V_0 = 34
-    delta 34 In_RST_V_V_0 = 2
-    delta 34 In_ACCEPT = 34
-    delta 34 In_FIN_ACK_V_V_0 = 34
-    delta 34 In_LISTEN = 34
-    delta 34 In_SYN_V_V_0 = 34
-    delta 34 In_RCV = 34
-    delta 34 In_ACK_RST_V_V_0 = 2
-    delta 34 In_CLOSE = 34
-    delta 34 In_SEND = 34
-    delta 34 In_ACK_V_V_0 = 34
-    delta 35 In_CLOSECONNECTION = 27
-    delta 35 In_ACK_PSH_V_V_1 = 35
-    delta 35 In_SYN_ACK_V_V_0 = 35
-    delta 35 In_RST_V_V_0 = 3
-    delta 35 In_ACCEPT = 35
-    delta 35 In_FIN_ACK_V_V_0 = 35
-    delta 35 In_LISTEN = 35
-    delta 35 In_SYN_V_V_0 = 5
-    delta 35 In_RCV = 35
-    delta 35 In_ACK_RST_V_V_0 = 3
-    delta 35 In_CLOSE = 34
-    delta 35 In_SEND = 35
-    delta 35 In_ACK_V_V_0 = 35
-    delta 36 In_CLOSECONNECTION = 13
-    delta 36 In_ACK_PSH_V_V_1 = 36
-    delta 36 In_SYN_ACK_V_V_0 = 36
-    delta 36 In_RST_V_V_0 = 36
-    delta 36 In_ACCEPT = 36
-    delta 36 In_FIN_ACK_V_V_0 = 36
-    delta 36 In_LISTEN = 36
-    delta 36 In_SYN_V_V_0 = 36
-    delta 36 In_RCV = 36
-    delta 36 In_ACK_RST_V_V_0 = 36
-    delta 36 In_CLOSE = 2
-    delta 36 In_SEND = 36
-    delta 36 In_ACK_V_V_0 = 36
-    delta 37 In_CLOSECONNECTION = 14
-    delta 37 In_ACK_PSH_V_V_1 = 37
-    delta 37 In_SYN_ACK_V_V_0 = 36
-    delta 37 In_RST_V_V_0 = 36
-    delta 37 In_ACCEPT = 37
-    delta 37 In_FIN_ACK_V_V_0 = 37
-    delta 37 In_LISTEN = 37
-    delta 37 In_SYN_V_V_0 = 36
-    delta 37 In_RCV = 37
-    delta 37 In_ACK_RST_V_V_0 = 36
-    delta 37 In_CLOSE = 2
-    delta 37 In_SEND = 37
-    delta 37 In_ACK_V_V_0 = 37
-    delta _ _ = error "haal-gen: undefined transition"
-    lambda 0 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 0 In_ACK_PSH_V_V_1 = Out_TIMEOUT
-    lambda 0 In_SYN_ACK_V_V_0 = Out_TIMEOUT
-    lambda 0 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 0 In_ACCEPT = Out_TIMEOUT
-    lambda 0 In_FIN_ACK_V_V_0 = Out_TIMEOUT
-    lambda 0 In_LISTEN = Out_TIMEOUT
-    lambda 0 In_SYN_V_V_0 = Out_TIMEOUT
-    lambda 0 In_RCV = Out_TIMEOUT
-    lambda 0 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 0 In_CLOSE = Out_TIMEOUT
-    lambda 0 In_SEND = Out_TIMEOUT
-    lambda 0 In_ACK_V_V_0 = Out_TIMEOUT
-    lambda 1 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 1 In_ACK_PSH_V_V_1 = Out_TIMEOUT
-    lambda 1 In_SYN_ACK_V_V_0 = Out_TIMEOUT
-    lambda 1 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 1 In_ACCEPT = Out_TIMEOUT
-    lambda 1 In_FIN_ACK_V_V_0 = Out_TIMEOUT
-    lambda 1 In_LISTEN = Out_TIMEOUT
-    lambda 1 In_SYN_V_V_0 = Out_ACK_SYN_FRESH_NEXT_0
-    lambda 1 In_RCV = Out_TIMEOUT
-    lambda 1 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 1 In_CLOSE = Out_TIMEOUT
-    lambda 1 In_SEND = Out_TIMEOUT
-    lambda 1 In_ACK_V_V_0 = Out_TIMEOUT
-    lambda 2 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 2 In_ACK_PSH_V_V_1 = Out_TIMEOUT
-    lambda 2 In_SYN_ACK_V_V_0 = Out_TIMEOUT
-    lambda 2 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 2 In_ACCEPT = Out_TIMEOUT
-    lambda 2 In_FIN_ACK_V_V_0 = Out_TIMEOUT
-    lambda 2 In_LISTEN = Out_TIMEOUT
-    lambda 2 In_SYN_V_V_0 = Out_TIMEOUT
-    lambda 2 In_RCV = Out_TIMEOUT
-    lambda 2 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 2 In_CLOSE = Out_TIMEOUT
-    lambda 2 In_SEND = Out_TIMEOUT
-    lambda 2 In_ACK_V_V_0 = Out_TIMEOUT
-    lambda 3 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 3 In_ACK_PSH_V_V_1 = Out_TIMEOUT
-    lambda 3 In_SYN_ACK_V_V_0 = Out_TIMEOUT
-    lambda 3 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 3 In_ACCEPT = Out_TIMEOUT
-    lambda 3 In_FIN_ACK_V_V_0 = Out_TIMEOUT
-    lambda 3 In_LISTEN = Out_TIMEOUT
-    lambda 3 In_SYN_V_V_0 = Out_ACK_SYN_FRESH_NEXT_0
-    lambda 3 In_RCV = Out_TIMEOUT
-    lambda 3 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 3 In_CLOSE = Out_TIMEOUT
-    lambda 3 In_SEND = Out_TIMEOUT
-    lambda 3 In_ACK_V_V_0 = Out_TIMEOUT
-    lambda 4 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 4 In_ACK_PSH_V_V_1 = Out_ACK_NEXT_NEXT_0
-    lambda 4 In_SYN_ACK_V_V_0 = Out_TIMEOUT
-    lambda 4 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 4 In_ACCEPT = Out_TIMEOUT
-    lambda 4 In_FIN_ACK_V_V_0 = Out_ACK_NEXT_NEXT_0
-    lambda 4 In_LISTEN = Out_TIMEOUT
-    lambda 4 In_SYN_V_V_0 = Out_ACK_RST_ZERO_NEXT_0
-    lambda 4 In_RCV = Out_TIMEOUT
-    lambda 4 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 4 In_CLOSE = Out_TIMEOUT
-    lambda 4 In_SEND = Out_TIMEOUT
-    lambda 4 In_ACK_V_V_0 = Out_TIMEOUT
-    lambda 5 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 5 In_ACK_PSH_V_V_1 = Out_ACK_NEXT_NEXT_0
-    lambda 5 In_SYN_ACK_V_V_0 = Out_TIMEOUT
-    lambda 5 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 5 In_ACCEPT = Out_TIMEOUT
-    lambda 5 In_FIN_ACK_V_V_0 = Out_ACK_NEXT_NEXT_0
-    lambda 5 In_LISTEN = Out_TIMEOUT
-    lambda 5 In_SYN_V_V_0 = Out_ACK_RST_ZERO_NEXT_0
-    lambda 5 In_RCV = Out_TIMEOUT
-    lambda 5 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 5 In_CLOSE = Out_TIMEOUT
-    lambda 5 In_SEND = Out_TIMEOUT
-    lambda 5 In_ACK_V_V_0 = Out_TIMEOUT
-    lambda 9 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 9 In_ACK_PSH_V_V_1 = Out_ACK_NEXT_NEXT_0
-    lambda 9 In_SYN_ACK_V_V_0 = Out_RST_NEXT_FRESH_0
-    lambda 9 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 9 In_ACCEPT = Out_TIMEOUT
-    lambda 9 In_FIN_ACK_V_V_0 = Out_ACK_NEXT_NEXT_0
-    lambda 9 In_LISTEN = Out_TIMEOUT
-    lambda 9 In_SYN_V_V_0 = Out_ACK_RST_ZERO_NEXT_0
-    lambda 9 In_RCV = Out_TIMEOUT
-    lambda 9 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 9 In_CLOSE = Out_ACK_RST_NEXT_CURRENT_0
-    lambda 9 In_SEND = Out_TIMEOUT
-    lambda 9 In_ACK_V_V_0 = Out_TIMEOUT
-    lambda 6 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 6 In_ACK_PSH_V_V_1 = Out_ACK_NEXT_NEXT_0
-    lambda 6 In_SYN_ACK_V_V_0 = Out_RST_NEXT_FRESH_0
-    lambda 6 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 6 In_ACCEPT = Out_TIMEOUT
-    lambda 6 In_FIN_ACK_V_V_0 = Out_ACK_NEXT_NEXT_0
-    lambda 6 In_LISTEN = Out_TIMEOUT
-    lambda 6 In_SYN_V_V_0 = Out_ACK_RST_ZERO_NEXT_0
-    lambda 6 In_RCV = Out_TIMEOUT
-    lambda 6 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 6 In_CLOSE = Out_ACK_RST_NEXT_CURRENT_0
-    lambda 6 In_SEND = Out_TIMEOUT
-    lambda 6 In_ACK_V_V_0 = Out_TIMEOUT
-    lambda 8 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 8 In_ACK_PSH_V_V_1 = Out_RST_NEXT_CURRENT_0
-    lambda 8 In_SYN_ACK_V_V_0 = Out_TIMEOUT
-    lambda 8 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 8 In_ACCEPT = Out_TIMEOUT
-    lambda 8 In_FIN_ACK_V_V_0 = Out_RST_NEXT_CURRENT_0
-    lambda 8 In_LISTEN = Out_TIMEOUT
-    lambda 8 In_SYN_V_V_0 = Out_ACK_RST_ZERO_NEXT_0
-    lambda 8 In_RCV = Out_TIMEOUT
-    lambda 8 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 8 In_CLOSE = Out_TIMEOUT
-    lambda 8 In_SEND = Out_TIMEOUT
-    lambda 8 In_ACK_V_V_0 = Out_RST_NEXT_CURRENT_0
-    lambda 7 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 7 In_ACK_PSH_V_V_1 = Out_TIMEOUT
-    lambda 7 In_SYN_ACK_V_V_0 = Out_RST_NEXT_FRESH_0
-    lambda 7 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 7 In_ACCEPT = Out_TIMEOUT
-    lambda 7 In_FIN_ACK_V_V_0 = Out_TIMEOUT
-    lambda 7 In_LISTEN = Out_TIMEOUT
-    lambda 7 In_SYN_V_V_0 = Out_ACK_RST_ZERO_NEXT_0
-    lambda 7 In_RCV = Out_TIMEOUT
-    lambda 7 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 7 In_CLOSE = Out_ACK_RST_NEXT_CURRENT_0
-    lambda 7 In_SEND = Out_TIMEOUT
-    lambda 7 In_ACK_V_V_0 = Out_TIMEOUT
-    lambda 11 In_CLOSECONNECTION = Out_ACK_FIN_NEXT_CURRENT_0
-    lambda 11 In_ACK_PSH_V_V_1 = Out_TIMEOUT
-    lambda 11 In_SYN_ACK_V_V_0 = Out_RST_NEXT_FRESH_0
-    lambda 11 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 11 In_ACCEPT = Out_TIMEOUT
-    lambda 11 In_FIN_ACK_V_V_0 = Out_TIMEOUT
-    lambda 11 In_LISTEN = Out_TIMEOUT
-    lambda 11 In_SYN_V_V_0 = Out_ACK_RST_ZERO_NEXT_0
-    lambda 11 In_RCV = Out_TIMEOUT
-    lambda 11 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 11 In_CLOSE = Out_TIMEOUT
-    lambda 11 In_SEND = Out_ACK_PSH_NEXT_CURRENT_1
-    lambda 11 In_ACK_V_V_0 = Out_TIMEOUT
-    lambda 12 In_CLOSECONNECTION = Out_ACK_FIN_NEXT_CURRENT_0
-    lambda 12 In_ACK_PSH_V_V_1 = Out_ACK_NEXT_NEXT_0
-    lambda 12 In_SYN_ACK_V_V_0 = Out_RST_NEXT_FRESH_0
-    lambda 12 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 12 In_ACCEPT = Out_TIMEOUT
-    lambda 12 In_FIN_ACK_V_V_0 = Out_ACK_NEXT_NEXT_0
-    lambda 12 In_LISTEN = Out_TIMEOUT
-    lambda 12 In_SYN_V_V_0 = Out_ACK_RST_ZERO_NEXT_0
-    lambda 12 In_RCV = Out_TIMEOUT
-    lambda 12 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 12 In_CLOSE = Out_TIMEOUT
-    lambda 12 In_SEND = Out_ACK_PSH_NEXT_CURRENT_1
-    lambda 12 In_ACK_V_V_0 = Out_TIMEOUT
-    lambda 10 In_CLOSECONNECTION = Out_ACK_RST_NEXT_CURRENT_0
-    lambda 10 In_ACK_PSH_V_V_1 = Out_ACK_NEXT_NEXT_0
-    lambda 10 In_SYN_ACK_V_V_0 = Out_RST_NEXT_FRESH_0
-    lambda 10 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 10 In_ACCEPT = Out_TIMEOUT
-    lambda 10 In_FIN_ACK_V_V_0 = Out_ACK_NEXT_NEXT_0
-    lambda 10 In_LISTEN = Out_TIMEOUT
-    lambda 10 In_SYN_V_V_0 = Out_ACK_RST_ZERO_NEXT_0
-    lambda 10 In_RCV = Out_TIMEOUT
-    lambda 10 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 10 In_CLOSE = Out_TIMEOUT
-    lambda 10 In_SEND = Out_ACK_PSH_NEXT_CURRENT_1
-    lambda 10 In_ACK_V_V_0 = Out_TIMEOUT
-    lambda 13 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 13 In_ACK_PSH_V_V_1 = Out_TIMEOUT
-    lambda 13 In_SYN_ACK_V_V_0 = Out_TIMEOUT
-    lambda 13 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 13 In_ACCEPT = Out_TIMEOUT
-    lambda 13 In_FIN_ACK_V_V_0 = Out_TIMEOUT
-    lambda 13 In_LISTEN = Out_TIMEOUT
-    lambda 13 In_SYN_V_V_0 = Out_TIMEOUT
-    lambda 13 In_RCV = Out_TIMEOUT
-    lambda 13 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 13 In_CLOSE = Out_TIMEOUT
-    lambda 13 In_SEND = Out_TIMEOUT
-    lambda 13 In_ACK_V_V_0 = Out_TIMEOUT
-    lambda 14 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 14 In_ACK_PSH_V_V_1 = Out_TIMEOUT
-    lambda 14 In_SYN_ACK_V_V_0 = Out_RST_NEXT_FRESH_0
-    lambda 14 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 14 In_ACCEPT = Out_TIMEOUT
-    lambda 14 In_FIN_ACK_V_V_0 = Out_TIMEOUT
-    lambda 14 In_LISTEN = Out_TIMEOUT
-    lambda 14 In_SYN_V_V_0 = Out_ACK_RST_ZERO_NEXT_0
-    lambda 14 In_RCV = Out_TIMEOUT
-    lambda 14 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 14 In_CLOSE = Out_ACK_RST_NEXT_CURRENT_0
-    lambda 14 In_SEND = Out_TIMEOUT
-    lambda 14 In_ACK_V_V_0 = Out_TIMEOUT
-    lambda 15 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 15 In_ACK_PSH_V_V_1 = Out_TIMEOUT
-    lambda 15 In_SYN_ACK_V_V_0 = Out_RST_NEXT_FRESH_0
-    lambda 15 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 15 In_ACCEPT = Out_TIMEOUT
-    lambda 15 In_FIN_ACK_V_V_0 = Out_TIMEOUT
-    lambda 15 In_LISTEN = Out_TIMEOUT
-    lambda 15 In_SYN_V_V_0 = Out_ACK_RST_ZERO_NEXT_0
-    lambda 15 In_RCV = Out_TIMEOUT
-    lambda 15 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 15 In_CLOSE = Out_TIMEOUT
-    lambda 15 In_SEND = Out_TIMEOUT
-    lambda 15 In_ACK_V_V_0 = Out_TIMEOUT
-    lambda 17 In_CLOSECONNECTION = Out_ACK_FIN_NEXT_CURRENT_0
-    lambda 17 In_ACK_PSH_V_V_1 = Out_TIMEOUT
-    lambda 17 In_SYN_ACK_V_V_0 = Out_RST_NEXT_FRESH_0
-    lambda 17 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 17 In_ACCEPT = Out_TIMEOUT
-    lambda 17 In_FIN_ACK_V_V_0 = Out_TIMEOUT
-    lambda 17 In_LISTEN = Out_TIMEOUT
-    lambda 17 In_SYN_V_V_0 = Out_ACK_RST_ZERO_NEXT_0
-    lambda 17 In_RCV = Out_TIMEOUT
-    lambda 17 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 17 In_CLOSE = Out_TIMEOUT
-    lambda 17 In_SEND = Out_ACK_PSH_NEXT_CURRENT_1
-    lambda 17 In_ACK_V_V_0 = Out_TIMEOUT
-    lambda 16 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 16 In_ACK_PSH_V_V_1 = Out_TIMEOUT
-    lambda 16 In_SYN_ACK_V_V_0 = Out_TIMEOUT
-    lambda 16 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 16 In_ACCEPT = Out_TIMEOUT
-    lambda 16 In_FIN_ACK_V_V_0 = Out_TIMEOUT
-    lambda 16 In_LISTEN = Out_TIMEOUT
-    lambda 16 In_SYN_V_V_0 = Out_ACK_SYN_FRESH_NEXT_0
-    lambda 16 In_RCV = Out_TIMEOUT
-    lambda 16 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 16 In_CLOSE = Out_TIMEOUT
-    lambda 16 In_SEND = Out_TIMEOUT
-    lambda 16 In_ACK_V_V_0 = Out_TIMEOUT
-    lambda 19 In_CLOSECONNECTION = Out_ACK_RST_NEXT_CURRENT_0
-    lambda 19 In_ACK_PSH_V_V_1 = Out_ACK_NEXT_NEXT_0
-    lambda 19 In_SYN_ACK_V_V_0 = Out_RST_NEXT_FRESH_0
-    lambda 19 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 19 In_ACCEPT = Out_TIMEOUT
-    lambda 19 In_FIN_ACK_V_V_0 = Out_ACK_NEXT_NEXT_0
-    lambda 19 In_LISTEN = Out_TIMEOUT
-    lambda 19 In_SYN_V_V_0 = Out_ACK_RST_ZERO_NEXT_0
-    lambda 19 In_RCV = Out_TIMEOUT
-    lambda 19 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 19 In_CLOSE = Out_TIMEOUT
-    lambda 19 In_SEND = Out_ACK_PSH_NEXT_CURRENT_1
-    lambda 19 In_ACK_V_V_0 = Out_TIMEOUT
-    lambda 18 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 18 In_ACK_PSH_V_V_1 = Out_ACK_RST_NEXT_NEXT_0
-    lambda 18 In_SYN_ACK_V_V_0 = Out_RST_NEXT_FRESH_0
-    lambda 18 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 18 In_ACCEPT = Out_TIMEOUT
-    lambda 18 In_FIN_ACK_V_V_0 = Out_ACK_NEXT_NEXT_0
-    lambda 18 In_LISTEN = Out_TIMEOUT
-    lambda 18 In_SYN_V_V_0 = Out_ACK_RST_ZERO_NEXT_0
-    lambda 18 In_RCV = Out_TIMEOUT
-    lambda 18 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 18 In_CLOSE = Out_TIMEOUT
-    lambda 18 In_SEND = Out_TIMEOUT
-    lambda 18 In_ACK_V_V_0 = Out_TIMEOUT
-    lambda 20 In_CLOSECONNECTION = Out_ACK_FIN_NEXT_CURRENT_0
-    lambda 20 In_ACK_PSH_V_V_1 = Out_ACK_NEXT_NEXT_0
-    lambda 20 In_SYN_ACK_V_V_0 = Out_RST_NEXT_FRESH_0
-    lambda 20 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 20 In_ACCEPT = Out_TIMEOUT
-    lambda 20 In_FIN_ACK_V_V_0 = Out_ACK_NEXT_NEXT_0
-    lambda 20 In_LISTEN = Out_TIMEOUT
-    lambda 20 In_SYN_V_V_0 = Out_ACK_RST_ZERO_NEXT_0
-    lambda 20 In_RCV = Out_TIMEOUT
-    lambda 20 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 20 In_CLOSE = Out_TIMEOUT
-    lambda 20 In_SEND = Out_ACK_PSH_NEXT_CURRENT_1
-    lambda 20 In_ACK_V_V_0 = Out_TIMEOUT
-    lambda 22 In_CLOSECONNECTION = Out_ACK_RST_NEXT_CURRENT_0
-    lambda 22 In_ACK_PSH_V_V_1 = Out_ACK_NEXT_NEXT_0
-    lambda 22 In_SYN_ACK_V_V_0 = Out_RST_NEXT_FRESH_0
-    lambda 22 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 22 In_ACCEPT = Out_TIMEOUT
-    lambda 22 In_FIN_ACK_V_V_0 = Out_ACK_NEXT_NEXT_0
-    lambda 22 In_LISTEN = Out_TIMEOUT
-    lambda 22 In_SYN_V_V_0 = Out_ACK_RST_ZERO_NEXT_0
-    lambda 22 In_RCV = Out_TIMEOUT
-    lambda 22 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 22 In_CLOSE = Out_TIMEOUT
-    lambda 22 In_SEND = Out_ACK_PSH_NEXT_CURRENT_1
-    lambda 22 In_ACK_V_V_0 = Out_TIMEOUT
-    lambda 21 In_CLOSECONNECTION = Out_ACK_RST_NEXT_CURRENT_0
-    lambda 21 In_ACK_PSH_V_V_1 = Out_TIMEOUT
-    lambda 21 In_SYN_ACK_V_V_0 = Out_RST_NEXT_FRESH_0
-    lambda 21 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 21 In_ACCEPT = Out_TIMEOUT
-    lambda 21 In_FIN_ACK_V_V_0 = Out_TIMEOUT
-    lambda 21 In_LISTEN = Out_TIMEOUT
-    lambda 21 In_SYN_V_V_0 = Out_ACK_RST_ZERO_NEXT_0
-    lambda 21 In_RCV = Out_TIMEOUT
-    lambda 21 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 21 In_CLOSE = Out_TIMEOUT
-    lambda 21 In_SEND = Out_ACK_PSH_NEXT_CURRENT_1
-    lambda 21 In_ACK_V_V_0 = Out_TIMEOUT
-    lambda 24 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 24 In_ACK_PSH_V_V_1 = Out_TIMEOUT
-    lambda 24 In_SYN_ACK_V_V_0 = Out_RST_NEXT_FRESH_0
-    lambda 24 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 24 In_ACCEPT = Out_TIMEOUT
-    lambda 24 In_FIN_ACK_V_V_0 = Out_TIMEOUT
-    lambda 24 In_LISTEN = Out_TIMEOUT
-    lambda 24 In_SYN_V_V_0 = Out_ACK_RST_ZERO_NEXT_0
-    lambda 24 In_RCV = Out_TIMEOUT
-    lambda 24 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 24 In_CLOSE = Out_TIMEOUT
-    lambda 24 In_SEND = Out_TIMEOUT
-    lambda 24 In_ACK_V_V_0 = Out_TIMEOUT
-    lambda 23 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 23 In_ACK_PSH_V_V_1 = Out_TIMEOUT
-    lambda 23 In_SYN_ACK_V_V_0 = Out_RST_NEXT_FRESH_0
-    lambda 23 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 23 In_ACCEPT = Out_TIMEOUT
-    lambda 23 In_FIN_ACK_V_V_0 = Out_TIMEOUT
-    lambda 23 In_LISTEN = Out_TIMEOUT
-    lambda 23 In_SYN_V_V_0 = Out_ACK_RST_ZERO_NEXT_0
-    lambda 23 In_RCV = Out_TIMEOUT
-    lambda 23 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 23 In_CLOSE = Out_TIMEOUT
-    lambda 23 In_SEND = Out_TIMEOUT
-    lambda 23 In_ACK_V_V_0 = Out_TIMEOUT
-    lambda 25 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 25 In_ACK_PSH_V_V_1 = Out_ACK_NEXT_NEXT_0
-    lambda 25 In_SYN_ACK_V_V_0 = Out_TIMEOUT
-    lambda 25 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 25 In_ACCEPT = Out_TIMEOUT
-    lambda 25 In_FIN_ACK_V_V_0 = Out_ACK_NEXT_NEXT_0
-    lambda 25 In_LISTEN = Out_TIMEOUT
-    lambda 25 In_SYN_V_V_0 = Out_ACK_RST_ZERO_NEXT_0
-    lambda 25 In_RCV = Out_TIMEOUT
-    lambda 25 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 25 In_CLOSE = Out_TIMEOUT
-    lambda 25 In_SEND = Out_TIMEOUT
-    lambda 25 In_ACK_V_V_0 = Out_TIMEOUT
-    lambda 28 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 28 In_ACK_PSH_V_V_1 = Out_ACK_RST_NEXT_NEXT_0
-    lambda 28 In_SYN_ACK_V_V_0 = Out_RST_NEXT_FRESH_0
-    lambda 28 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 28 In_ACCEPT = Out_TIMEOUT
-    lambda 28 In_FIN_ACK_V_V_0 = Out_ACK_NEXT_NEXT_0
-    lambda 28 In_LISTEN = Out_TIMEOUT
-    lambda 28 In_SYN_V_V_0 = Out_ACK_RST_ZERO_NEXT_0
-    lambda 28 In_RCV = Out_TIMEOUT
-    lambda 28 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 28 In_CLOSE = Out_TIMEOUT
-    lambda 28 In_SEND = Out_TIMEOUT
-    lambda 28 In_ACK_V_V_0 = Out_TIMEOUT
-    lambda 27 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 27 In_ACK_PSH_V_V_1 = Out_TIMEOUT
-    lambda 27 In_SYN_ACK_V_V_0 = Out_RST_NEXT_FRESH_0
-    lambda 27 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 27 In_ACCEPT = Out_TIMEOUT
-    lambda 27 In_FIN_ACK_V_V_0 = Out_TIMEOUT
-    lambda 27 In_LISTEN = Out_TIMEOUT
-    lambda 27 In_SYN_V_V_0 = Out_ACK_SYN_FRESH_NEXT_0
-    lambda 27 In_RCV = Out_TIMEOUT
-    lambda 27 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 27 In_CLOSE = Out_TIMEOUT
-    lambda 27 In_SEND = Out_TIMEOUT
-    lambda 27 In_ACK_V_V_0 = Out_TIMEOUT
-    lambda 26 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 26 In_ACK_PSH_V_V_1 = Out_ACK_RST_NEXT_NEXT_0
-    lambda 26 In_SYN_ACK_V_V_0 = Out_RST_NEXT_FRESH_0
-    lambda 26 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 26 In_ACCEPT = Out_TIMEOUT
-    lambda 26 In_FIN_ACK_V_V_0 = Out_ACK_NEXT_NEXT_0
-    lambda 26 In_LISTEN = Out_TIMEOUT
-    lambda 26 In_SYN_V_V_0 = Out_ACK_RST_ZERO_NEXT_0
-    lambda 26 In_RCV = Out_TIMEOUT
-    lambda 26 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 26 In_CLOSE = Out_TIMEOUT
-    lambda 26 In_SEND = Out_TIMEOUT
-    lambda 26 In_ACK_V_V_0 = Out_TIMEOUT
-    lambda 29 In_CLOSECONNECTION = Out_ACK_RST_NEXT_CURRENT_0
-    lambda 29 In_ACK_PSH_V_V_1 = Out_ACK_NEXT_NEXT_0
-    lambda 29 In_SYN_ACK_V_V_0 = Out_RST_NEXT_FRESH_0
-    lambda 29 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 29 In_ACCEPT = Out_TIMEOUT
-    lambda 29 In_FIN_ACK_V_V_0 = Out_ACK_NEXT_NEXT_0
-    lambda 29 In_LISTEN = Out_TIMEOUT
-    lambda 29 In_SYN_V_V_0 = Out_ACK_RST_ZERO_NEXT_0
-    lambda 29 In_RCV = Out_TIMEOUT
-    lambda 29 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 29 In_CLOSE = Out_TIMEOUT
-    lambda 29 In_SEND = Out_ACK_PSH_NEXT_CURRENT_1
-    lambda 29 In_ACK_V_V_0 = Out_TIMEOUT
-    lambda 30 In_CLOSECONNECTION = Out_ACK_RST_NEXT_CURRENT_0
-    lambda 30 In_ACK_PSH_V_V_1 = Out_TIMEOUT
-    lambda 30 In_SYN_ACK_V_V_0 = Out_RST_NEXT_FRESH_0
-    lambda 30 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 30 In_ACCEPT = Out_TIMEOUT
-    lambda 30 In_FIN_ACK_V_V_0 = Out_TIMEOUT
-    lambda 30 In_LISTEN = Out_TIMEOUT
-    lambda 30 In_SYN_V_V_0 = Out_ACK_RST_ZERO_NEXT_0
-    lambda 30 In_RCV = Out_TIMEOUT
-    lambda 30 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 30 In_CLOSE = Out_TIMEOUT
-    lambda 30 In_SEND = Out_ACK_PSH_NEXT_CURRENT_1
-    lambda 30 In_ACK_V_V_0 = Out_TIMEOUT
-    lambda 32 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 32 In_ACK_PSH_V_V_1 = Out_TIMEOUT
-    lambda 32 In_SYN_ACK_V_V_0 = Out_RST_NEXT_FRESH_0
-    lambda 32 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 32 In_ACCEPT = Out_TIMEOUT
-    lambda 32 In_FIN_ACK_V_V_0 = Out_TIMEOUT
-    lambda 32 In_LISTEN = Out_TIMEOUT
-    lambda 32 In_SYN_V_V_0 = Out_ACK_RST_ZERO_NEXT_0
-    lambda 32 In_RCV = Out_TIMEOUT
-    lambda 32 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 32 In_CLOSE = Out_ACK_RST_NEXT_CURRENT_0
-    lambda 32 In_SEND = Out_TIMEOUT
-    lambda 32 In_ACK_V_V_0 = Out_TIMEOUT
-    lambda 33 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 33 In_ACK_PSH_V_V_1 = Out_ACK_NEXT_NEXT_0
-    lambda 33 In_SYN_ACK_V_V_0 = Out_RST_NEXT_FRESH_0
-    lambda 33 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 33 In_ACCEPT = Out_TIMEOUT
-    lambda 33 In_FIN_ACK_V_V_0 = Out_ACK_NEXT_NEXT_0
-    lambda 33 In_LISTEN = Out_TIMEOUT
-    lambda 33 In_SYN_V_V_0 = Out_ACK_RST_ZERO_NEXT_0
-    lambda 33 In_RCV = Out_TIMEOUT
-    lambda 33 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 33 In_CLOSE = Out_ACK_RST_NEXT_CURRENT_0
-    lambda 33 In_SEND = Out_TIMEOUT
-    lambda 33 In_ACK_V_V_0 = Out_TIMEOUT
-    lambda 31 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 31 In_ACK_PSH_V_V_1 = Out_ACK_NEXT_NEXT_0
-    lambda 31 In_SYN_ACK_V_V_0 = Out_RST_NEXT_FRESH_0
-    lambda 31 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 31 In_ACCEPT = Out_TIMEOUT
-    lambda 31 In_FIN_ACK_V_V_0 = Out_ACK_NEXT_NEXT_0
-    lambda 31 In_LISTEN = Out_TIMEOUT
-    lambda 31 In_SYN_V_V_0 = Out_ACK_RST_ZERO_NEXT_0
-    lambda 31 In_RCV = Out_TIMEOUT
-    lambda 31 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 31 In_CLOSE = Out_ACK_RST_NEXT_CURRENT_0
-    lambda 31 In_SEND = Out_TIMEOUT
-    lambda 31 In_ACK_V_V_0 = Out_TIMEOUT
-    lambda 34 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 34 In_ACK_PSH_V_V_1 = Out_TIMEOUT
-    lambda 34 In_SYN_ACK_V_V_0 = Out_RST_NEXT_FRESH_0
-    lambda 34 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 34 In_ACCEPT = Out_TIMEOUT
-    lambda 34 In_FIN_ACK_V_V_0 = Out_TIMEOUT
-    lambda 34 In_LISTEN = Out_TIMEOUT
-    lambda 34 In_SYN_V_V_0 = Out_TIMEOUT
-    lambda 34 In_RCV = Out_TIMEOUT
-    lambda 34 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 34 In_CLOSE = Out_TIMEOUT
-    lambda 34 In_SEND = Out_TIMEOUT
-    lambda 34 In_ACK_V_V_0 = Out_TIMEOUT
-    lambda 35 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 35 In_ACK_PSH_V_V_1 = Out_TIMEOUT
-    lambda 35 In_SYN_ACK_V_V_0 = Out_RST_NEXT_FRESH_0
-    lambda 35 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 35 In_ACCEPT = Out_TIMEOUT
-    lambda 35 In_FIN_ACK_V_V_0 = Out_TIMEOUT
-    lambda 35 In_LISTEN = Out_TIMEOUT
-    lambda 35 In_SYN_V_V_0 = Out_ACK_SYN_FRESH_NEXT_0
-    lambda 35 In_RCV = Out_TIMEOUT
-    lambda 35 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 35 In_CLOSE = Out_TIMEOUT
-    lambda 35 In_SEND = Out_TIMEOUT
-    lambda 35 In_ACK_V_V_0 = Out_TIMEOUT
-    lambda 36 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 36 In_ACK_PSH_V_V_1 = Out_TIMEOUT
-    lambda 36 In_SYN_ACK_V_V_0 = Out_TIMEOUT
-    lambda 36 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 36 In_ACCEPT = Out_TIMEOUT
-    lambda 36 In_FIN_ACK_V_V_0 = Out_TIMEOUT
-    lambda 36 In_LISTEN = Out_TIMEOUT
-    lambda 36 In_SYN_V_V_0 = Out_TIMEOUT
-    lambda 36 In_RCV = Out_TIMEOUT
-    lambda 36 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 36 In_CLOSE = Out_TIMEOUT
-    lambda 36 In_SEND = Out_TIMEOUT
-    lambda 36 In_ACK_V_V_0 = Out_TIMEOUT
-    lambda 37 In_CLOSECONNECTION = Out_TIMEOUT
-    lambda 37 In_ACK_PSH_V_V_1 = Out_TIMEOUT
-    lambda 37 In_SYN_ACK_V_V_0 = Out_RST_NEXT_FRESH_0
-    lambda 37 In_RST_V_V_0 = Out_TIMEOUT
-    lambda 37 In_ACCEPT = Out_TIMEOUT
-    lambda 37 In_FIN_ACK_V_V_0 = Out_TIMEOUT
-    lambda 37 In_LISTEN = Out_TIMEOUT
-    lambda 37 In_SYN_V_V_0 = Out_ACK_RST_ZERO_NEXT_0
-    lambda 37 In_RCV = Out_TIMEOUT
-    lambda 37 In_ACK_RST_V_V_0 = Out_TIMEOUT
-    lambda 37 In_CLOSE = Out_ACK_RST_NEXT_CURRENT_0
-    lambda 37 In_SEND = Out_TIMEOUT
-    lambda 37 In_ACK_V_V_0 = Out_TIMEOUT
-    lambda _ _ = error "haal-gen: undefined transition"
+import Haal.Automaton.MealyAutomaton (MealyAutomaton, mkMealyAutomatonTable)
+
+data TcpServerWindowsTransInput
+    = In_CLOSECONNECTION
+    | In_ACK_PSH_V_V_1
+    | In_SYN_ACK_V_V_0
+    | In_RST_V_V_0
+    | In_ACCEPT
+    | In_FIN_ACK_V_V_0
+    | In_LISTEN
+    | In_SYN_V_V_0
+    | In_RCV
+    | In_ACK_RST_V_V_0
+    | In_CLOSE
+    | In_SEND
+    | In_ACK_V_V_0
+    deriving (Show, Eq, Ord, Enum, Bounded)
+
+data TcpServerWindowsTransOutput
+    = Out_TIMEOUT
+    | Out_ACK_SYN_FRESH_NEXT_0
+    | Out_ACK_NEXT_NEXT_0
+    | Out_ACK_RST_ZERO_NEXT_0
+    | Out_RST_NEXT_FRESH_0
+    | Out_ACK_RST_NEXT_CURRENT_0
+    | Out_RST_NEXT_CURRENT_0
+    | Out_ACK_FIN_NEXT_CURRENT_0
+    | Out_ACK_PSH_NEXT_CURRENT_1
+    | Out_ACK_RST_NEXT_NEXT_0
+    deriving (Show, Eq, Ord, Enum, Bounded)
+
+{- Transitions (state  input -> next state / output):
+    0     In_CLOSECONNECTION  -> 0 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 0 / Out_TIMEOUT
+          In_SYN_ACK_V_V_0    -> 0 / Out_TIMEOUT
+          In_RST_V_V_0        -> 0 / Out_TIMEOUT
+          In_ACCEPT           -> 0 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 0 / Out_TIMEOUT
+          In_LISTEN           -> 1 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 0 / Out_TIMEOUT
+          In_RCV              -> 0 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 0 / Out_TIMEOUT
+          In_CLOSE            -> 2 / Out_TIMEOUT
+          In_SEND             -> 0 / Out_TIMEOUT
+          In_ACK_V_V_0        -> 0 / Out_TIMEOUT
+    1     In_CLOSECONNECTION  -> 1 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 1 / Out_TIMEOUT
+          In_SYN_ACK_V_V_0    -> 1 / Out_TIMEOUT
+          In_RST_V_V_0        -> 1 / Out_TIMEOUT
+          In_ACCEPT           -> 3 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 1 / Out_TIMEOUT
+          In_LISTEN           -> 1 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 4 / Out_ACK_SYN_FRESH_NEXT_0
+          In_RCV              -> 1 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 1 / Out_TIMEOUT
+          In_CLOSE            -> 2 / Out_TIMEOUT
+          In_SEND             -> 1 / Out_TIMEOUT
+          In_ACK_V_V_0        -> 1 / Out_TIMEOUT
+    2     In_CLOSECONNECTION  -> 2 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 2 / Out_TIMEOUT
+          In_SYN_ACK_V_V_0    -> 2 / Out_TIMEOUT
+          In_RST_V_V_0        -> 2 / Out_TIMEOUT
+          In_ACCEPT           -> 2 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 2 / Out_TIMEOUT
+          In_LISTEN           -> 2 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 2 / Out_TIMEOUT
+          In_RCV              -> 2 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 2 / Out_TIMEOUT
+          In_CLOSE            -> 2 / Out_TIMEOUT
+          In_SEND             -> 2 / Out_TIMEOUT
+          In_ACK_V_V_0        -> 2 / Out_TIMEOUT
+    3     In_CLOSECONNECTION  -> 1 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 3 / Out_TIMEOUT
+          In_SYN_ACK_V_V_0    -> 3 / Out_TIMEOUT
+          In_RST_V_V_0        -> 3 / Out_TIMEOUT
+          In_ACCEPT           -> 3 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 3 / Out_TIMEOUT
+          In_LISTEN           -> 3 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 5 / Out_ACK_SYN_FRESH_NEXT_0
+          In_RCV              -> 3 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 3 / Out_TIMEOUT
+          In_CLOSE            -> 2 / Out_TIMEOUT
+          In_SEND             -> 3 / Out_TIMEOUT
+          In_ACK_V_V_0        -> 3 / Out_TIMEOUT
+    4     In_CLOSECONNECTION  -> 4 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 6 / Out_ACK_NEXT_NEXT_0
+          In_SYN_ACK_V_V_0    -> 4 / Out_TIMEOUT
+          In_RST_V_V_0        -> 1 / Out_TIMEOUT
+          In_ACCEPT           -> 5 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 7 / Out_ACK_NEXT_NEXT_0
+          In_LISTEN           -> 4 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 1 / Out_ACK_RST_ZERO_NEXT_0
+          In_RCV              -> 4 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 1 / Out_TIMEOUT
+          In_CLOSE            -> 8 / Out_TIMEOUT
+          In_SEND             -> 4 / Out_TIMEOUT
+          In_ACK_V_V_0        -> 9 / Out_TIMEOUT
+    5     In_CLOSECONNECTION  -> 4 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 10 / Out_ACK_NEXT_NEXT_0
+          In_SYN_ACK_V_V_0    -> 5 / Out_TIMEOUT
+          In_RST_V_V_0        -> 3 / Out_TIMEOUT
+          In_ACCEPT           -> 5 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 11 / Out_ACK_NEXT_NEXT_0
+          In_LISTEN           -> 5 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 3 / Out_ACK_RST_ZERO_NEXT_0
+          In_RCV              -> 5 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 3 / Out_TIMEOUT
+          In_CLOSE            -> 8 / Out_TIMEOUT
+          In_SEND             -> 5 / Out_TIMEOUT
+          In_ACK_V_V_0        -> 12 / Out_TIMEOUT
+    6     In_CLOSECONNECTION  -> 6 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 6 / Out_ACK_NEXT_NEXT_0
+          In_SYN_ACK_V_V_0    -> 13 / Out_RST_NEXT_FRESH_0
+          In_RST_V_V_0        -> 13 / Out_TIMEOUT
+          In_ACCEPT           -> 10 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 14 / Out_ACK_NEXT_NEXT_0
+          In_LISTEN           -> 6 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 13 / Out_ACK_RST_ZERO_NEXT_0
+          In_RCV              -> 6 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 13 / Out_TIMEOUT
+          In_CLOSE            -> 2 / Out_ACK_RST_NEXT_CURRENT_0
+          In_SEND             -> 6 / Out_TIMEOUT
+          In_ACK_V_V_0        -> 6 / Out_TIMEOUT
+    7     In_CLOSECONNECTION  -> 7 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 7 / Out_TIMEOUT
+          In_SYN_ACK_V_V_0    -> 13 / Out_RST_NEXT_FRESH_0
+          In_RST_V_V_0        -> 13 / Out_TIMEOUT
+          In_ACCEPT           -> 11 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 7 / Out_TIMEOUT
+          In_LISTEN           -> 7 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 13 / Out_ACK_RST_ZERO_NEXT_0
+          In_RCV              -> 7 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 13 / Out_TIMEOUT
+          In_CLOSE            -> 2 / Out_ACK_RST_NEXT_CURRENT_0
+          In_SEND             -> 7 / Out_TIMEOUT
+          In_ACK_V_V_0        -> 7 / Out_TIMEOUT
+    8     In_CLOSECONNECTION  -> 8 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 2 / Out_RST_NEXT_CURRENT_0
+          In_SYN_ACK_V_V_0    -> 8 / Out_TIMEOUT
+          In_RST_V_V_0        -> 2 / Out_TIMEOUT
+          In_ACCEPT           -> 8 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 2 / Out_RST_NEXT_CURRENT_0
+          In_LISTEN           -> 8 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 2 / Out_ACK_RST_ZERO_NEXT_0
+          In_RCV              -> 8 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 2 / Out_TIMEOUT
+          In_CLOSE            -> 8 / Out_TIMEOUT
+          In_SEND             -> 8 / Out_TIMEOUT
+          In_ACK_V_V_0        -> 2 / Out_RST_NEXT_CURRENT_0
+    9     In_CLOSECONNECTION  -> 9 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 6 / Out_ACK_NEXT_NEXT_0
+          In_SYN_ACK_V_V_0    -> 13 / Out_RST_NEXT_FRESH_0
+          In_RST_V_V_0        -> 13 / Out_TIMEOUT
+          In_ACCEPT           -> 12 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 7 / Out_ACK_NEXT_NEXT_0
+          In_LISTEN           -> 9 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 13 / Out_ACK_RST_ZERO_NEXT_0
+          In_RCV              -> 9 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 13 / Out_TIMEOUT
+          In_CLOSE            -> 2 / Out_ACK_RST_NEXT_CURRENT_0
+          In_SEND             -> 9 / Out_TIMEOUT
+          In_ACK_V_V_0        -> 9 / Out_TIMEOUT
+    10    In_CLOSECONNECTION  -> 1 / Out_ACK_RST_NEXT_CURRENT_0
+          In_ACK_PSH_V_V_1    -> 10 / Out_ACK_NEXT_NEXT_0
+          In_SYN_ACK_V_V_0    -> 16 / Out_RST_NEXT_FRESH_0
+          In_RST_V_V_0        -> 16 / Out_TIMEOUT
+          In_ACCEPT           -> 10 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 21 / Out_ACK_NEXT_NEXT_0
+          In_LISTEN           -> 10 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 16 / Out_ACK_RST_ZERO_NEXT_0
+          In_RCV              -> 12 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 16 / Out_TIMEOUT
+          In_CLOSE            -> 22 / Out_TIMEOUT
+          In_SEND             -> 10 / Out_ACK_PSH_NEXT_CURRENT_1
+          In_ACK_V_V_0        -> 10 / Out_TIMEOUT
+    11    In_CLOSECONNECTION  -> 15 / Out_ACK_FIN_NEXT_CURRENT_0
+          In_ACK_PSH_V_V_1    -> 11 / Out_TIMEOUT
+          In_SYN_ACK_V_V_0    -> 16 / Out_RST_NEXT_FRESH_0
+          In_RST_V_V_0        -> 16 / Out_TIMEOUT
+          In_ACCEPT           -> 11 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 11 / Out_TIMEOUT
+          In_LISTEN           -> 11 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 16 / Out_ACK_RST_ZERO_NEXT_0
+          In_RCV              -> 11 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 16 / Out_TIMEOUT
+          In_CLOSE            -> 17 / Out_TIMEOUT
+          In_SEND             -> 11 / Out_ACK_PSH_NEXT_CURRENT_1
+          In_ACK_V_V_0        -> 11 / Out_TIMEOUT
+    12    In_CLOSECONNECTION  -> 18 / Out_ACK_FIN_NEXT_CURRENT_0
+          In_ACK_PSH_V_V_1    -> 10 / Out_ACK_NEXT_NEXT_0
+          In_SYN_ACK_V_V_0    -> 16 / Out_RST_NEXT_FRESH_0
+          In_RST_V_V_0        -> 16 / Out_TIMEOUT
+          In_ACCEPT           -> 12 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 11 / Out_ACK_NEXT_NEXT_0
+          In_LISTEN           -> 12 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 16 / Out_ACK_RST_ZERO_NEXT_0
+          In_RCV              -> 19 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 16 / Out_TIMEOUT
+          In_CLOSE            -> 20 / Out_TIMEOUT
+          In_SEND             -> 12 / Out_ACK_PSH_NEXT_CURRENT_1
+          In_ACK_V_V_0        -> 12 / Out_TIMEOUT
+    13    In_CLOSECONNECTION  -> 13 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 13 / Out_TIMEOUT
+          In_SYN_ACK_V_V_0    -> 13 / Out_TIMEOUT
+          In_RST_V_V_0        -> 13 / Out_TIMEOUT
+          In_ACCEPT           -> 16 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 13 / Out_TIMEOUT
+          In_LISTEN           -> 13 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 13 / Out_TIMEOUT
+          In_RCV              -> 13 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 13 / Out_TIMEOUT
+          In_CLOSE            -> 2 / Out_TIMEOUT
+          In_SEND             -> 13 / Out_TIMEOUT
+          In_ACK_V_V_0        -> 13 / Out_TIMEOUT
+    14    In_CLOSECONNECTION  -> 14 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 14 / Out_TIMEOUT
+          In_SYN_ACK_V_V_0    -> 13 / Out_RST_NEXT_FRESH_0
+          In_RST_V_V_0        -> 13 / Out_TIMEOUT
+          In_ACCEPT           -> 21 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 14 / Out_TIMEOUT
+          In_LISTEN           -> 14 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 13 / Out_ACK_RST_ZERO_NEXT_0
+          In_RCV              -> 14 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 13 / Out_TIMEOUT
+          In_CLOSE            -> 2 / Out_ACK_RST_NEXT_CURRENT_0
+          In_SEND             -> 14 / Out_TIMEOUT
+          In_ACK_V_V_0        -> 14 / Out_TIMEOUT
+    15    In_CLOSECONNECTION  -> 15 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 1 / Out_TIMEOUT
+          In_SYN_ACK_V_V_0    -> 1 / Out_RST_NEXT_FRESH_0
+          In_RST_V_V_0        -> 1 / Out_TIMEOUT
+          In_ACCEPT           -> 23 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 1 / Out_TIMEOUT
+          In_LISTEN           -> 15 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 1 / Out_ACK_RST_ZERO_NEXT_0
+          In_RCV              -> 15 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 1 / Out_TIMEOUT
+          In_CLOSE            -> 24 / Out_TIMEOUT
+          In_SEND             -> 15 / Out_TIMEOUT
+          In_ACK_V_V_0        -> 1 / Out_TIMEOUT
+    16    In_CLOSECONNECTION  -> 1 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 16 / Out_TIMEOUT
+          In_SYN_ACK_V_V_0    -> 16 / Out_TIMEOUT
+          In_RST_V_V_0        -> 16 / Out_TIMEOUT
+          In_ACCEPT           -> 16 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 16 / Out_TIMEOUT
+          In_LISTEN           -> 16 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 25 / Out_ACK_SYN_FRESH_NEXT_0
+          In_RCV              -> 16 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 16 / Out_TIMEOUT
+          In_CLOSE            -> 2 / Out_TIMEOUT
+          In_SEND             -> 16 / Out_TIMEOUT
+          In_ACK_V_V_0        -> 16 / Out_TIMEOUT
+    17    In_CLOSECONNECTION  -> 24 / Out_ACK_FIN_NEXT_CURRENT_0
+          In_ACK_PSH_V_V_1    -> 17 / Out_TIMEOUT
+          In_SYN_ACK_V_V_0    -> 2 / Out_RST_NEXT_FRESH_0
+          In_RST_V_V_0        -> 2 / Out_TIMEOUT
+          In_ACCEPT           -> 17 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 17 / Out_TIMEOUT
+          In_LISTEN           -> 17 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 2 / Out_ACK_RST_ZERO_NEXT_0
+          In_RCV              -> 17 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 2 / Out_TIMEOUT
+          In_CLOSE            -> 17 / Out_TIMEOUT
+          In_SEND             -> 17 / Out_ACK_PSH_NEXT_CURRENT_1
+          In_ACK_V_V_0        -> 17 / Out_TIMEOUT
+    18    In_CLOSECONNECTION  -> 18 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 1 / Out_ACK_RST_NEXT_NEXT_0
+          In_SYN_ACK_V_V_0    -> 1 / Out_RST_NEXT_FRESH_0
+          In_RST_V_V_0        -> 1 / Out_TIMEOUT
+          In_ACCEPT           -> 26 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 27 / Out_ACK_NEXT_NEXT_0
+          In_LISTEN           -> 18 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 1 / Out_ACK_RST_ZERO_NEXT_0
+          In_RCV              -> 18 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 1 / Out_TIMEOUT
+          In_CLOSE            -> 28 / Out_TIMEOUT
+          In_SEND             -> 18 / Out_TIMEOUT
+          In_ACK_V_V_0        -> 18 / Out_TIMEOUT
+    19    In_CLOSECONNECTION  -> 1 / Out_ACK_RST_NEXT_CURRENT_0
+          In_ACK_PSH_V_V_1    -> 12 / Out_ACK_NEXT_NEXT_0
+          In_SYN_ACK_V_V_0    -> 16 / Out_RST_NEXT_FRESH_0
+          In_RST_V_V_0        -> 16 / Out_TIMEOUT
+          In_ACCEPT           -> 19 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 11 / Out_ACK_NEXT_NEXT_0
+          In_LISTEN           -> 19 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 16 / Out_ACK_RST_ZERO_NEXT_0
+          In_RCV              -> 19 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 16 / Out_TIMEOUT
+          In_CLOSE            -> 20 / Out_TIMEOUT
+          In_SEND             -> 19 / Out_ACK_PSH_NEXT_CURRENT_1
+          In_ACK_V_V_0        -> 19 / Out_TIMEOUT
+    20    In_CLOSECONNECTION  -> 28 / Out_ACK_FIN_NEXT_CURRENT_0
+          In_ACK_PSH_V_V_1    -> 22 / Out_ACK_NEXT_NEXT_0
+          In_SYN_ACK_V_V_0    -> 2 / Out_RST_NEXT_FRESH_0
+          In_RST_V_V_0        -> 2 / Out_TIMEOUT
+          In_ACCEPT           -> 20 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 17 / Out_ACK_NEXT_NEXT_0
+          In_LISTEN           -> 20 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 2 / Out_ACK_RST_ZERO_NEXT_0
+          In_RCV              -> 29 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 2 / Out_TIMEOUT
+          In_CLOSE            -> 20 / Out_TIMEOUT
+          In_SEND             -> 20 / Out_ACK_PSH_NEXT_CURRENT_1
+          In_ACK_V_V_0        -> 20 / Out_TIMEOUT
+    21    In_CLOSECONNECTION  -> 1 / Out_ACK_RST_NEXT_CURRENT_0
+          In_ACK_PSH_V_V_1    -> 21 / Out_TIMEOUT
+          In_SYN_ACK_V_V_0    -> 16 / Out_RST_NEXT_FRESH_0
+          In_RST_V_V_0        -> 16 / Out_TIMEOUT
+          In_ACCEPT           -> 21 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 21 / Out_TIMEOUT
+          In_LISTEN           -> 21 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 16 / Out_ACK_RST_ZERO_NEXT_0
+          In_RCV              -> 11 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 16 / Out_TIMEOUT
+          In_CLOSE            -> 30 / Out_TIMEOUT
+          In_SEND             -> 21 / Out_ACK_PSH_NEXT_CURRENT_1
+          In_ACK_V_V_0        -> 21 / Out_TIMEOUT
+    22    In_CLOSECONNECTION  -> 2 / Out_ACK_RST_NEXT_CURRENT_0
+          In_ACK_PSH_V_V_1    -> 22 / Out_ACK_NEXT_NEXT_0
+          In_SYN_ACK_V_V_0    -> 2 / Out_RST_NEXT_FRESH_0
+          In_RST_V_V_0        -> 2 / Out_TIMEOUT
+          In_ACCEPT           -> 22 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 30 / Out_ACK_NEXT_NEXT_0
+          In_LISTEN           -> 22 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 2 / Out_ACK_RST_ZERO_NEXT_0
+          In_RCV              -> 20 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 2 / Out_TIMEOUT
+          In_CLOSE            -> 22 / Out_TIMEOUT
+          In_SEND             -> 22 / Out_ACK_PSH_NEXT_CURRENT_1
+          In_ACK_V_V_0        -> 22 / Out_TIMEOUT
+    23    In_CLOSECONNECTION  -> 15 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 3 / Out_TIMEOUT
+          In_SYN_ACK_V_V_0    -> 3 / Out_RST_NEXT_FRESH_0
+          In_RST_V_V_0        -> 3 / Out_TIMEOUT
+          In_ACCEPT           -> 23 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 3 / Out_TIMEOUT
+          In_LISTEN           -> 23 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 3 / Out_ACK_RST_ZERO_NEXT_0
+          In_RCV              -> 23 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 3 / Out_TIMEOUT
+          In_CLOSE            -> 24 / Out_TIMEOUT
+          In_SEND             -> 23 / Out_TIMEOUT
+          In_ACK_V_V_0        -> 3 / Out_TIMEOUT
+    24    In_CLOSECONNECTION  -> 24 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 2 / Out_TIMEOUT
+          In_SYN_ACK_V_V_0    -> 2 / Out_RST_NEXT_FRESH_0
+          In_RST_V_V_0        -> 2 / Out_TIMEOUT
+          In_ACCEPT           -> 24 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 2 / Out_TIMEOUT
+          In_LISTEN           -> 24 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 2 / Out_ACK_RST_ZERO_NEXT_0
+          In_RCV              -> 24 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 2 / Out_TIMEOUT
+          In_CLOSE            -> 24 / Out_TIMEOUT
+          In_SEND             -> 24 / Out_TIMEOUT
+          In_ACK_V_V_0        -> 2 / Out_TIMEOUT
+    25    In_CLOSECONNECTION  -> 4 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 31 / Out_ACK_NEXT_NEXT_0
+          In_SYN_ACK_V_V_0    -> 25 / Out_TIMEOUT
+          In_RST_V_V_0        -> 16 / Out_TIMEOUT
+          In_ACCEPT           -> 25 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 32 / Out_ACK_NEXT_NEXT_0
+          In_LISTEN           -> 25 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 16 / Out_ACK_RST_ZERO_NEXT_0
+          In_RCV              -> 25 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 16 / Out_TIMEOUT
+          In_CLOSE            -> 8 / Out_TIMEOUT
+          In_SEND             -> 25 / Out_TIMEOUT
+          In_ACK_V_V_0        -> 33 / Out_TIMEOUT
+    26    In_CLOSECONNECTION  -> 18 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 3 / Out_ACK_RST_NEXT_NEXT_0
+          In_SYN_ACK_V_V_0    -> 3 / Out_RST_NEXT_FRESH_0
+          In_RST_V_V_0        -> 3 / Out_TIMEOUT
+          In_ACCEPT           -> 26 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 35 / Out_ACK_NEXT_NEXT_0
+          In_LISTEN           -> 26 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 3 / Out_ACK_RST_ZERO_NEXT_0
+          In_RCV              -> 26 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 3 / Out_TIMEOUT
+          In_CLOSE            -> 28 / Out_TIMEOUT
+          In_SEND             -> 26 / Out_TIMEOUT
+          In_ACK_V_V_0        -> 26 / Out_TIMEOUT
+    27    In_CLOSECONNECTION  -> 27 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 27 / Out_TIMEOUT
+          In_SYN_ACK_V_V_0    -> 27 / Out_RST_NEXT_FRESH_0
+          In_RST_V_V_0        -> 1 / Out_TIMEOUT
+          In_ACCEPT           -> 35 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 27 / Out_TIMEOUT
+          In_LISTEN           -> 27 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 4 / Out_ACK_SYN_FRESH_NEXT_0
+          In_RCV              -> 27 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 1 / Out_TIMEOUT
+          In_CLOSE            -> 34 / Out_TIMEOUT
+          In_SEND             -> 27 / Out_TIMEOUT
+          In_ACK_V_V_0        -> 27 / Out_TIMEOUT
+    28    In_CLOSECONNECTION  -> 28 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 2 / Out_ACK_RST_NEXT_NEXT_0
+          In_SYN_ACK_V_V_0    -> 2 / Out_RST_NEXT_FRESH_0
+          In_RST_V_V_0        -> 2 / Out_TIMEOUT
+          In_ACCEPT           -> 28 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 34 / Out_ACK_NEXT_NEXT_0
+          In_LISTEN           -> 28 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 2 / Out_ACK_RST_ZERO_NEXT_0
+          In_RCV              -> 28 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 2 / Out_TIMEOUT
+          In_CLOSE            -> 28 / Out_TIMEOUT
+          In_SEND             -> 28 / Out_TIMEOUT
+          In_ACK_V_V_0        -> 28 / Out_TIMEOUT
+    29    In_CLOSECONNECTION  -> 2 / Out_ACK_RST_NEXT_CURRENT_0
+          In_ACK_PSH_V_V_1    -> 20 / Out_ACK_NEXT_NEXT_0
+          In_SYN_ACK_V_V_0    -> 2 / Out_RST_NEXT_FRESH_0
+          In_RST_V_V_0        -> 2 / Out_TIMEOUT
+          In_ACCEPT           -> 29 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 17 / Out_ACK_NEXT_NEXT_0
+          In_LISTEN           -> 29 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 2 / Out_ACK_RST_ZERO_NEXT_0
+          In_RCV              -> 29 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 2 / Out_TIMEOUT
+          In_CLOSE            -> 20 / Out_TIMEOUT
+          In_SEND             -> 29 / Out_ACK_PSH_NEXT_CURRENT_1
+          In_ACK_V_V_0        -> 29 / Out_TIMEOUT
+    30    In_CLOSECONNECTION  -> 2 / Out_ACK_RST_NEXT_CURRENT_0
+          In_ACK_PSH_V_V_1    -> 30 / Out_TIMEOUT
+          In_SYN_ACK_V_V_0    -> 2 / Out_RST_NEXT_FRESH_0
+          In_RST_V_V_0        -> 2 / Out_TIMEOUT
+          In_ACCEPT           -> 30 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 30 / Out_TIMEOUT
+          In_LISTEN           -> 30 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 2 / Out_ACK_RST_ZERO_NEXT_0
+          In_RCV              -> 17 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 2 / Out_TIMEOUT
+          In_CLOSE            -> 30 / Out_TIMEOUT
+          In_SEND             -> 30 / Out_ACK_PSH_NEXT_CURRENT_1
+          In_ACK_V_V_0        -> 30 / Out_TIMEOUT
+    31    In_CLOSECONNECTION  -> 6 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 31 / Out_ACK_NEXT_NEXT_0
+          In_SYN_ACK_V_V_0    -> 36 / Out_RST_NEXT_FRESH_0
+          In_RST_V_V_0        -> 36 / Out_TIMEOUT
+          In_ACCEPT           -> 31 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 37 / Out_ACK_NEXT_NEXT_0
+          In_LISTEN           -> 31 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 36 / Out_ACK_RST_ZERO_NEXT_0
+          In_RCV              -> 31 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 36 / Out_TIMEOUT
+          In_CLOSE            -> 2 / Out_ACK_RST_NEXT_CURRENT_0
+          In_SEND             -> 31 / Out_TIMEOUT
+          In_ACK_V_V_0        -> 31 / Out_TIMEOUT
+    32    In_CLOSECONNECTION  -> 7 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 32 / Out_TIMEOUT
+          In_SYN_ACK_V_V_0    -> 36 / Out_RST_NEXT_FRESH_0
+          In_RST_V_V_0        -> 36 / Out_TIMEOUT
+          In_ACCEPT           -> 32 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 32 / Out_TIMEOUT
+          In_LISTEN           -> 32 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 36 / Out_ACK_RST_ZERO_NEXT_0
+          In_RCV              -> 32 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 36 / Out_TIMEOUT
+          In_CLOSE            -> 2 / Out_ACK_RST_NEXT_CURRENT_0
+          In_SEND             -> 32 / Out_TIMEOUT
+          In_ACK_V_V_0        -> 32 / Out_TIMEOUT
+    33    In_CLOSECONNECTION  -> 9 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 31 / Out_ACK_NEXT_NEXT_0
+          In_SYN_ACK_V_V_0    -> 36 / Out_RST_NEXT_FRESH_0
+          In_RST_V_V_0        -> 36 / Out_TIMEOUT
+          In_ACCEPT           -> 33 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 32 / Out_ACK_NEXT_NEXT_0
+          In_LISTEN           -> 33 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 36 / Out_ACK_RST_ZERO_NEXT_0
+          In_RCV              -> 33 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 36 / Out_TIMEOUT
+          In_CLOSE            -> 2 / Out_ACK_RST_NEXT_CURRENT_0
+          In_SEND             -> 33 / Out_TIMEOUT
+          In_ACK_V_V_0        -> 33 / Out_TIMEOUT
+    34    In_CLOSECONNECTION  -> 34 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 34 / Out_TIMEOUT
+          In_SYN_ACK_V_V_0    -> 34 / Out_RST_NEXT_FRESH_0
+          In_RST_V_V_0        -> 2 / Out_TIMEOUT
+          In_ACCEPT           -> 34 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 34 / Out_TIMEOUT
+          In_LISTEN           -> 34 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 34 / Out_TIMEOUT
+          In_RCV              -> 34 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 2 / Out_TIMEOUT
+          In_CLOSE            -> 34 / Out_TIMEOUT
+          In_SEND             -> 34 / Out_TIMEOUT
+          In_ACK_V_V_0        -> 34 / Out_TIMEOUT
+    35    In_CLOSECONNECTION  -> 27 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 35 / Out_TIMEOUT
+          In_SYN_ACK_V_V_0    -> 35 / Out_RST_NEXT_FRESH_0
+          In_RST_V_V_0        -> 3 / Out_TIMEOUT
+          In_ACCEPT           -> 35 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 35 / Out_TIMEOUT
+          In_LISTEN           -> 35 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 5 / Out_ACK_SYN_FRESH_NEXT_0
+          In_RCV              -> 35 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 3 / Out_TIMEOUT
+          In_CLOSE            -> 34 / Out_TIMEOUT
+          In_SEND             -> 35 / Out_TIMEOUT
+          In_ACK_V_V_0        -> 35 / Out_TIMEOUT
+    36    In_CLOSECONNECTION  -> 13 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 36 / Out_TIMEOUT
+          In_SYN_ACK_V_V_0    -> 36 / Out_TIMEOUT
+          In_RST_V_V_0        -> 36 / Out_TIMEOUT
+          In_ACCEPT           -> 36 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 36 / Out_TIMEOUT
+          In_LISTEN           -> 36 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 36 / Out_TIMEOUT
+          In_RCV              -> 36 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 36 / Out_TIMEOUT
+          In_CLOSE            -> 2 / Out_TIMEOUT
+          In_SEND             -> 36 / Out_TIMEOUT
+          In_ACK_V_V_0        -> 36 / Out_TIMEOUT
+    37    In_CLOSECONNECTION  -> 14 / Out_TIMEOUT
+          In_ACK_PSH_V_V_1    -> 37 / Out_TIMEOUT
+          In_SYN_ACK_V_V_0    -> 36 / Out_RST_NEXT_FRESH_0
+          In_RST_V_V_0        -> 36 / Out_TIMEOUT
+          In_ACCEPT           -> 37 / Out_TIMEOUT
+          In_FIN_ACK_V_V_0    -> 37 / Out_TIMEOUT
+          In_LISTEN           -> 37 / Out_TIMEOUT
+          In_SYN_V_V_0        -> 36 / Out_ACK_RST_ZERO_NEXT_0
+          In_RCV              -> 37 / Out_TIMEOUT
+          In_ACK_RST_V_V_0    -> 36 / Out_TIMEOUT
+          In_CLOSE            -> 2 / Out_ACK_RST_NEXT_CURRENT_0
+          In_SEND             -> 37 / Out_TIMEOUT
+          In_ACK_V_V_0        -> 37 / Out_TIMEOUT
+-}
+tcpServerWindowsTrans :: MealyAutomaton Int TcpServerWindowsTransInput TcpServerWindowsTransOutput
+tcpServerWindowsTrans =
+    case mkMealyAutomatonTable 38 0 deltaTable lambdaTable of
+        Right m -> m
+        Left err -> error ("haal-gen: invalid transition table: " ++ err)
+  where
+    deltaTable =
+        "\0\0\0\0\0\0\1\0\0\0\2\0\0\
+        \\1\1\1\1\3\1\1\4\1\1\2\1\1\
+        \\2\2\2\2\2\2\2\2\2\2\2\2\2\
+        \\1\3\3\3\3\3\3\5\3\3\2\3\3\
+        \\4\6\4\1\5\7\4\1\4\1\8\4\9\
+        \\4\10\5\3\5\11\5\3\5\3\8\5\12\
+        \\6\6\13\13\10\14\6\13\6\13\2\6\6\
+        \\7\7\13\13\11\7\7\13\7\13\2\7\7\
+        \\8\2\8\2\8\2\8\2\8\2\8\8\2\
+        \\9\6\13\13\12\7\9\13\9\13\2\9\9\
+        \\1\10\16\16\10\21\10\16\12\16\22\10\10\
+        \\15\11\16\16\11\11\11\16\11\16\17\11\11\
+        \\18\10\16\16\12\11\12\16\19\16\20\12\12\
+        \\13\13\13\13\16\13\13\13\13\13\2\13\13\
+        \\14\14\13\13\21\14\14\13\14\13\2\14\14\
+        \\15\1\1\1\23\1\15\1\15\1\24\15\1\
+        \\1\16\16\16\16\16\16\25\16\16\2\16\16\
+        \\24\17\2\2\17\17\17\2\17\2\17\17\17\
+        \\18\1\1\1\26\27\18\1\18\1\28\18\18\
+        \\1\12\16\16\19\11\19\16\19\16\20\19\19\
+        \\28\22\2\2\20\17\20\2\29\2\20\20\20\
+        \\1\21\16\16\21\21\21\16\11\16\30\21\21\
+        \\2\22\2\2\22\30\22\2\20\2\22\22\22\
+        \\15\3\3\3\23\3\23\3\23\3\24\23\3\
+        \\24\2\2\2\24\2\24\2\24\2\24\24\2\
+        \\4\31\25\16\25\32\25\16\25\16\8\25\33\
+        \\18\3\3\3\26\35\26\3\26\3\28\26\26\
+        \\27\27\27\1\35\27\27\4\27\1\34\27\27\
+        \\28\2\2\2\28\34\28\2\28\2\28\28\28\
+        \\2\20\2\2\29\17\29\2\29\2\20\29\29\
+        \\2\30\2\2\30\30\30\2\17\2\30\30\30\
+        \\6\31\36\36\31\37\31\36\31\36\2\31\31\
+        \\7\32\36\36\32\32\32\36\32\36\2\32\32\
+        \\9\31\36\36\33\32\33\36\33\36\2\33\33\
+        \\34\34\34\2\34\34\34\34\34\2\34\34\34\
+        \\27\35\35\3\35\35\35\5\35\3\34\35\35\
+        \\13\36\36\36\36\36\36\36\36\36\2\36\36\
+        \\14\37\36\36\37\37\37\36\37\36\2\37\37"
+    lambdaTable =
+        "\0\0\0\0\0\0\0\0\0\0\0\0\0\
+        \\0\0\0\0\0\0\0\1\0\0\0\0\0\
+        \\0\0\0\0\0\0\0\0\0\0\0\0\0\
+        \\0\0\0\0\0\0\0\1\0\0\0\0\0\
+        \\0\2\0\0\0\2\0\3\0\0\0\0\0\
+        \\0\2\0\0\0\2\0\3\0\0\0\0\0\
+        \\0\2\4\0\0\2\0\3\0\0\5\0\0\
+        \\0\0\4\0\0\0\0\3\0\0\5\0\0\
+        \\0\6\0\0\0\6\0\3\0\0\0\0\6\
+        \\0\2\4\0\0\2\0\3\0\0\5\0\0\
+        \\5\2\4\0\0\2\0\3\0\0\0\8\0\
+        \\7\0\4\0\0\0\0\3\0\0\0\8\0\
+        \\7\2\4\0\0\2\0\3\0\0\0\8\0\
+        \\0\0\0\0\0\0\0\0\0\0\0\0\0\
+        \\0\0\4\0\0\0\0\3\0\0\5\0\0\
+        \\0\0\4\0\0\0\0\3\0\0\0\0\0\
+        \\0\0\0\0\0\0\0\1\0\0\0\0\0\
+        \\7\0\4\0\0\0\0\3\0\0\0\8\0\
+        \\0\9\4\0\0\2\0\3\0\0\0\0\0\
+        \\5\2\4\0\0\2\0\3\0\0\0\8\0\
+        \\7\2\4\0\0\2\0\3\0\0\0\8\0\
+        \\5\0\4\0\0\0\0\3\0\0\0\8\0\
+        \\5\2\4\0\0\2\0\3\0\0\0\8\0\
+        \\0\0\4\0\0\0\0\3\0\0\0\0\0\
+        \\0\0\4\0\0\0\0\3\0\0\0\0\0\
+        \\0\2\0\0\0\2\0\3\0\0\0\0\0\
+        \\0\9\4\0\0\2\0\3\0\0\0\0\0\
+        \\0\0\4\0\0\0\0\1\0\0\0\0\0\
+        \\0\9\4\0\0\2\0\3\0\0\0\0\0\
+        \\5\2\4\0\0\2\0\3\0\0\0\8\0\
+        \\5\0\4\0\0\0\0\3\0\0\0\8\0\
+        \\0\2\4\0\0\2\0\3\0\0\5\0\0\
+        \\0\0\4\0\0\0\0\3\0\0\5\0\0\
+        \\0\2\4\0\0\2\0\3\0\0\5\0\0\
+        \\0\0\4\0\0\0\0\0\0\0\0\0\0\
+        \\0\0\4\0\0\0\0\1\0\0\0\0\0\
+        \\0\0\0\0\0\0\0\0\0\0\0\0\0\
+        \\0\0\4\0\0\0\0\3\0\0\5\0\0"
diff --git a/src/Haal/Models/TLS/GnuTLSV3V3V12ServerRegular.hs b/src/Haal/Models/TLS/GnuTLSV3V3V12ServerRegular.hs
--- a/src/Haal/Models/TLS/GnuTLSV3V3V12ServerRegular.hs
+++ b/src/Haal/Models/TLS/GnuTLSV3V3V12ServerRegular.hs
@@ -5,8 +5,7 @@
     , gnuTLSV3V3V12ServerRegular
     ) where
 
-import qualified Data.Set as Set
-import Haal.Automaton.MealyAutomaton (MealyAutomaton, mkMealyAutomaton)
+import Haal.Automaton.MealyAutomaton (MealyAutomaton, mkMealyAutomatonTable)
 
 data GnuTLSV3V3V12ServerRegularInput
     = In_ApplicationData
@@ -32,120 +31,83 @@
     | Out_ConnectionClosed
     deriving (Show, Eq, Ord, Enum, Bounded)
 
+{- Transitions (state  input -> next state / output):
+    0     In_ApplicationData       -> 1 / Out_Alert_Fatal__Unexpected_message____ConnectionClosed
+          In_ApplicationDataEmpty  -> 0 / Out_Empty
+          In_ChangeCipherSpec      -> 1 / Out_Alert_Fatal__Unexpected_message____ConnectionClosed
+          In_ClientHelloRSA        -> 2 / Out_ServerHello_Certificate___CertificateRequest___ServerHelloDone
+          In_ClientKeyExchange     -> 1 / Out_Alert_Fatal__Unexpected_message____ConnectionClosed
+          In_EmptyCertificate      -> 1 / Out_Alert_Fatal__Unexpected_message____ConnectionClosed
+          In_Finished              -> 1 / Out_Alert_Fatal__Unexpected_message____ConnectionClosed
+          In_HeartbeatRequest      -> 1 / Out_Alert_Fatal__Unexpected_message____ConnectionClosed
+    1     In_ApplicationData       -> 1 / Out_ConnectionClosed
+          In_ApplicationDataEmpty  -> 1 / Out_ConnectionClosed
+          In_ChangeCipherSpec      -> 1 / Out_ConnectionClosed
+          In_ClientHelloRSA        -> 1 / Out_ConnectionClosed
+          In_ClientKeyExchange     -> 1 / Out_ConnectionClosed
+          In_EmptyCertificate      -> 1 / Out_ConnectionClosed
+          In_Finished              -> 1 / Out_ConnectionClosed
+          In_HeartbeatRequest      -> 1 / Out_ConnectionClosed
+    2     In_ApplicationData       -> 1 / Out_Alert_Fatal__Unexpected_message____ConnectionClosed
+          In_ApplicationDataEmpty  -> 2 / Out_Empty
+          In_ChangeCipherSpec      -> 1 / Out_Alert_Fatal__Unexpected_message____ConnectionClosed
+          In_ClientHelloRSA        -> 1 / Out_Alert_Fatal__Unexpected_message____ConnectionClosed
+          In_ClientKeyExchange     -> 6 / Out_Empty
+          In_EmptyCertificate      -> 5 / Out_Empty
+          In_Finished              -> 1 / Out_Alert_Fatal__Unexpected_message____ConnectionClosed
+          In_HeartbeatRequest      -> 1 / Out_Alert_Fatal__Unexpected_message____ConnectionClosed
+    3     In_ApplicationData       -> 1 / Out_Alert_Fatal__Unexpected_message____ConnectionClosed
+          In_ApplicationDataEmpty  -> 3 / Out_Empty
+          In_ChangeCipherSpec      -> 1 / Out_Alert_Fatal__Unexpected_message____ConnectionClosed
+          In_ClientHelloRSA        -> 1 / Out_Alert_Fatal__Unexpected_message____ConnectionClosed
+          In_ClientKeyExchange     -> 1 / Out_Alert_Fatal__Unexpected_message____ConnectionClosed
+          In_EmptyCertificate      -> 1 / Out_Alert_Fatal__Unexpected_message____ConnectionClosed
+          In_Finished              -> 4 / Out_ChangeCipherSpec___Finished
+          In_HeartbeatRequest      -> 1 / Out_Alert_Fatal__Unexpected_message____ConnectionClosed
+    4     In_ApplicationData       -> 1 / Out_ApplicationData___Alert_Warning__Close_notify____ConnectionClosed
+          In_ApplicationDataEmpty  -> 4 / Out_Empty
+          In_ChangeCipherSpec      -> 1 / Out_Alert_Warning__Close_notify____ConnectionClosed
+          In_ClientHelloRSA        -> 1 / Out_Alert_Fatal__Handshake_failure____ConnectionClosed
+          In_ClientKeyExchange     -> 1 / Out_Alert_Warning__Close_notify____ConnectionClosed
+          In_EmptyCertificate      -> 1 / Out_Alert_Warning__Close_notify____ConnectionClosed
+          In_Finished              -> 1 / Out_Alert_Warning__Close_notify____ConnectionClosed
+          In_HeartbeatRequest      -> 4 / Out_HeartbeatResponse
+    5     In_ApplicationData       -> 1 / Out_Alert_Fatal__Unexpected_message____ConnectionClosed
+          In_ApplicationDataEmpty  -> 5 / Out_Empty
+          In_ChangeCipherSpec      -> 1 / Out_Alert_Fatal__Unexpected_message____ConnectionClosed
+          In_ClientHelloRSA        -> 1 / Out_Alert_Fatal__Unexpected_message____ConnectionClosed
+          In_ClientKeyExchange     -> 6 / Out_Empty
+          In_EmptyCertificate      -> 1 / Out_Alert_Fatal__Unexpected_message____ConnectionClosed
+          In_Finished              -> 1 / Out_Alert_Fatal__Unexpected_message____ConnectionClosed
+          In_HeartbeatRequest      -> 1 / Out_Alert_Fatal__Unexpected_message____ConnectionClosed
+    6     In_ApplicationData       -> 1 / Out_Alert_Fatal__Unexpected_message____ConnectionClosed
+          In_ApplicationDataEmpty  -> 6 / Out_Empty
+          In_ChangeCipherSpec      -> 3 / Out_Empty
+          In_ClientHelloRSA        -> 1 / Out_Alert_Fatal__Internal_error____ConnectionClosed
+          In_ClientKeyExchange     -> 1 / Out_Alert_Fatal__Unexpected_message____ConnectionClosed
+          In_EmptyCertificate      -> 1 / Out_Alert_Fatal__Unexpected_message____ConnectionClosed
+          In_Finished              -> 1 / Out_Alert_Fatal__Unexpected_message____ConnectionClosed
+          In_HeartbeatRequest      -> 1 / Out_Alert_Fatal__Unexpected_message____ConnectionClosed
+-}
 gnuTLSV3V3V12ServerRegular :: MealyAutomaton Int GnuTLSV3V3V12ServerRegularInput GnuTLSV3V3V12ServerRegularOutput
-gnuTLSV3V3V12ServerRegular = mkMealyAutomaton delta lambda (Set.fromList [0..6]) 0
+gnuTLSV3V3V12ServerRegular =
+    case mkMealyAutomatonTable 7 0 deltaTable lambdaTable of
+        Right m -> m
+        Left err -> error ("haal-gen: invalid transition table: " ++ err)
   where
-    delta 0 In_ApplicationData = 1
-    delta 0 In_ApplicationDataEmpty = 0
-    delta 0 In_ChangeCipherSpec = 1
-    delta 0 In_ClientHelloRSA = 2
-    delta 0 In_ClientKeyExchange = 1
-    delta 0 In_EmptyCertificate = 1
-    delta 0 In_Finished = 1
-    delta 0 In_HeartbeatRequest = 1
-    delta 3 In_ApplicationData = 1
-    delta 3 In_ApplicationDataEmpty = 3
-    delta 3 In_ChangeCipherSpec = 1
-    delta 3 In_ClientHelloRSA = 1
-    delta 3 In_ClientKeyExchange = 1
-    delta 3 In_EmptyCertificate = 1
-    delta 3 In_Finished = 4
-    delta 3 In_HeartbeatRequest = 1
-    delta 5 In_ApplicationData = 1
-    delta 5 In_ApplicationDataEmpty = 5
-    delta 5 In_ChangeCipherSpec = 1
-    delta 5 In_ClientHelloRSA = 1
-    delta 5 In_ClientKeyExchange = 6
-    delta 5 In_EmptyCertificate = 1
-    delta 5 In_Finished = 1
-    delta 5 In_HeartbeatRequest = 1
-    delta 2 In_ApplicationData = 1
-    delta 2 In_ApplicationDataEmpty = 2
-    delta 2 In_ChangeCipherSpec = 1
-    delta 2 In_ClientHelloRSA = 1
-    delta 2 In_ClientKeyExchange = 6
-    delta 2 In_EmptyCertificate = 5
-    delta 2 In_Finished = 1
-    delta 2 In_HeartbeatRequest = 1
-    delta 6 In_ApplicationData = 1
-    delta 6 In_ApplicationDataEmpty = 6
-    delta 6 In_ChangeCipherSpec = 3
-    delta 6 In_ClientHelloRSA = 1
-    delta 6 In_ClientKeyExchange = 1
-    delta 6 In_EmptyCertificate = 1
-    delta 6 In_Finished = 1
-    delta 6 In_HeartbeatRequest = 1
-    delta 4 In_ApplicationData = 1
-    delta 4 In_ApplicationDataEmpty = 4
-    delta 4 In_ChangeCipherSpec = 1
-    delta 4 In_ClientHelloRSA = 1
-    delta 4 In_ClientKeyExchange = 1
-    delta 4 In_EmptyCertificate = 1
-    delta 4 In_Finished = 1
-    delta 4 In_HeartbeatRequest = 4
-    delta 1 In_ApplicationData = 1
-    delta 1 In_ApplicationDataEmpty = 1
-    delta 1 In_ChangeCipherSpec = 1
-    delta 1 In_ClientHelloRSA = 1
-    delta 1 In_ClientKeyExchange = 1
-    delta 1 In_EmptyCertificate = 1
-    delta 1 In_Finished = 1
-    delta 1 In_HeartbeatRequest = 1
-    delta _ _ = error "haal-gen: undefined transition"
-    lambda 0 In_ApplicationData = Out_Alert_Fatal__Unexpected_message____ConnectionClosed
-    lambda 0 In_ApplicationDataEmpty = Out_Empty
-    lambda 0 In_ChangeCipherSpec = Out_Alert_Fatal__Unexpected_message____ConnectionClosed
-    lambda 0 In_ClientHelloRSA = Out_ServerHello_Certificate___CertificateRequest___ServerHelloDone
-    lambda 0 In_ClientKeyExchange = Out_Alert_Fatal__Unexpected_message____ConnectionClosed
-    lambda 0 In_EmptyCertificate = Out_Alert_Fatal__Unexpected_message____ConnectionClosed
-    lambda 0 In_Finished = Out_Alert_Fatal__Unexpected_message____ConnectionClosed
-    lambda 0 In_HeartbeatRequest = Out_Alert_Fatal__Unexpected_message____ConnectionClosed
-    lambda 3 In_ApplicationData = Out_Alert_Fatal__Unexpected_message____ConnectionClosed
-    lambda 3 In_ApplicationDataEmpty = Out_Empty
-    lambda 3 In_ChangeCipherSpec = Out_Alert_Fatal__Unexpected_message____ConnectionClosed
-    lambda 3 In_ClientHelloRSA = Out_Alert_Fatal__Unexpected_message____ConnectionClosed
-    lambda 3 In_ClientKeyExchange = Out_Alert_Fatal__Unexpected_message____ConnectionClosed
-    lambda 3 In_EmptyCertificate = Out_Alert_Fatal__Unexpected_message____ConnectionClosed
-    lambda 3 In_Finished = Out_ChangeCipherSpec___Finished
-    lambda 3 In_HeartbeatRequest = Out_Alert_Fatal__Unexpected_message____ConnectionClosed
-    lambda 5 In_ApplicationData = Out_Alert_Fatal__Unexpected_message____ConnectionClosed
-    lambda 5 In_ApplicationDataEmpty = Out_Empty
-    lambda 5 In_ChangeCipherSpec = Out_Alert_Fatal__Unexpected_message____ConnectionClosed
-    lambda 5 In_ClientHelloRSA = Out_Alert_Fatal__Unexpected_message____ConnectionClosed
-    lambda 5 In_ClientKeyExchange = Out_Empty
-    lambda 5 In_EmptyCertificate = Out_Alert_Fatal__Unexpected_message____ConnectionClosed
-    lambda 5 In_Finished = Out_Alert_Fatal__Unexpected_message____ConnectionClosed
-    lambda 5 In_HeartbeatRequest = Out_Alert_Fatal__Unexpected_message____ConnectionClosed
-    lambda 2 In_ApplicationData = Out_Alert_Fatal__Unexpected_message____ConnectionClosed
-    lambda 2 In_ApplicationDataEmpty = Out_Empty
-    lambda 2 In_ChangeCipherSpec = Out_Alert_Fatal__Unexpected_message____ConnectionClosed
-    lambda 2 In_ClientHelloRSA = Out_Alert_Fatal__Unexpected_message____ConnectionClosed
-    lambda 2 In_ClientKeyExchange = Out_Empty
-    lambda 2 In_EmptyCertificate = Out_Empty
-    lambda 2 In_Finished = Out_Alert_Fatal__Unexpected_message____ConnectionClosed
-    lambda 2 In_HeartbeatRequest = Out_Alert_Fatal__Unexpected_message____ConnectionClosed
-    lambda 6 In_ApplicationData = Out_Alert_Fatal__Unexpected_message____ConnectionClosed
-    lambda 6 In_ApplicationDataEmpty = Out_Empty
-    lambda 6 In_ChangeCipherSpec = Out_Empty
-    lambda 6 In_ClientHelloRSA = Out_Alert_Fatal__Internal_error____ConnectionClosed
-    lambda 6 In_ClientKeyExchange = Out_Alert_Fatal__Unexpected_message____ConnectionClosed
-    lambda 6 In_EmptyCertificate = Out_Alert_Fatal__Unexpected_message____ConnectionClosed
-    lambda 6 In_Finished = Out_Alert_Fatal__Unexpected_message____ConnectionClosed
-    lambda 6 In_HeartbeatRequest = Out_Alert_Fatal__Unexpected_message____ConnectionClosed
-    lambda 4 In_ApplicationData = Out_ApplicationData___Alert_Warning__Close_notify____ConnectionClosed
-    lambda 4 In_ApplicationDataEmpty = Out_Empty
-    lambda 4 In_ChangeCipherSpec = Out_Alert_Warning__Close_notify____ConnectionClosed
-    lambda 4 In_ClientHelloRSA = Out_Alert_Fatal__Handshake_failure____ConnectionClosed
-    lambda 4 In_ClientKeyExchange = Out_Alert_Warning__Close_notify____ConnectionClosed
-    lambda 4 In_EmptyCertificate = Out_Alert_Warning__Close_notify____ConnectionClosed
-    lambda 4 In_Finished = Out_Alert_Warning__Close_notify____ConnectionClosed
-    lambda 4 In_HeartbeatRequest = Out_HeartbeatResponse
-    lambda 1 In_ApplicationData = Out_ConnectionClosed
-    lambda 1 In_ApplicationDataEmpty = Out_ConnectionClosed
-    lambda 1 In_ChangeCipherSpec = Out_ConnectionClosed
-    lambda 1 In_ClientHelloRSA = Out_ConnectionClosed
-    lambda 1 In_ClientKeyExchange = Out_ConnectionClosed
-    lambda 1 In_EmptyCertificate = Out_ConnectionClosed
-    lambda 1 In_Finished = Out_ConnectionClosed
-    lambda 1 In_HeartbeatRequest = Out_ConnectionClosed
-    lambda _ _ = error "haal-gen: undefined transition"
+    deltaTable =
+        "\1\0\1\2\1\1\1\1\
+        \\1\1\1\1\1\1\1\1\
+        \\1\2\1\1\6\5\1\1\
+        \\1\3\1\1\1\1\4\1\
+        \\1\4\1\1\1\1\1\4\
+        \\1\5\1\1\6\1\1\1\
+        \\1\6\3\1\1\1\1\1"
+    lambdaTable =
+        "\0\1\0\2\0\0\0\0\
+        \\9\9\9\9\9\9\9\9\
+        \\0\1\0\0\1\1\0\0\
+        \\0\1\0\0\0\0\3\0\
+        \\5\1\6\7\6\6\6\8\
+        \\0\1\0\0\1\0\0\0\
+        \\0\1\1\4\0\0\0\0"
diff --git a/src/Haal/Models/TLS/MiTLSV0V1V3ServerRegular.hs b/src/Haal/Models/TLS/MiTLSV0V1V3ServerRegular.hs
--- a/src/Haal/Models/TLS/MiTLSV0V1V3ServerRegular.hs
+++ b/src/Haal/Models/TLS/MiTLSV0V1V3ServerRegular.hs
@@ -5,8 +5,7 @@
     , miTLSV0V1V3ServerRegular
     ) where
 
-import qualified Data.Set as Set
-import Haal.Automaton.MealyAutomaton (MealyAutomaton, mkMealyAutomaton)
+import Haal.Automaton.MealyAutomaton (MealyAutomaton, mkMealyAutomatonTable)
 
 data MiTLSV0V1V3ServerRegularInput
     = In_ApplicationData
@@ -30,104 +29,73 @@
     | Out_ChangeCipherSpec___Finished
     deriving (Show, Eq, Ord, Enum, Bounded)
 
+{- Transitions (state  input -> next state / output):
+    0     In_ApplicationData       -> 1 / Out_ConnectionClosed
+          In_ApplicationDataEmpty  -> 1 / Out_Alert_Fatal__Illegal_parameter____ConnectionClosed
+          In_ChangeCipherSpec      -> 1 / Out_ConnectionClosed
+          In_ClientHelloRSA        -> 2 / Out_ServerHello___Certificate___ServerHelloDone
+          In_ClientKeyExchange     -> 1 / Out_Alert_Fatal__Unexpected_message____ConnectionClosed
+          In_EmptyCertificate      -> 1 / Out_Alert_Fatal__Unexpected_message____ConnectionClosed
+          In_Finished              -> 1 / Out_Alert_Fatal__Unexpected_message____ConnectionClosed
+          In_HeartbeatRequest      -> 1 / Out_ConnectionClosed
+    1     In_ApplicationData       -> 1 / Out_ConnectionClosed
+          In_ApplicationDataEmpty  -> 1 / Out_ConnectionClosed
+          In_ChangeCipherSpec      -> 1 / Out_ConnectionClosed
+          In_ClientHelloRSA        -> 1 / Out_ConnectionClosed
+          In_ClientKeyExchange     -> 1 / Out_ConnectionClosed
+          In_EmptyCertificate      -> 1 / Out_ConnectionClosed
+          In_Finished              -> 1 / Out_ConnectionClosed
+          In_HeartbeatRequest      -> 1 / Out_ConnectionClosed
+    2     In_ApplicationData       -> 1 / Out_ConnectionClosed
+          In_ApplicationDataEmpty  -> 1 / Out_Alert_Fatal__Illegal_parameter____ConnectionClosed
+          In_ChangeCipherSpec      -> 1 / Out_Alert_Fatal__Unexpected_message____ConnectionClosed
+          In_ClientHelloRSA        -> 1 / Out_Alert_Fatal__Unexpected_message____ConnectionClosed
+          In_ClientKeyExchange     -> 4 / Out_Empty
+          In_EmptyCertificate      -> 1 / Out_Alert_Fatal__Unexpected_message____ConnectionClosed
+          In_Finished              -> 1 / Out_Alert_Fatal__Unexpected_message____ConnectionClosed
+          In_HeartbeatRequest      -> 1 / Out_ConnectionClosed
+    3     In_ApplicationData       -> 1 / Out_ApplicationDataApplicationDataApplicationDataApplicationDataApplicationDataApplicationData___ConnectionClosed
+          In_ApplicationDataEmpty  -> 3 / Out_Empty
+          In_ChangeCipherSpec      -> 1 / Out_Alert_Fatal__Unexpected_message____ConnectionClosed
+          In_ClientHelloRSA        -> 1 / Out_Alert_Fatal__Handshake_failure____ConnectionClosed
+          In_ClientKeyExchange     -> 1 / Out_Alert_Fatal__Unexpected_message____ConnectionClosed
+          In_EmptyCertificate      -> 1 / Out_Alert_Fatal__Unexpected_message____ConnectionClosed
+          In_Finished              -> 1 / Out_Alert_Fatal__Unexpected_message____ConnectionClosed
+          In_HeartbeatRequest      -> 1 / Out_ConnectionClosed
+    4     In_ApplicationData       -> 1 / Out_ConnectionClosed
+          In_ApplicationDataEmpty  -> 1 / Out_Alert_Fatal__Illegal_parameter____ConnectionClosed
+          In_ChangeCipherSpec      -> 5 / Out_Empty
+          In_ClientHelloRSA        -> 1 / Out_Alert_Fatal__Unexpected_message____ConnectionClosed
+          In_ClientKeyExchange     -> 1 / Out_Alert_Fatal__Unexpected_message____ConnectionClosed
+          In_EmptyCertificate      -> 1 / Out_Alert_Fatal__Unexpected_message____ConnectionClosed
+          In_Finished              -> 1 / Out_Alert_Fatal__Unexpected_message____ConnectionClosed
+          In_HeartbeatRequest      -> 1 / Out_ConnectionClosed
+    5     In_ApplicationData       -> 1 / Out_ConnectionClosed
+          In_ApplicationDataEmpty  -> 1 / Out_ConnectionClosed
+          In_ChangeCipherSpec      -> 1 / Out_ConnectionClosed
+          In_ClientHelloRSA        -> 1 / Out_Alert_Fatal__Unexpected_message____ConnectionClosed
+          In_ClientKeyExchange     -> 1 / Out_Alert_Fatal__Unexpected_message____ConnectionClosed
+          In_EmptyCertificate      -> 1 / Out_Alert_Fatal__Unexpected_message____ConnectionClosed
+          In_Finished              -> 3 / Out_ChangeCipherSpec___Finished
+          In_HeartbeatRequest      -> 1 / Out_ConnectionClosed
+-}
 miTLSV0V1V3ServerRegular :: MealyAutomaton Int MiTLSV0V1V3ServerRegularInput MiTLSV0V1V3ServerRegularOutput
-miTLSV0V1V3ServerRegular = mkMealyAutomaton delta lambda (Set.fromList [0..5]) 0
+miTLSV0V1V3ServerRegular =
+    case mkMealyAutomatonTable 6 0 deltaTable lambdaTable of
+        Right m -> m
+        Left err -> error ("haal-gen: invalid transition table: " ++ err)
   where
-    delta 0 In_ApplicationData = 1
-    delta 0 In_ApplicationDataEmpty = 1
-    delta 0 In_ChangeCipherSpec = 1
-    delta 0 In_ClientHelloRSA = 2
-    delta 0 In_ClientKeyExchange = 1
-    delta 0 In_EmptyCertificate = 1
-    delta 0 In_Finished = 1
-    delta 0 In_HeartbeatRequest = 1
-    delta 3 In_ApplicationData = 1
-    delta 3 In_ApplicationDataEmpty = 3
-    delta 3 In_ChangeCipherSpec = 1
-    delta 3 In_ClientHelloRSA = 1
-    delta 3 In_ClientKeyExchange = 1
-    delta 3 In_EmptyCertificate = 1
-    delta 3 In_Finished = 1
-    delta 3 In_HeartbeatRequest = 1
-    delta 2 In_ApplicationData = 1
-    delta 2 In_ApplicationDataEmpty = 1
-    delta 2 In_ChangeCipherSpec = 1
-    delta 2 In_ClientHelloRSA = 1
-    delta 2 In_ClientKeyExchange = 4
-    delta 2 In_EmptyCertificate = 1
-    delta 2 In_Finished = 1
-    delta 2 In_HeartbeatRequest = 1
-    delta 4 In_ApplicationData = 1
-    delta 4 In_ApplicationDataEmpty = 1
-    delta 4 In_ChangeCipherSpec = 5
-    delta 4 In_ClientHelloRSA = 1
-    delta 4 In_ClientKeyExchange = 1
-    delta 4 In_EmptyCertificate = 1
-    delta 4 In_Finished = 1
-    delta 4 In_HeartbeatRequest = 1
-    delta 5 In_ApplicationData = 1
-    delta 5 In_ApplicationDataEmpty = 1
-    delta 5 In_ChangeCipherSpec = 1
-    delta 5 In_ClientHelloRSA = 1
-    delta 5 In_ClientKeyExchange = 1
-    delta 5 In_EmptyCertificate = 1
-    delta 5 In_Finished = 3
-    delta 5 In_HeartbeatRequest = 1
-    delta 1 In_ApplicationData = 1
-    delta 1 In_ApplicationDataEmpty = 1
-    delta 1 In_ChangeCipherSpec = 1
-    delta 1 In_ClientHelloRSA = 1
-    delta 1 In_ClientKeyExchange = 1
-    delta 1 In_EmptyCertificate = 1
-    delta 1 In_Finished = 1
-    delta 1 In_HeartbeatRequest = 1
-    delta _ _ = error "haal-gen: undefined transition"
-    lambda 0 In_ApplicationData = Out_ConnectionClosed
-    lambda 0 In_ApplicationDataEmpty = Out_Alert_Fatal__Illegal_parameter____ConnectionClosed
-    lambda 0 In_ChangeCipherSpec = Out_ConnectionClosed
-    lambda 0 In_ClientHelloRSA = Out_ServerHello___Certificate___ServerHelloDone
-    lambda 0 In_ClientKeyExchange = Out_Alert_Fatal__Unexpected_message____ConnectionClosed
-    lambda 0 In_EmptyCertificate = Out_Alert_Fatal__Unexpected_message____ConnectionClosed
-    lambda 0 In_Finished = Out_Alert_Fatal__Unexpected_message____ConnectionClosed
-    lambda 0 In_HeartbeatRequest = Out_ConnectionClosed
-    lambda 3 In_ApplicationData = Out_ApplicationDataApplicationDataApplicationDataApplicationDataApplicationDataApplicationData___ConnectionClosed
-    lambda 3 In_ApplicationDataEmpty = Out_Empty
-    lambda 3 In_ChangeCipherSpec = Out_Alert_Fatal__Unexpected_message____ConnectionClosed
-    lambda 3 In_ClientHelloRSA = Out_Alert_Fatal__Handshake_failure____ConnectionClosed
-    lambda 3 In_ClientKeyExchange = Out_Alert_Fatal__Unexpected_message____ConnectionClosed
-    lambda 3 In_EmptyCertificate = Out_Alert_Fatal__Unexpected_message____ConnectionClosed
-    lambda 3 In_Finished = Out_Alert_Fatal__Unexpected_message____ConnectionClosed
-    lambda 3 In_HeartbeatRequest = Out_ConnectionClosed
-    lambda 2 In_ApplicationData = Out_ConnectionClosed
-    lambda 2 In_ApplicationDataEmpty = Out_Alert_Fatal__Illegal_parameter____ConnectionClosed
-    lambda 2 In_ChangeCipherSpec = Out_Alert_Fatal__Unexpected_message____ConnectionClosed
-    lambda 2 In_ClientHelloRSA = Out_Alert_Fatal__Unexpected_message____ConnectionClosed
-    lambda 2 In_ClientKeyExchange = Out_Empty
-    lambda 2 In_EmptyCertificate = Out_Alert_Fatal__Unexpected_message____ConnectionClosed
-    lambda 2 In_Finished = Out_Alert_Fatal__Unexpected_message____ConnectionClosed
-    lambda 2 In_HeartbeatRequest = Out_ConnectionClosed
-    lambda 4 In_ApplicationData = Out_ConnectionClosed
-    lambda 4 In_ApplicationDataEmpty = Out_Alert_Fatal__Illegal_parameter____ConnectionClosed
-    lambda 4 In_ChangeCipherSpec = Out_Empty
-    lambda 4 In_ClientHelloRSA = Out_Alert_Fatal__Unexpected_message____ConnectionClosed
-    lambda 4 In_ClientKeyExchange = Out_Alert_Fatal__Unexpected_message____ConnectionClosed
-    lambda 4 In_EmptyCertificate = Out_Alert_Fatal__Unexpected_message____ConnectionClosed
-    lambda 4 In_Finished = Out_Alert_Fatal__Unexpected_message____ConnectionClosed
-    lambda 4 In_HeartbeatRequest = Out_ConnectionClosed
-    lambda 5 In_ApplicationData = Out_ConnectionClosed
-    lambda 5 In_ApplicationDataEmpty = Out_ConnectionClosed
-    lambda 5 In_ChangeCipherSpec = Out_ConnectionClosed
-    lambda 5 In_ClientHelloRSA = Out_Alert_Fatal__Unexpected_message____ConnectionClosed
-    lambda 5 In_ClientKeyExchange = Out_Alert_Fatal__Unexpected_message____ConnectionClosed
-    lambda 5 In_EmptyCertificate = Out_Alert_Fatal__Unexpected_message____ConnectionClosed
-    lambda 5 In_Finished = Out_ChangeCipherSpec___Finished
-    lambda 5 In_HeartbeatRequest = Out_ConnectionClosed
-    lambda 1 In_ApplicationData = Out_ConnectionClosed
-    lambda 1 In_ApplicationDataEmpty = Out_ConnectionClosed
-    lambda 1 In_ChangeCipherSpec = Out_ConnectionClosed
-    lambda 1 In_ClientHelloRSA = Out_ConnectionClosed
-    lambda 1 In_ClientKeyExchange = Out_ConnectionClosed
-    lambda 1 In_EmptyCertificate = Out_ConnectionClosed
-    lambda 1 In_Finished = Out_ConnectionClosed
-    lambda 1 In_HeartbeatRequest = Out_ConnectionClosed
-    lambda _ _ = error "haal-gen: undefined transition"
+    deltaTable =
+        "\1\1\1\2\1\1\1\1\
+        \\1\1\1\1\1\1\1\1\
+        \\1\1\1\1\4\1\1\1\
+        \\1\3\1\1\1\1\1\1\
+        \\1\1\5\1\1\1\1\1\
+        \\1\1\1\1\1\1\3\1"
+    lambdaTable =
+        "\0\1\0\2\3\3\3\0\
+        \\0\0\0\0\0\0\0\0\
+        \\0\1\3\3\5\3\3\0\
+        \\4\5\3\6\3\3\3\0\
+        \\0\1\5\3\3\3\3\0\
+        \\0\0\0\3\3\3\7\0"
diff --git a/src/Haal/Models/TLS/NSSV3V17V4ServerRegular.hs b/src/Haal/Models/TLS/NSSV3V17V4ServerRegular.hs
--- a/src/Haal/Models/TLS/NSSV3V17V4ServerRegular.hs
+++ b/src/Haal/Models/TLS/NSSV3V17V4ServerRegular.hs
@@ -5,8 +5,7 @@
     , nSSV3V17V4ServerRegular
     ) where
 
-import qualified Data.Set as Set
-import Haal.Automaton.MealyAutomaton (MealyAutomaton, mkMealyAutomaton)
+import Haal.Automaton.MealyAutomaton (MealyAutomaton, mkMealyAutomatonTable)
 
 data NSSV3V17V4ServerRegularInput
     = In_ApplicationData
@@ -31,136 +30,93 @@
     | Out_Alert_Warning__Close_notify____ConnectionClosed
     deriving (Show, Eq, Ord, Enum, Bounded)
 
+{- Transitions (state  input -> next state / output):
+    0     In_ApplicationData       -> 1 / Out_Empty
+          In_ApplicationDataEmpty  -> 1 / Out_Empty
+          In_ChangeCipherSpec      -> 1 / Out_Empty
+          In_ClientHelloRSA        -> 2 / Out_ServerHello_Certificate___CertificateRequest___ServerHelloDone
+          In_ClientKeyExchange     -> 3 / Out_Alert_Fatal__Unexpected_message____ConnectionClosed
+          In_EmptyCertificate      -> 3 / Out_Alert_Fatal__Unexpected_message____ConnectionClosed
+          In_Finished              -> 3 / Out_ConnectionClosed
+          In_HeartbeatRequest      -> 1 / Out_Empty
+    1     In_ApplicationData       -> 1 / Out_Empty
+          In_ApplicationDataEmpty  -> 1 / Out_Empty
+          In_ChangeCipherSpec      -> 1 / Out_Empty
+          In_ClientHelloRSA        -> 1 / Out_Empty
+          In_ClientKeyExchange     -> 1 / Out_Empty
+          In_EmptyCertificate      -> 1 / Out_Empty
+          In_Finished              -> 1 / Out_Empty
+          In_HeartbeatRequest      -> 1 / Out_Empty
+    2     In_ApplicationData       -> 3 / Out_Alert_Fatal__Unexpected_message____ConnectionClosed
+          In_ApplicationDataEmpty  -> 3 / Out_Empty
+          In_ChangeCipherSpec      -> 3 / Out_Alert_Fatal__Unexpected_message____ConnectionClosed
+          In_ClientHelloRSA        -> 3 / Out_Alert_Fatal__Unexpected_message____ConnectionClosed
+          In_ClientKeyExchange     -> 3 / Out_Alert_Fatal__Unexpected_message____ConnectionClosed
+          In_EmptyCertificate      -> 6 / Out_Empty
+          In_Finished              -> 3 / Out_ConnectionClosed
+          In_HeartbeatRequest      -> 3 / Out_ConnectionClosed
+    3     In_ApplicationData       -> 3 / Out_ConnectionClosed
+          In_ApplicationDataEmpty  -> 3 / Out_ConnectionClosed
+          In_ChangeCipherSpec      -> 3 / Out_ConnectionClosed
+          In_ClientHelloRSA        -> 3 / Out_ConnectionClosed
+          In_ClientKeyExchange     -> 3 / Out_ConnectionClosed
+          In_EmptyCertificate      -> 3 / Out_ConnectionClosed
+          In_Finished              -> 3 / Out_ConnectionClosed
+          In_HeartbeatRequest      -> 3 / Out_ConnectionClosed
+    4     In_ApplicationData       -> 3 / Out_Alert_Fatal__Unexpected_message____ConnectionClosed
+          In_ApplicationDataEmpty  -> 3 / Out_Alert_Fatal__Unexpected_message____ConnectionClosed
+          In_ChangeCipherSpec      -> 3 / Out_Alert_Fatal__Unexpected_message____ConnectionClosed
+          In_ClientHelloRSA        -> 3 / Out_Alert_Fatal__Unexpected_message____ConnectionClosed
+          In_ClientKeyExchange     -> 3 / Out_Alert_Fatal__Unexpected_message____ConnectionClosed
+          In_EmptyCertificate      -> 3 / Out_Alert_Fatal__Unexpected_message____ConnectionClosed
+          In_Finished              -> 5 / Out_ChangeCipherSpec___Finished
+          In_HeartbeatRequest      -> 3 / Out_ConnectionClosed
+    5     In_ApplicationData       -> 3 / Out_ApplicationData___Alert_Warning__Close_notify____ConnectionClosed
+          In_ApplicationDataEmpty  -> 5 / Out_Empty
+          In_ChangeCipherSpec      -> 3 / Out_Alert_Fatal__Unexpected_message_Alert_Warning__Close_notify____ConnectionClosed
+          In_ClientHelloRSA        -> 3 / Out_Alert_Fatal__Handshake_failure_Alert_Warning__No_renegotiation_Alert_Warning__Close_notify____ConnectionClosed
+          In_ClientKeyExchange     -> 3 / Out_Alert_Fatal__Unexpected_message_Alert_Warning__Close_notify____ConnectionClosed
+          In_EmptyCertificate      -> 3 / Out_Alert_Fatal__Unexpected_message_Alert_Warning__Close_notify____ConnectionClosed
+          In_Finished              -> 3 / Out_Alert_Fatal__Unexpected_message_Alert_Warning__Close_notify____ConnectionClosed
+          In_HeartbeatRequest      -> 3 / Out_Alert_Warning__Close_notify____ConnectionClosed
+    6     In_ApplicationData       -> 3 / Out_Alert_Fatal__Unexpected_message____ConnectionClosed
+          In_ApplicationDataEmpty  -> 3 / Out_Empty
+          In_ChangeCipherSpec      -> 3 / Out_Alert_Fatal__Unexpected_message____ConnectionClosed
+          In_ClientHelloRSA        -> 3 / Out_Alert_Fatal__Unexpected_message____ConnectionClosed
+          In_ClientKeyExchange     -> 7 / Out_Empty
+          In_EmptyCertificate      -> 3 / Out_Alert_Fatal__Unexpected_message____ConnectionClosed
+          In_Finished              -> 3 / Out_ConnectionClosed
+          In_HeartbeatRequest      -> 3 / Out_ConnectionClosed
+    7     In_ApplicationData       -> 3 / Out_Alert_Fatal__Unexpected_message____ConnectionClosed
+          In_ApplicationDataEmpty  -> 3 / Out_Empty
+          In_ChangeCipherSpec      -> 4 / Out_Empty
+          In_ClientHelloRSA        -> 3 / Out_Alert_Fatal__Unexpected_message____ConnectionClosed
+          In_ClientKeyExchange     -> 3 / Out_Alert_Fatal__Unexpected_message____ConnectionClosed
+          In_EmptyCertificate      -> 3 / Out_Alert_Fatal__Unexpected_message____ConnectionClosed
+          In_Finished              -> 3 / Out_ConnectionClosed
+          In_HeartbeatRequest      -> 3 / Out_ConnectionClosed
+-}
 nSSV3V17V4ServerRegular :: MealyAutomaton Int NSSV3V17V4ServerRegularInput NSSV3V17V4ServerRegularOutput
-nSSV3V17V4ServerRegular = mkMealyAutomaton delta lambda (Set.fromList [0..7]) 0
+nSSV3V17V4ServerRegular =
+    case mkMealyAutomatonTable 8 0 deltaTable lambdaTable of
+        Right m -> m
+        Left err -> error ("haal-gen: invalid transition table: " ++ err)
   where
-    delta 0 In_ApplicationData = 1
-    delta 0 In_ApplicationDataEmpty = 1
-    delta 0 In_ChangeCipherSpec = 1
-    delta 0 In_ClientHelloRSA = 2
-    delta 0 In_ClientKeyExchange = 3
-    delta 0 In_EmptyCertificate = 3
-    delta 0 In_Finished = 3
-    delta 0 In_HeartbeatRequest = 1
-    delta 4 In_ApplicationData = 3
-    delta 4 In_ApplicationDataEmpty = 3
-    delta 4 In_ChangeCipherSpec = 3
-    delta 4 In_ClientHelloRSA = 3
-    delta 4 In_ClientKeyExchange = 3
-    delta 4 In_EmptyCertificate = 3
-    delta 4 In_Finished = 5
-    delta 4 In_HeartbeatRequest = 3
-    delta 2 In_ApplicationData = 3
-    delta 2 In_ApplicationDataEmpty = 3
-    delta 2 In_ChangeCipherSpec = 3
-    delta 2 In_ClientHelloRSA = 3
-    delta 2 In_ClientKeyExchange = 3
-    delta 2 In_EmptyCertificate = 6
-    delta 2 In_Finished = 3
-    delta 2 In_HeartbeatRequest = 3
-    delta 6 In_ApplicationData = 3
-    delta 6 In_ApplicationDataEmpty = 3
-    delta 6 In_ChangeCipherSpec = 3
-    delta 6 In_ClientHelloRSA = 3
-    delta 6 In_ClientKeyExchange = 7
-    delta 6 In_EmptyCertificate = 3
-    delta 6 In_Finished = 3
-    delta 6 In_HeartbeatRequest = 3
-    delta 7 In_ApplicationData = 3
-    delta 7 In_ApplicationDataEmpty = 3
-    delta 7 In_ChangeCipherSpec = 4
-    delta 7 In_ClientHelloRSA = 3
-    delta 7 In_ClientKeyExchange = 3
-    delta 7 In_EmptyCertificate = 3
-    delta 7 In_Finished = 3
-    delta 7 In_HeartbeatRequest = 3
-    delta 5 In_ApplicationData = 3
-    delta 5 In_ApplicationDataEmpty = 5
-    delta 5 In_ChangeCipherSpec = 3
-    delta 5 In_ClientHelloRSA = 3
-    delta 5 In_ClientKeyExchange = 3
-    delta 5 In_EmptyCertificate = 3
-    delta 5 In_Finished = 3
-    delta 5 In_HeartbeatRequest = 3
-    delta 3 In_ApplicationData = 3
-    delta 3 In_ApplicationDataEmpty = 3
-    delta 3 In_ChangeCipherSpec = 3
-    delta 3 In_ClientHelloRSA = 3
-    delta 3 In_ClientKeyExchange = 3
-    delta 3 In_EmptyCertificate = 3
-    delta 3 In_Finished = 3
-    delta 3 In_HeartbeatRequest = 3
-    delta 1 In_ApplicationData = 1
-    delta 1 In_ApplicationDataEmpty = 1
-    delta 1 In_ChangeCipherSpec = 1
-    delta 1 In_ClientHelloRSA = 1
-    delta 1 In_ClientKeyExchange = 1
-    delta 1 In_EmptyCertificate = 1
-    delta 1 In_Finished = 1
-    delta 1 In_HeartbeatRequest = 1
-    delta _ _ = error "haal-gen: undefined transition"
-    lambda 0 In_ApplicationData = Out_Empty
-    lambda 0 In_ApplicationDataEmpty = Out_Empty
-    lambda 0 In_ChangeCipherSpec = Out_Empty
-    lambda 0 In_ClientHelloRSA = Out_ServerHello_Certificate___CertificateRequest___ServerHelloDone
-    lambda 0 In_ClientKeyExchange = Out_Alert_Fatal__Unexpected_message____ConnectionClosed
-    lambda 0 In_EmptyCertificate = Out_Alert_Fatal__Unexpected_message____ConnectionClosed
-    lambda 0 In_Finished = Out_ConnectionClosed
-    lambda 0 In_HeartbeatRequest = Out_Empty
-    lambda 4 In_ApplicationData = Out_Alert_Fatal__Unexpected_message____ConnectionClosed
-    lambda 4 In_ApplicationDataEmpty = Out_Alert_Fatal__Unexpected_message____ConnectionClosed
-    lambda 4 In_ChangeCipherSpec = Out_Alert_Fatal__Unexpected_message____ConnectionClosed
-    lambda 4 In_ClientHelloRSA = Out_Alert_Fatal__Unexpected_message____ConnectionClosed
-    lambda 4 In_ClientKeyExchange = Out_Alert_Fatal__Unexpected_message____ConnectionClosed
-    lambda 4 In_EmptyCertificate = Out_Alert_Fatal__Unexpected_message____ConnectionClosed
-    lambda 4 In_Finished = Out_ChangeCipherSpec___Finished
-    lambda 4 In_HeartbeatRequest = Out_ConnectionClosed
-    lambda 2 In_ApplicationData = Out_Alert_Fatal__Unexpected_message____ConnectionClosed
-    lambda 2 In_ApplicationDataEmpty = Out_Empty
-    lambda 2 In_ChangeCipherSpec = Out_Alert_Fatal__Unexpected_message____ConnectionClosed
-    lambda 2 In_ClientHelloRSA = Out_Alert_Fatal__Unexpected_message____ConnectionClosed
-    lambda 2 In_ClientKeyExchange = Out_Alert_Fatal__Unexpected_message____ConnectionClosed
-    lambda 2 In_EmptyCertificate = Out_Empty
-    lambda 2 In_Finished = Out_ConnectionClosed
-    lambda 2 In_HeartbeatRequest = Out_ConnectionClosed
-    lambda 6 In_ApplicationData = Out_Alert_Fatal__Unexpected_message____ConnectionClosed
-    lambda 6 In_ApplicationDataEmpty = Out_Empty
-    lambda 6 In_ChangeCipherSpec = Out_Alert_Fatal__Unexpected_message____ConnectionClosed
-    lambda 6 In_ClientHelloRSA = Out_Alert_Fatal__Unexpected_message____ConnectionClosed
-    lambda 6 In_ClientKeyExchange = Out_Empty
-    lambda 6 In_EmptyCertificate = Out_Alert_Fatal__Unexpected_message____ConnectionClosed
-    lambda 6 In_Finished = Out_ConnectionClosed
-    lambda 6 In_HeartbeatRequest = Out_ConnectionClosed
-    lambda 7 In_ApplicationData = Out_Alert_Fatal__Unexpected_message____ConnectionClosed
-    lambda 7 In_ApplicationDataEmpty = Out_Empty
-    lambda 7 In_ChangeCipherSpec = Out_Empty
-    lambda 7 In_ClientHelloRSA = Out_Alert_Fatal__Unexpected_message____ConnectionClosed
-    lambda 7 In_ClientKeyExchange = Out_Alert_Fatal__Unexpected_message____ConnectionClosed
-    lambda 7 In_EmptyCertificate = Out_Alert_Fatal__Unexpected_message____ConnectionClosed
-    lambda 7 In_Finished = Out_ConnectionClosed
-    lambda 7 In_HeartbeatRequest = Out_ConnectionClosed
-    lambda 5 In_ApplicationData = Out_ApplicationData___Alert_Warning__Close_notify____ConnectionClosed
-    lambda 5 In_ApplicationDataEmpty = Out_Empty
-    lambda 5 In_ChangeCipherSpec = Out_Alert_Fatal__Unexpected_message_Alert_Warning__Close_notify____ConnectionClosed
-    lambda 5 In_ClientHelloRSA = Out_Alert_Fatal__Handshake_failure_Alert_Warning__No_renegotiation_Alert_Warning__Close_notify____ConnectionClosed
-    lambda 5 In_ClientKeyExchange = Out_Alert_Fatal__Unexpected_message_Alert_Warning__Close_notify____ConnectionClosed
-    lambda 5 In_EmptyCertificate = Out_Alert_Fatal__Unexpected_message_Alert_Warning__Close_notify____ConnectionClosed
-    lambda 5 In_Finished = Out_Alert_Fatal__Unexpected_message_Alert_Warning__Close_notify____ConnectionClosed
-    lambda 5 In_HeartbeatRequest = Out_Alert_Warning__Close_notify____ConnectionClosed
-    lambda 3 In_ApplicationData = Out_ConnectionClosed
-    lambda 3 In_ApplicationDataEmpty = Out_ConnectionClosed
-    lambda 3 In_ChangeCipherSpec = Out_ConnectionClosed
-    lambda 3 In_ClientHelloRSA = Out_ConnectionClosed
-    lambda 3 In_ClientKeyExchange = Out_ConnectionClosed
-    lambda 3 In_EmptyCertificate = Out_ConnectionClosed
-    lambda 3 In_Finished = Out_ConnectionClosed
-    lambda 3 In_HeartbeatRequest = Out_ConnectionClosed
-    lambda 1 In_ApplicationData = Out_Empty
-    lambda 1 In_ApplicationDataEmpty = Out_Empty
-    lambda 1 In_ChangeCipherSpec = Out_Empty
-    lambda 1 In_ClientHelloRSA = Out_Empty
-    lambda 1 In_ClientKeyExchange = Out_Empty
-    lambda 1 In_EmptyCertificate = Out_Empty
-    lambda 1 In_Finished = Out_Empty
-    lambda 1 In_HeartbeatRequest = Out_Empty
-    lambda _ _ = error "haal-gen: undefined transition"
+    deltaTable =
+        "\1\1\1\2\3\3\3\1\
+        \\1\1\1\1\1\1\1\1\
+        \\3\3\3\3\3\6\3\3\
+        \\3\3\3\3\3\3\3\3\
+        \\3\3\3\3\3\3\5\3\
+        \\3\5\3\3\3\3\3\3\
+        \\3\3\3\3\7\3\3\3\
+        \\3\3\4\3\3\3\3\3"
+    lambdaTable =
+        "\0\0\0\1\2\2\3\0\
+        \\0\0\0\0\0\0\0\0\
+        \\2\0\2\2\2\0\3\3\
+        \\3\3\3\3\3\3\3\3\
+        \\2\2\2\2\2\2\4\3\
+        \\5\0\6\7\6\6\6\8\
+        \\2\0\2\2\0\2\3\3\
+        \\2\0\0\2\2\2\3\3"
diff --git a/src/Haal/Models/TLS/OpenSSLV1V0V2ServerRegular.hs b/src/Haal/Models/TLS/OpenSSLV1V0V2ServerRegular.hs
--- a/src/Haal/Models/TLS/OpenSSLV1V0V2ServerRegular.hs
+++ b/src/Haal/Models/TLS/OpenSSLV1V0V2ServerRegular.hs
@@ -5,8 +5,7 @@
     , openSSLV1V0V2ServerRegular
     ) where
 
-import qualified Data.Set as Set
-import Haal.Automaton.MealyAutomaton (MealyAutomaton, mkMealyAutomaton)
+import Haal.Automaton.MealyAutomaton (MealyAutomaton, mkMealyAutomatonTable)
 
 data OpenSSLV1V0V2ServerRegularInput
     = In_ApplicationData
@@ -28,106 +27,76 @@
     | Out_Alert_Fatal__Handshake_failure____ConnectionClosed
     deriving (Show, Eq, Ord, Enum, Bounded)
 
+{- Transitions (state  input -> next state / output):
+    0     In_ApplicationData       -> 1 / Out_ConnectionClosed
+          In_ApplicationDataEmpty  -> 2 / Out_Empty
+          In_ChangeCipherSpec      -> 1 / Out_Empty
+          In_ClientHelloRSA        -> 3 / Out_ServerHello___Certificate___ServerHelloDone
+          In_ClientKeyExchange     -> 1 / Out_ConnectionClosed
+          In_EmptyCertificate      -> 1 / Out_ConnectionClosed
+          In_Finished              -> 1 / Out_ConnectionClosed
+    1     In_ApplicationData       -> 1 / Out_ConnectionClosed
+          In_ApplicationDataEmpty  -> 1 / Out_ConnectionClosed
+          In_ChangeCipherSpec      -> 1 / Out_ConnectionClosed
+          In_ClientHelloRSA        -> 1 / Out_ConnectionClosed
+          In_ClientKeyExchange     -> 1 / Out_ConnectionClosed
+          In_EmptyCertificate      -> 1 / Out_ConnectionClosed
+          In_Finished              -> 1 / Out_ConnectionClosed
+    2     In_ApplicationData       -> 1 / Out_ConnectionClosed
+          In_ApplicationDataEmpty  -> 1 / Out_Empty
+          In_ChangeCipherSpec      -> 1 / Out_ConnectionClosed
+          In_ClientHelloRSA        -> 1 / Out_ConnectionClosed
+          In_ClientKeyExchange     -> 1 / Out_ConnectionClosed
+          In_EmptyCertificate      -> 1 / Out_ConnectionClosed
+          In_Finished              -> 1 / Out_ConnectionClosed
+    3     In_ApplicationData       -> 1 / Out_Alert_Fatal__Unexpected_message____ConnectionClosed
+          In_ApplicationDataEmpty  -> 3 / Out_Empty
+          In_ChangeCipherSpec      -> 1 / Out_Alert_Fatal__Unexpected_message____ConnectionClosed
+          In_ClientHelloRSA        -> 1 / Out_Alert_Fatal__Unexpected_message____ConnectionClosed
+          In_ClientKeyExchange     -> 6 / Out_Empty
+          In_EmptyCertificate      -> 1 / Out_Alert_Fatal__Unexpected_message____ConnectionClosed
+          In_Finished              -> 1 / Out_Alert_Fatal__Unexpected_message____ConnectionClosed
+    4     In_ApplicationData       -> 1 / Out_Alert_Fatal__Unexpected_message____ConnectionClosed
+          In_ApplicationDataEmpty  -> 4 / Out_Empty
+          In_ChangeCipherSpec      -> 1 / Out_Alert_Fatal__Unexpected_message____ConnectionClosed
+          In_ClientHelloRSA        -> 1 / Out_Alert_Fatal__Unexpected_message____ConnectionClosed
+          In_ClientKeyExchange     -> 1 / Out_Alert_Fatal__Unexpected_message____ConnectionClosed
+          In_EmptyCertificate      -> 1 / Out_Alert_Fatal__Unexpected_message____ConnectionClosed
+          In_Finished              -> 5 / Out_ChangeCipherSpec___Finished
+    5     In_ApplicationData       -> 1 / Out_ApplicationData___ConnectionClosed
+          In_ApplicationDataEmpty  -> 5 / Out_Empty
+          In_ChangeCipherSpec      -> 1 / Out_Alert_Fatal__Unexpected_message____ConnectionClosed
+          In_ClientHelloRSA        -> 1 / Out_Alert_Fatal__Handshake_failure____ConnectionClosed
+          In_ClientKeyExchange     -> 1 / Out_Alert_Fatal__Unexpected_message____ConnectionClosed
+          In_EmptyCertificate      -> 1 / Out_Alert_Fatal__Unexpected_message____ConnectionClosed
+          In_Finished              -> 1 / Out_Alert_Fatal__Unexpected_message____ConnectionClosed
+    6     In_ApplicationData       -> 1 / Out_Alert_Fatal__Unexpected_message____ConnectionClosed
+          In_ApplicationDataEmpty  -> 6 / Out_Empty
+          In_ChangeCipherSpec      -> 4 / Out_Empty
+          In_ClientHelloRSA        -> 1 / Out_Alert_Fatal__Unexpected_message____ConnectionClosed
+          In_ClientKeyExchange     -> 1 / Out_Alert_Fatal__Unexpected_message____ConnectionClosed
+          In_EmptyCertificate      -> 1 / Out_Alert_Fatal__Unexpected_message____ConnectionClosed
+          In_Finished              -> 1 / Out_Alert_Fatal__Unexpected_message____ConnectionClosed
+-}
 openSSLV1V0V2ServerRegular :: MealyAutomaton Int OpenSSLV1V0V2ServerRegularInput OpenSSLV1V0V2ServerRegularOutput
-openSSLV1V0V2ServerRegular = mkMealyAutomaton delta lambda (Set.fromList [0..6]) 0
+openSSLV1V0V2ServerRegular =
+    case mkMealyAutomatonTable 7 0 deltaTable lambdaTable of
+        Right m -> m
+        Left err -> error ("haal-gen: invalid transition table: " ++ err)
   where
-    delta 0 In_ApplicationData = 1
-    delta 0 In_ApplicationDataEmpty = 2
-    delta 0 In_ChangeCipherSpec = 1
-    delta 0 In_ClientHelloRSA = 3
-    delta 0 In_ClientKeyExchange = 1
-    delta 0 In_EmptyCertificate = 1
-    delta 0 In_Finished = 1
-    delta 4 In_ApplicationData = 1
-    delta 4 In_ApplicationDataEmpty = 4
-    delta 4 In_ChangeCipherSpec = 1
-    delta 4 In_ClientHelloRSA = 1
-    delta 4 In_ClientKeyExchange = 1
-    delta 4 In_EmptyCertificate = 1
-    delta 4 In_Finished = 5
-    delta 3 In_ApplicationData = 1
-    delta 3 In_ApplicationDataEmpty = 3
-    delta 3 In_ChangeCipherSpec = 1
-    delta 3 In_ClientHelloRSA = 1
-    delta 3 In_ClientKeyExchange = 6
-    delta 3 In_EmptyCertificate = 1
-    delta 3 In_Finished = 1
-    delta 6 In_ApplicationData = 1
-    delta 6 In_ApplicationDataEmpty = 6
-    delta 6 In_ChangeCipherSpec = 4
-    delta 6 In_ClientHelloRSA = 1
-    delta 6 In_ClientKeyExchange = 1
-    delta 6 In_EmptyCertificate = 1
-    delta 6 In_Finished = 1
-    delta 5 In_ApplicationData = 1
-    delta 5 In_ApplicationDataEmpty = 5
-    delta 5 In_ChangeCipherSpec = 1
-    delta 5 In_ClientHelloRSA = 1
-    delta 5 In_ClientKeyExchange = 1
-    delta 5 In_EmptyCertificate = 1
-    delta 5 In_Finished = 1
-    delta 1 In_ApplicationData = 1
-    delta 1 In_ApplicationDataEmpty = 1
-    delta 1 In_ChangeCipherSpec = 1
-    delta 1 In_ClientHelloRSA = 1
-    delta 1 In_ClientKeyExchange = 1
-    delta 1 In_EmptyCertificate = 1
-    delta 1 In_Finished = 1
-    delta 2 In_ApplicationData = 1
-    delta 2 In_ApplicationDataEmpty = 1
-    delta 2 In_ChangeCipherSpec = 1
-    delta 2 In_ClientHelloRSA = 1
-    delta 2 In_ClientKeyExchange = 1
-    delta 2 In_EmptyCertificate = 1
-    delta 2 In_Finished = 1
-    delta _ _ = error "haal-gen: undefined transition"
-    lambda 0 In_ApplicationData = Out_ConnectionClosed
-    lambda 0 In_ApplicationDataEmpty = Out_Empty
-    lambda 0 In_ChangeCipherSpec = Out_Empty
-    lambda 0 In_ClientHelloRSA = Out_ServerHello___Certificate___ServerHelloDone
-    lambda 0 In_ClientKeyExchange = Out_ConnectionClosed
-    lambda 0 In_EmptyCertificate = Out_ConnectionClosed
-    lambda 0 In_Finished = Out_ConnectionClosed
-    lambda 4 In_ApplicationData = Out_Alert_Fatal__Unexpected_message____ConnectionClosed
-    lambda 4 In_ApplicationDataEmpty = Out_Empty
-    lambda 4 In_ChangeCipherSpec = Out_Alert_Fatal__Unexpected_message____ConnectionClosed
-    lambda 4 In_ClientHelloRSA = Out_Alert_Fatal__Unexpected_message____ConnectionClosed
-    lambda 4 In_ClientKeyExchange = Out_Alert_Fatal__Unexpected_message____ConnectionClosed
-    lambda 4 In_EmptyCertificate = Out_Alert_Fatal__Unexpected_message____ConnectionClosed
-    lambda 4 In_Finished = Out_ChangeCipherSpec___Finished
-    lambda 3 In_ApplicationData = Out_Alert_Fatal__Unexpected_message____ConnectionClosed
-    lambda 3 In_ApplicationDataEmpty = Out_Empty
-    lambda 3 In_ChangeCipherSpec = Out_Alert_Fatal__Unexpected_message____ConnectionClosed
-    lambda 3 In_ClientHelloRSA = Out_Alert_Fatal__Unexpected_message____ConnectionClosed
-    lambda 3 In_ClientKeyExchange = Out_Empty
-    lambda 3 In_EmptyCertificate = Out_Alert_Fatal__Unexpected_message____ConnectionClosed
-    lambda 3 In_Finished = Out_Alert_Fatal__Unexpected_message____ConnectionClosed
-    lambda 6 In_ApplicationData = Out_Alert_Fatal__Unexpected_message____ConnectionClosed
-    lambda 6 In_ApplicationDataEmpty = Out_Empty
-    lambda 6 In_ChangeCipherSpec = Out_Empty
-    lambda 6 In_ClientHelloRSA = Out_Alert_Fatal__Unexpected_message____ConnectionClosed
-    lambda 6 In_ClientKeyExchange = Out_Alert_Fatal__Unexpected_message____ConnectionClosed
-    lambda 6 In_EmptyCertificate = Out_Alert_Fatal__Unexpected_message____ConnectionClosed
-    lambda 6 In_Finished = Out_Alert_Fatal__Unexpected_message____ConnectionClosed
-    lambda 5 In_ApplicationData = Out_ApplicationData___ConnectionClosed
-    lambda 5 In_ApplicationDataEmpty = Out_Empty
-    lambda 5 In_ChangeCipherSpec = Out_Alert_Fatal__Unexpected_message____ConnectionClosed
-    lambda 5 In_ClientHelloRSA = Out_Alert_Fatal__Handshake_failure____ConnectionClosed
-    lambda 5 In_ClientKeyExchange = Out_Alert_Fatal__Unexpected_message____ConnectionClosed
-    lambda 5 In_EmptyCertificate = Out_Alert_Fatal__Unexpected_message____ConnectionClosed
-    lambda 5 In_Finished = Out_Alert_Fatal__Unexpected_message____ConnectionClosed
-    lambda 1 In_ApplicationData = Out_ConnectionClosed
-    lambda 1 In_ApplicationDataEmpty = Out_ConnectionClosed
-    lambda 1 In_ChangeCipherSpec = Out_ConnectionClosed
-    lambda 1 In_ClientHelloRSA = Out_ConnectionClosed
-    lambda 1 In_ClientKeyExchange = Out_ConnectionClosed
-    lambda 1 In_EmptyCertificate = Out_ConnectionClosed
-    lambda 1 In_Finished = Out_ConnectionClosed
-    lambda 2 In_ApplicationData = Out_ConnectionClosed
-    lambda 2 In_ApplicationDataEmpty = Out_Empty
-    lambda 2 In_ChangeCipherSpec = Out_ConnectionClosed
-    lambda 2 In_ClientHelloRSA = Out_ConnectionClosed
-    lambda 2 In_ClientKeyExchange = Out_ConnectionClosed
-    lambda 2 In_EmptyCertificate = Out_ConnectionClosed
-    lambda 2 In_Finished = Out_ConnectionClosed
-    lambda _ _ = error "haal-gen: undefined transition"
+    deltaTable =
+        "\1\2\1\3\1\1\1\
+        \\1\1\1\1\1\1\1\
+        \\1\1\1\1\1\1\1\
+        \\1\3\1\1\6\1\1\
+        \\1\4\1\1\1\1\5\
+        \\1\5\1\1\1\1\1\
+        \\1\6\4\1\1\1\1"
+    lambdaTable =
+        "\0\1\1\2\0\0\0\
+        \\0\0\0\0\0\0\0\
+        \\0\1\0\0\0\0\0\
+        \\3\1\3\3\1\3\3\
+        \\3\1\3\3\3\3\4\
+        \\5\1\3\6\3\3\3\
+        \\3\1\1\3\3\3\3"
diff --git a/src/Haal/Models/TLS/RSABSAFECV4V0V4ServerRegular.hs b/src/Haal/Models/TLS/RSABSAFECV4V0V4ServerRegular.hs
--- a/src/Haal/Models/TLS/RSABSAFECV4V0V4ServerRegular.hs
+++ b/src/Haal/Models/TLS/RSABSAFECV4V0V4ServerRegular.hs
@@ -5,8 +5,7 @@
     , rSABSAFECV4V0V4ServerRegular
     ) where
 
-import qualified Data.Set as Set
-import Haal.Automaton.MealyAutomaton (MealyAutomaton, mkMealyAutomaton)
+import Haal.Automaton.MealyAutomaton (MealyAutomaton, mkMealyAutomatonTable)
 
 data RSABSAFECV4V0V4ServerRegularInput
     = In_ApplicationData
@@ -33,152 +32,103 @@
     | Out_Alert_Fatal__Unexpected_message_Alert_Warning__Close_notify
     deriving (Show, Eq, Ord, Enum, Bounded)
 
+{- Transitions (state  input -> next state / output):
+    0     In_ApplicationData       -> 1 / Out_Alert_Warning__Close_notify
+          In_ApplicationDataEmpty  -> 2 / Out_Empty
+          In_ChangeCipherSpec      -> 3 / Out_Empty
+          In_ClientHelloRSA        -> 4 / Out_ServerHello___Certificate___ServerHelloDone
+          In_ClientKeyExchange     -> 1 / Out_Alert_Warning__Close_notify
+          In_EmptyCertificate      -> 1 / Out_Alert_Warning__Close_notify
+          In_Finished              -> 1 / Out_Alert_Warning__Close_notify
+          In_HeartbeatRequest      -> 1 / Out_Alert_Warning__Close_notify
+    1     In_ApplicationData       -> 1 / Out_Empty
+          In_ApplicationDataEmpty  -> 1 / Out_Empty
+          In_ChangeCipherSpec      -> 1 / Out_Empty
+          In_ClientHelloRSA        -> 1 / Out_Empty
+          In_ClientKeyExchange     -> 1 / Out_Empty
+          In_EmptyCertificate      -> 1 / Out_Empty
+          In_Finished              -> 1 / Out_Empty
+          In_HeartbeatRequest      -> 1 / Out_Empty
+    2     In_ApplicationData       -> 1 / Out_Alert_Warning__Close_notify
+          In_ApplicationDataEmpty  -> 3 / Out_Empty
+          In_ChangeCipherSpec      -> 1 / Out_Alert_Warning__Close_notify
+          In_ClientHelloRSA        -> 1 / Out_Alert_Warning__Close_notify
+          In_ClientKeyExchange     -> 1 / Out_Alert_Warning__Close_notify
+          In_EmptyCertificate      -> 1 / Out_Alert_Warning__Close_notify
+          In_Finished              -> 1 / Out_Alert_Warning__Close_notify
+          In_HeartbeatRequest      -> 1 / Out_Alert_Warning__Close_notify
+    3     In_ApplicationData       -> 1 / Out_Alert_Warning__Close_notify
+          In_ApplicationDataEmpty  -> 1 / Out_Alert_Warning__Close_notify
+          In_ChangeCipherSpec      -> 1 / Out_Alert_Warning__Close_notify
+          In_ClientHelloRSA        -> 1 / Out_Alert_Warning__Close_notify
+          In_ClientKeyExchange     -> 1 / Out_Alert_Warning__Close_notify
+          In_EmptyCertificate      -> 1 / Out_Alert_Warning__Close_notify
+          In_Finished              -> 1 / Out_Alert_Warning__Close_notify
+          In_HeartbeatRequest      -> 1 / Out_Alert_Warning__Close_notify
+    4     In_ApplicationData       -> 1 / Out_Alert_Fatal__Unexpected_message
+          In_ApplicationDataEmpty  -> 4 / Out_Empty
+          In_ChangeCipherSpec      -> 1 / Out_Alert_Fatal__Illegal_parameter
+          In_ClientHelloRSA        -> 1 / Out_Alert_Fatal__Unexpected_message
+          In_ClientKeyExchange     -> 8 / Out_Empty
+          In_EmptyCertificate      -> 1 / Out_Alert_Fatal__Unexpected_message
+          In_Finished              -> 1 / Out_Alert_Fatal__Unexpected_message
+          In_HeartbeatRequest      -> 1 / Out_Alert_Fatal__Unexpected_message
+    5     In_ApplicationData       -> 1 / Out_Alert_Fatal__Unexpected_message
+          In_ApplicationDataEmpty  -> 6 / Out_Empty
+          In_ChangeCipherSpec      -> 1 / Out_Alert_Fatal__Bad_record_MAC
+          In_ClientHelloRSA        -> 1 / Out_Alert_Fatal__Bad_record_MAC
+          In_ClientKeyExchange     -> 1 / Out_Alert_Fatal__Unexpected_message
+          In_EmptyCertificate      -> 1 / Out_Alert_Fatal__Bad_record_MAC
+          In_Finished              -> 7 / Out_ChangeCipherSpec___Finished
+          In_HeartbeatRequest      -> 1 / Out_Alert_Fatal__Unexpected_message
+    6     In_ApplicationData       -> 1 / Out_Alert_Fatal__Unexpected_message
+          In_ApplicationDataEmpty  -> 6 / Out_Empty
+          In_ChangeCipherSpec      -> 1 / Out_Alert_Fatal__Unexpected_message
+          In_ClientHelloRSA        -> 1 / Out_Alert_Fatal__Unexpected_message
+          In_ClientKeyExchange     -> 1 / Out_Alert_Fatal__Unexpected_message
+          In_EmptyCertificate      -> 1 / Out_Alert_Fatal__Unexpected_message
+          In_Finished              -> 7 / Out_ChangeCipherSpec___Finished
+          In_HeartbeatRequest      -> 1 / Out_Alert_Fatal__Unexpected_message
+    7     In_ApplicationData       -> 1 / Out_ApplicationDataAlert_Warning__Close_notify
+          In_ApplicationDataEmpty  -> 7 / Out_Empty
+          In_ChangeCipherSpec      -> 1 / Out_Alert_Fatal__Illegal_parameter_Alert_Warning__Close_notify
+          In_ClientHelloRSA        -> 1 / Out_Alert_Fatal__Internal_error
+          In_ClientKeyExchange     -> 1 / Out_Alert_Fatal__Unexpected_message
+          In_EmptyCertificate      -> 1 / Out_Alert_Fatal__Unexpected_message
+          In_Finished              -> 1 / Out_Alert_Fatal__Unexpected_message
+          In_HeartbeatRequest      -> 1 / Out_Alert_Fatal__Unexpected_message_Alert_Warning__Close_notify
+    8     In_ApplicationData       -> 1 / Out_Alert_Fatal__Unexpected_message
+          In_ApplicationDataEmpty  -> 8 / Out_Empty
+          In_ChangeCipherSpec      -> 5 / Out_Empty
+          In_ClientHelloRSA        -> 1 / Out_Alert_Fatal__Unexpected_message
+          In_ClientKeyExchange     -> 1 / Out_Alert_Fatal__Unexpected_message
+          In_EmptyCertificate      -> 1 / Out_Alert_Fatal__Unexpected_message
+          In_Finished              -> 1 / Out_Alert_Fatal__Unexpected_message
+          In_HeartbeatRequest      -> 1 / Out_Alert_Fatal__Unexpected_message
+-}
 rSABSAFECV4V0V4ServerRegular :: MealyAutomaton Int RSABSAFECV4V0V4ServerRegularInput RSABSAFECV4V0V4ServerRegularOutput
-rSABSAFECV4V0V4ServerRegular = mkMealyAutomaton delta lambda (Set.fromList [0..8]) 0
+rSABSAFECV4V0V4ServerRegular =
+    case mkMealyAutomatonTable 9 0 deltaTable lambdaTable of
+        Right m -> m
+        Left err -> error ("haal-gen: invalid transition table: " ++ err)
   where
-    delta 0 In_ApplicationData = 1
-    delta 0 In_ApplicationDataEmpty = 2
-    delta 0 In_ChangeCipherSpec = 3
-    delta 0 In_ClientHelloRSA = 4
-    delta 0 In_ClientKeyExchange = 1
-    delta 0 In_EmptyCertificate = 1
-    delta 0 In_Finished = 1
-    delta 0 In_HeartbeatRequest = 1
-    delta 5 In_ApplicationData = 1
-    delta 5 In_ApplicationDataEmpty = 6
-    delta 5 In_ChangeCipherSpec = 1
-    delta 5 In_ClientHelloRSA = 1
-    delta 5 In_ClientKeyExchange = 1
-    delta 5 In_EmptyCertificate = 1
-    delta 5 In_Finished = 7
-    delta 5 In_HeartbeatRequest = 1
-    delta 4 In_ApplicationData = 1
-    delta 4 In_ApplicationDataEmpty = 4
-    delta 4 In_ChangeCipherSpec = 1
-    delta 4 In_ClientHelloRSA = 1
-    delta 4 In_ClientKeyExchange = 8
-    delta 4 In_EmptyCertificate = 1
-    delta 4 In_Finished = 1
-    delta 4 In_HeartbeatRequest = 1
-    delta 6 In_ApplicationData = 1
-    delta 6 In_ApplicationDataEmpty = 6
-    delta 6 In_ChangeCipherSpec = 1
-    delta 6 In_ClientHelloRSA = 1
-    delta 6 In_ClientKeyExchange = 1
-    delta 6 In_EmptyCertificate = 1
-    delta 6 In_Finished = 7
-    delta 6 In_HeartbeatRequest = 1
-    delta 8 In_ApplicationData = 1
-    delta 8 In_ApplicationDataEmpty = 8
-    delta 8 In_ChangeCipherSpec = 5
-    delta 8 In_ClientHelloRSA = 1
-    delta 8 In_ClientKeyExchange = 1
-    delta 8 In_EmptyCertificate = 1
-    delta 8 In_Finished = 1
-    delta 8 In_HeartbeatRequest = 1
-    delta 3 In_ApplicationData = 1
-    delta 3 In_ApplicationDataEmpty = 1
-    delta 3 In_ChangeCipherSpec = 1
-    delta 3 In_ClientHelloRSA = 1
-    delta 3 In_ClientKeyExchange = 1
-    delta 3 In_EmptyCertificate = 1
-    delta 3 In_Finished = 1
-    delta 3 In_HeartbeatRequest = 1
-    delta 2 In_ApplicationData = 1
-    delta 2 In_ApplicationDataEmpty = 3
-    delta 2 In_ChangeCipherSpec = 1
-    delta 2 In_ClientHelloRSA = 1
-    delta 2 In_ClientKeyExchange = 1
-    delta 2 In_EmptyCertificate = 1
-    delta 2 In_Finished = 1
-    delta 2 In_HeartbeatRequest = 1
-    delta 7 In_ApplicationData = 1
-    delta 7 In_ApplicationDataEmpty = 7
-    delta 7 In_ChangeCipherSpec = 1
-    delta 7 In_ClientHelloRSA = 1
-    delta 7 In_ClientKeyExchange = 1
-    delta 7 In_EmptyCertificate = 1
-    delta 7 In_Finished = 1
-    delta 7 In_HeartbeatRequest = 1
-    delta 1 In_ApplicationData = 1
-    delta 1 In_ApplicationDataEmpty = 1
-    delta 1 In_ChangeCipherSpec = 1
-    delta 1 In_ClientHelloRSA = 1
-    delta 1 In_ClientKeyExchange = 1
-    delta 1 In_EmptyCertificate = 1
-    delta 1 In_Finished = 1
-    delta 1 In_HeartbeatRequest = 1
-    delta _ _ = error "haal-gen: undefined transition"
-    lambda 0 In_ApplicationData = Out_Alert_Warning__Close_notify
-    lambda 0 In_ApplicationDataEmpty = Out_Empty
-    lambda 0 In_ChangeCipherSpec = Out_Empty
-    lambda 0 In_ClientHelloRSA = Out_ServerHello___Certificate___ServerHelloDone
-    lambda 0 In_ClientKeyExchange = Out_Alert_Warning__Close_notify
-    lambda 0 In_EmptyCertificate = Out_Alert_Warning__Close_notify
-    lambda 0 In_Finished = Out_Alert_Warning__Close_notify
-    lambda 0 In_HeartbeatRequest = Out_Alert_Warning__Close_notify
-    lambda 5 In_ApplicationData = Out_Alert_Fatal__Unexpected_message
-    lambda 5 In_ApplicationDataEmpty = Out_Empty
-    lambda 5 In_ChangeCipherSpec = Out_Alert_Fatal__Bad_record_MAC
-    lambda 5 In_ClientHelloRSA = Out_Alert_Fatal__Bad_record_MAC
-    lambda 5 In_ClientKeyExchange = Out_Alert_Fatal__Unexpected_message
-    lambda 5 In_EmptyCertificate = Out_Alert_Fatal__Bad_record_MAC
-    lambda 5 In_Finished = Out_ChangeCipherSpec___Finished
-    lambda 5 In_HeartbeatRequest = Out_Alert_Fatal__Unexpected_message
-    lambda 4 In_ApplicationData = Out_Alert_Fatal__Unexpected_message
-    lambda 4 In_ApplicationDataEmpty = Out_Empty
-    lambda 4 In_ChangeCipherSpec = Out_Alert_Fatal__Illegal_parameter
-    lambda 4 In_ClientHelloRSA = Out_Alert_Fatal__Unexpected_message
-    lambda 4 In_ClientKeyExchange = Out_Empty
-    lambda 4 In_EmptyCertificate = Out_Alert_Fatal__Unexpected_message
-    lambda 4 In_Finished = Out_Alert_Fatal__Unexpected_message
-    lambda 4 In_HeartbeatRequest = Out_Alert_Fatal__Unexpected_message
-    lambda 6 In_ApplicationData = Out_Alert_Fatal__Unexpected_message
-    lambda 6 In_ApplicationDataEmpty = Out_Empty
-    lambda 6 In_ChangeCipherSpec = Out_Alert_Fatal__Unexpected_message
-    lambda 6 In_ClientHelloRSA = Out_Alert_Fatal__Unexpected_message
-    lambda 6 In_ClientKeyExchange = Out_Alert_Fatal__Unexpected_message
-    lambda 6 In_EmptyCertificate = Out_Alert_Fatal__Unexpected_message
-    lambda 6 In_Finished = Out_ChangeCipherSpec___Finished
-    lambda 6 In_HeartbeatRequest = Out_Alert_Fatal__Unexpected_message
-    lambda 8 In_ApplicationData = Out_Alert_Fatal__Unexpected_message
-    lambda 8 In_ApplicationDataEmpty = Out_Empty
-    lambda 8 In_ChangeCipherSpec = Out_Empty
-    lambda 8 In_ClientHelloRSA = Out_Alert_Fatal__Unexpected_message
-    lambda 8 In_ClientKeyExchange = Out_Alert_Fatal__Unexpected_message
-    lambda 8 In_EmptyCertificate = Out_Alert_Fatal__Unexpected_message
-    lambda 8 In_Finished = Out_Alert_Fatal__Unexpected_message
-    lambda 8 In_HeartbeatRequest = Out_Alert_Fatal__Unexpected_message
-    lambda 3 In_ApplicationData = Out_Alert_Warning__Close_notify
-    lambda 3 In_ApplicationDataEmpty = Out_Alert_Warning__Close_notify
-    lambda 3 In_ChangeCipherSpec = Out_Alert_Warning__Close_notify
-    lambda 3 In_ClientHelloRSA = Out_Alert_Warning__Close_notify
-    lambda 3 In_ClientKeyExchange = Out_Alert_Warning__Close_notify
-    lambda 3 In_EmptyCertificate = Out_Alert_Warning__Close_notify
-    lambda 3 In_Finished = Out_Alert_Warning__Close_notify
-    lambda 3 In_HeartbeatRequest = Out_Alert_Warning__Close_notify
-    lambda 2 In_ApplicationData = Out_Alert_Warning__Close_notify
-    lambda 2 In_ApplicationDataEmpty = Out_Empty
-    lambda 2 In_ChangeCipherSpec = Out_Alert_Warning__Close_notify
-    lambda 2 In_ClientHelloRSA = Out_Alert_Warning__Close_notify
-    lambda 2 In_ClientKeyExchange = Out_Alert_Warning__Close_notify
-    lambda 2 In_EmptyCertificate = Out_Alert_Warning__Close_notify
-    lambda 2 In_Finished = Out_Alert_Warning__Close_notify
-    lambda 2 In_HeartbeatRequest = Out_Alert_Warning__Close_notify
-    lambda 7 In_ApplicationData = Out_ApplicationDataAlert_Warning__Close_notify
-    lambda 7 In_ApplicationDataEmpty = Out_Empty
-    lambda 7 In_ChangeCipherSpec = Out_Alert_Fatal__Illegal_parameter_Alert_Warning__Close_notify
-    lambda 7 In_ClientHelloRSA = Out_Alert_Fatal__Internal_error
-    lambda 7 In_ClientKeyExchange = Out_Alert_Fatal__Unexpected_message
-    lambda 7 In_EmptyCertificate = Out_Alert_Fatal__Unexpected_message
-    lambda 7 In_Finished = Out_Alert_Fatal__Unexpected_message
-    lambda 7 In_HeartbeatRequest = Out_Alert_Fatal__Unexpected_message_Alert_Warning__Close_notify
-    lambda 1 In_ApplicationData = Out_Empty
-    lambda 1 In_ApplicationDataEmpty = Out_Empty
-    lambda 1 In_ChangeCipherSpec = Out_Empty
-    lambda 1 In_ClientHelloRSA = Out_Empty
-    lambda 1 In_ClientKeyExchange = Out_Empty
-    lambda 1 In_EmptyCertificate = Out_Empty
-    lambda 1 In_Finished = Out_Empty
-    lambda 1 In_HeartbeatRequest = Out_Empty
-    lambda _ _ = error "haal-gen: undefined transition"
+    deltaTable =
+        "\1\2\3\4\1\1\1\1\
+        \\1\1\1\1\1\1\1\1\
+        \\1\3\1\1\1\1\1\1\
+        \\1\1\1\1\1\1\1\1\
+        \\1\4\1\1\8\1\1\1\
+        \\1\6\1\1\1\1\7\1\
+        \\1\6\1\1\1\1\7\1\
+        \\1\7\1\1\1\1\1\1\
+        \\1\8\5\1\1\1\1\1"
+    lambdaTable =
+        "\0\1\1\2\0\0\0\0\
+        \\1\1\1\1\1\1\1\1\
+        \\0\1\0\0\0\0\0\0\
+        \\0\0\0\0\0\0\0\0\
+        \\3\1\6\3\1\3\3\3\
+        \\3\1\4\4\3\4\5\3\
+        \\3\1\3\3\3\3\5\3\
+        \\7\1\8\9\3\3\3\10\
+        \\3\1\1\3\3\3\3\3"
