Browse Source

test parsing of an actual sml dump from my meter

Thomas Buck 2 months ago
parent
commit
cd70b4877a
5 changed files with 491 additions and 2 deletions
  1. 1
    1
      compile_commands.json
  2. 23
    0
      include/smart_meter.h
  3. 26
    1
      platformio.ini
  4. 6
    0
      src/main.cpp
  5. 435
    0
      src/smart_meter.cpp

+ 1
- 1
compile_commands.json View File

@@ -1 +1 @@
1
-.pio/build/lora/compile_commands.json
1
+.pio/build/loratx/compile_commands.json

+ 23
- 0
include/smart_meter.h View File

@@ -0,0 +1,23 @@
1
+/*
2
+ * smart_meter.h
3
+ *
4
+ * ESP8266 / ESP32 Environmental Sensor
5
+ *
6
+ * ----------------------------------------------------------------------------
7
+ * "THE BEER-WARE LICENSE" (Revision 42):
8
+ * <xythobuz@xythobuz.de> wrote this file.  As long as you retain this notice
9
+ * you can do whatever you want with this stuff. If we meet some day, and you
10
+ * think this stuff is worth it, you can buy me a beer in return.   Thomas Buck
11
+ * ----------------------------------------------------------------------------
12
+ */
13
+
14
+#ifndef __ESP_ENV_SMART_METER__
15
+#define __ESP_ENV_SMART_METER__
16
+
17
+#ifdef FEATURE_SML
18
+
19
+void sml_init(void);
20
+
21
+#endif // FEATURE_SML
22
+
23
+#endif // __ESP_ENV_SMART_METER__

+ 26
- 1
platformio.ini View File

@@ -36,7 +36,7 @@ lib_deps =
36 36
     https://github.com/Bodmer/TFT_eSPI.git#01483a1043a4915c4e34c928fb48a87d3b38a248
37 37
     https://github.com/PaulStoffregen/XPT2046_Touchscreen.git#5d5120e93ab5d28b3f1db6d754819c354c2da019
38 38
 
39
-[env:lora]
39
+[env:loratx]
40 40
 platform = espressif32
41 41
 board = heltec_wifi_lora_32_V3
42 42
 framework = arduino
@@ -53,12 +53,37 @@ build_flags =
53 53
   -DENABLE_MQTT
54 54
   -DNEW_ESP32_LIB
55 55
   -DFEATURE_LORA
56
+  -DFEATURE_SML
56 57
   -DFEATURE_DISABLE_WIFI
57 58
 lib_deps =
58 59
     https://github.com/knolleary/pubsubclient.git#2d228f2f862a95846c65a8518c79f48dfc8f188c
59 60
     https://github.com/rlogiacco/CircularBuffer.git#f29cf01b6e8603422f3668d51036ac124f803404
60 61
     https://github.com/Links2004/arduinoWebSockets.git#30d5e136665a52880f641ddd7245b3ba05ecd32b
61 62
     https://github.com/ropg/heltec_esp32_lora_v3.git#9f281354507849755a597ebcce3721582f3b59b8
63
+    https://github.com/olliiiver/sml_parser.git#f256f6935a6c6cad1a7a7f40ea18ac7d2dd28f0a
64
+
65
+[env:lorarx]
66
+platform = espressif32
67
+board = heltec_wifi_lora_32_V3
68
+framework = arduino
69
+upload_protocol = esptool
70
+upload_port = /dev/ttyUSB2
71
+monitor_port = /dev/ttyUSB2
72
+monitor_speed = 115200
73
+extra_scripts = pre:extra_script.py
74
+build_flags =
75
+  -DSENSOR_HOSTNAME_PREFIX=\"lora-\"
76
+  "-DNAME_OF_FEATURE=\"Lora Gatway\""
77
+  -DENABLE_WEBSOCKETS
78
+  -DENABLE_DEBUGLOG
79
+  -DENABLE_MQTT
80
+  -DNEW_ESP32_LIB
81
+  -DFEATURE_LORA
82
+lib_deps =
83
+    https://github.com/knolleary/pubsubclient.git#2d228f2f862a95846c65a8518c79f48dfc8f188c
84
+    https://github.com/rlogiacco/CircularBuffer.git#f29cf01b6e8603422f3668d51036ac124f803404
85
+    https://github.com/Links2004/arduinoWebSockets.git#30d5e136665a52880f641ddd7245b3ba05ecd32b
86
+    https://github.com/ropg/heltec_esp32_lora_v3.git#9f281354507849755a597ebcce3721582f3b59b8
62 87
 
63 88
 [env:esp8266env]
64 89
 platform = espressif8266

+ 6
- 0
src/main.cpp View File

@@ -34,6 +34,7 @@
34 34
 #include "servers.h"
35 35
 #include "ui.h"
36 36
 #include "lora.h"
37
+#include "smart_meter.h"
37 38
 
38 39
 unsigned long last_led_blink_time = 0;
39 40
 
@@ -96,6 +97,11 @@ void setup() {
96 97
     debug.println(F("Sensors"));
97 98
     initSensors();
98 99
 
100
+#ifdef FEATURE_SML
101
+    debug.println(F("SML"));
102
+    sml_init();
103
+#endif // FEATURE_SML
104
+
99 105
 #ifdef FEATURE_LORA
100 106
     debug.println(F("LoRa"));
101 107
     lora_init();

+ 435
- 0
src/smart_meter.cpp View File

@@ -0,0 +1,435 @@
1
+/*
2
+ * smart_meter.cpp
3
+ *
4
+ * ESP8266 / ESP32 Environmental Sensor
5
+ *
6
+ * ----------------------------------------------------------------------------
7
+ * "THE BEER-WARE LICENSE" (Revision 42):
8
+ * <xythobuz@xythobuz.de> wrote this file.  As long as you retain this notice
9
+ * you can do whatever you want with this stuff. If we meet some day, and you
10
+ * think this stuff is worth it, you can buy me a beer in return.   Thomas Buck
11
+ * ----------------------------------------------------------------------------
12
+ */
13
+
14
+#ifdef FEATURE_SML
15
+
16
+#include <Arduino.h>
17
+#include <sml.h>
18
+
19
+#include "config.h"
20
+#include "DebugLog.h"
21
+#include "smart_meter.h"
22
+
23
+const unsigned char ehz_bin[]  = {
24
+  0x1b, 0x1b, 0x1b, 0x1b, 0x01, 0x01, 0x01, 0x01, 0x76, 0x05, 0x0e, 0x82, 0x41, 0x32,
25
+  0x62, 0x00, 0x62, 0x00, 0x72, 0x63, 0x01, 0x01, 0x76, 0x01, 0x01, 0x05, 0x04, 0xd6, 0x15, 0xbc,
26
+  0x0b, 0x09, 0x01, 0x49, 0x53, 0x4b, 0x00, 0x04, 0xa0, 0x58, 0x2c, 0x01, 0x01, 0x63, 0xb2, 0x30,
27
+  0x00, 0x76, 0x05, 0x0e, 0x82, 0x41, 0x33, 0x62, 0x00, 0x62, 0x00, 0x72, 0x63, 0x07, 0x01, 0x77,
28
+  0x01, 0x0b, 0x09, 0x01, 0x49, 0x53, 0x4b, 0x00, 0x04, 0xa0, 0x58, 0x2c, 0x07, 0x01, 0x00, 0x62,
29
+  0x0a, 0xff, 0xff, 0x72, 0x62, 0x01, 0x65, 0x06, 0x4b, 0x6e, 0x96, 0x76, 0x77, 0x07, 0x81, 0x81,
30
+  0xc7, 0x82, 0x03, 0xff, 0x01, 0x01, 0x01, 0x01, 0x04, 0x49, 0x53, 0x4b, 0x01, 0x77, 0x07, 0x01,
31
+  0x00, 0x00, 0x00, 0x09, 0xff, 0x01, 0x01, 0x01, 0x01, 0x0b, 0x09, 0x01, 0x49, 0x53, 0x4b, 0x00,
32
+  0x04, 0xa0, 0x58, 0x2c, 0x01, 0x77, 0x07, 0x01, 0x00, 0x01, 0x08, 0x00, 0xff, 0x65, 0x00, 0x00,
33
+  0x01, 0x82, 0x01, 0x62, 0x1e, 0x52, 0x03, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5a, 0x15,
34
+  0x01, 0x77, 0x07, 0x01, 0x00, 0x01, 0x08, 0x01, 0xff, 0x01, 0x01, 0x62, 0x1e, 0x52, 0x03, 0x69,
35
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5a, 0x15, 0x01, 0x77, 0x07, 0x01, 0x00, 0x01, 0x08, 0x02,
36
+  0xff, 0x01, 0x01, 0x62, 0x1e, 0x52, 0x03, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
37
+  0x01, 0x77, 0x07, 0x81, 0x81, 0xc7, 0x82, 0x05, 0xff, 0x01, 0x01, 0x01, 0x01, 0x83, 0x02, 0x82,
38
+  0xd9, 0x2c, 0x87, 0x12, 0x0e, 0xf0, 0xf5, 0xdc, 0x12, 0x8e, 0xf0, 0x1d, 0x0f, 0x04, 0xfb, 0xf5,
39
+  0x48, 0x00, 0x7b, 0x82, 0x00, 0xf3, 0x46, 0x9c, 0x6d, 0xdd, 0x62, 0x15, 0xa9, 0x10, 0x83, 0x1c,
40
+  0xd7, 0x44, 0x83, 0x47, 0xaf, 0xa1, 0xa9, 0x58, 0x33, 0x3c, 0x37, 0xb7, 0x34, 0x77, 0x9a, 0x01,
41
+  0x01, 0x01, 0x63, 0x8d, 0x72, 0x00, 0x76, 0x05, 0x0e, 0x82, 0x41, 0x34, 0x62, 0x00, 0x62, 0x00,
42
+  0x72, 0x63, 0x02, 0x01, 0x71, 0x01, 0x63, 0x42, 0x2b, 0x00,
43
+
44
+  0x1b, 0x1b, 0x1b, 0x1b, 0x1a, 0x00,
45
+  0xed, 0x73,
46
+
47
+  0x1b, 0x1b, 0x1b, 0x1b, 0x01, 0x01, 0x01, 0x01, 0x76, 0x05, 0x0e, 0x82, 0x41, 0x35,
48
+  0x62, 0x00, 0x62, 0x00, 0x72, 0x63, 0x01, 0x01, 0x76, 0x01, 0x01, 0x05, 0x04, 0xd6, 0x15, 0xbd,
49
+  0x0b, 0x09, 0x01, 0x49, 0x53, 0x4b, 0x00, 0x04, 0xa0, 0x58, 0x2c, 0x01, 0x01, 0x63, 0x81, 0xac,
50
+  0x00, 0x76, 0x05, 0x0e, 0x82, 0x41, 0x36, 0x62, 0x00, 0x62, 0x00, 0x72, 0x63, 0x07, 0x01, 0x77,
51
+  0x01, 0x0b, 0x09, 0x01, 0x49, 0x53, 0x4b, 0x00, 0x04, 0xa0, 0x58, 0x2c, 0x07, 0x01, 0x00, 0x62,
52
+  0x0a, 0xff, 0xff, 0x72, 0x62, 0x01, 0x65, 0x06, 0x4b, 0x6e, 0x97, 0x76, 0x77, 0x07, 0x81, 0x81,
53
+  0xc7, 0x82, 0x03, 0xff, 0x01, 0x01, 0x01, 0x01, 0x04, 0x49, 0x53, 0x4b, 0x01, 0x77, 0x07, 0x01,
54
+  0x00, 0x00, 0x00, 0x09, 0xff, 0x01, 0x01, 0x01, 0x01, 0x0b, 0x09, 0x01, 0x49, 0x53, 0x4b, 0x00,
55
+  0x04, 0xa0, 0x58, 0x2c, 0x01, 0x77, 0x07, 0x01, 0x00, 0x01, 0x08, 0x00, 0xff, 0x65, 0x00, 0x00,
56
+  0x01, 0x82, 0x01, 0x62, 0x1e, 0x52, 0x03, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5a, 0x15,
57
+  0x01, 0x77, 0x07, 0x01, 0x00, 0x01, 0x08, 0x01, 0xff, 0x01, 0x01, 0x62, 0x1e, 0x52, 0x03, 0x69,
58
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5a, 0x15, 0x01, 0x77, 0x07, 0x01, 0x00, 0x01, 0x08, 0x02,
59
+  0xff, 0x01, 0x01, 0x62, 0x1e, 0x52, 0x03, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
60
+  0x01, 0x77, 0x07, 0x81, 0x81, 0xc7, 0x82, 0x05, 0xff, 0x01, 0x01, 0x01, 0x01, 0x83, 0x02, 0x82,
61
+  0xd9, 0x2c, 0x87, 0x12, 0x0e, 0xf0, 0xf5, 0xdc, 0x12, 0x8e, 0xf0, 0x1d, 0x0f, 0x04, 0xfb, 0xf5,
62
+  0x48, 0x00, 0x7b, 0x82, 0x00, 0xf3, 0x46, 0x9c, 0x6d, 0xdd, 0x62, 0x15, 0xa9, 0x10, 0x83, 0x1c,
63
+  0xd7, 0x44, 0x83, 0x47, 0xaf, 0xa1, 0xa9, 0x58, 0x33, 0x3c, 0x37, 0xb7, 0x34, 0x77, 0x9a, 0x01,
64
+  0x01, 0x01, 0x63, 0x12, 0xdf, 0x00, 0x76, 0x05, 0x0e, 0x82, 0x41, 0x37, 0x62, 0x00, 0x62, 0x00,
65
+  0x72, 0x63, 0x02, 0x01, 0x71, 0x01, 0x63, 0xf1, 0xd5, 0x00, 0x1b, 0x1b, 0x1b, 0x1b, 0x1a, 0x00,
66
+  0xb6, 0x14, 0x1b, 0x1b, 0x1b, 0x1b, 0x01, 0x01, 0x01, 0x01, 0x76, 0x05, 0x0e, 0x82, 0x41, 0x38,
67
+  0x62, 0x00, 0x62, 0x00, 0x72, 0x63, 0x01, 0x01, 0x76, 0x01, 0x01, 0x05, 0x04, 0xd6, 0x15, 0xbe,
68
+  0x0b, 0x09, 0x01, 0x49, 0x53, 0x4b, 0x00, 0x04, 0xa0, 0x58, 0x2c, 0x01, 0x01, 0x63, 0x09, 0x83,
69
+  0x00, 0x76, 0x05, 0x0e, 0x82, 0x41, 0x39, 0x62, 0x00, 0x62, 0x00, 0x72, 0x63, 0x07, 0x01, 0x77,
70
+  0x01, 0x0b, 0x09, 0x01, 0x49, 0x53, 0x4b, 0x00, 0x04, 0xa0, 0x58, 0x2c, 0x07, 0x01, 0x00, 0x62,
71
+  0x0a, 0xff, 0xff, 0x72, 0x62, 0x01, 0x65, 0x06, 0x4b, 0x6e, 0x99, 0x76, 0x77, 0x07, 0x81, 0x81,
72
+  0xc7, 0x82, 0x03, 0xff, 0x01, 0x01, 0x01, 0x01, 0x04, 0x49, 0x53, 0x4b, 0x01, 0x77, 0x07, 0x01,
73
+  0x00, 0x00, 0x00, 0x09, 0xff, 0x01, 0x01, 0x01, 0x01, 0x0b, 0x09, 0x01, 0x49, 0x53, 0x4b, 0x00,
74
+  0x04, 0xa0, 0x58, 0x2c, 0x01, 0x77, 0x07, 0x01, 0x00, 0x01, 0x08, 0x00, 0xff, 0x65, 0x00, 0x00,
75
+  0x01, 0x82, 0x01, 0x62, 0x1e, 0x52, 0x03, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5a, 0x15,
76
+  0x01, 0x77, 0x07, 0x01, 0x00, 0x01, 0x08, 0x01, 0xff, 0x01, 0x01, 0x62, 0x1e, 0x52, 0x03, 0x69,
77
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5a, 0x15, 0x01, 0x77, 0x07, 0x01, 0x00, 0x01, 0x08, 0x02,
78
+  0xff, 0x01, 0x01, 0x62, 0x1e, 0x52, 0x03, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
79
+  0x01, 0x77, 0x07, 0x81, 0x81, 0xc7, 0x82, 0x05, 0xff, 0x01, 0x01, 0x01, 0x01, 0x83, 0x02, 0x82,
80
+  0xd9, 0x2c, 0x87, 0x12, 0x0e, 0xf0, 0xf5, 0xdc, 0x12, 0x8e, 0xf0, 0x1d, 0x0f, 0x04, 0xfb, 0xf5,
81
+  0x48, 0x00, 0x7b, 0x82, 0x00, 0xf3, 0x46, 0x9c, 0x6d, 0xdd, 0x62, 0x15, 0xa9, 0x10, 0x83, 0x1c,
82
+  0xd7, 0x44, 0x83, 0x47, 0xaf, 0xa1, 0xa9, 0x58, 0x33, 0x3c, 0x37, 0xb7, 0x34, 0x77, 0x9a, 0x01,
83
+  0x01, 0x01, 0x63, 0xa2, 0xea, 0x00, 0x76, 0x05, 0x0e, 0x82, 0x41, 0x3a, 0x62, 0x00, 0x62, 0x00,
84
+  0x72, 0x63, 0x02, 0x01, 0x71, 0x01, 0x63, 0x9f, 0x62, 0x00, 0x1b, 0x1b, 0x1b, 0x1b, 0x1a, 0x00,
85
+  0x35, 0x97, 0x1b, 0x1b, 0x1b, 0x1b, 0x01, 0x01, 0x01, 0x01, 0x76, 0x05, 0x0e, 0x82, 0x41, 0x3b,
86
+  0x62, 0x00, 0x62, 0x00, 0x72, 0x63, 0x01, 0x01, 0x76, 0x01, 0x01, 0x05, 0x04, 0xd6, 0x15, 0xbf,
87
+  0x0b, 0x09, 0x01, 0x49, 0x53, 0x4b, 0x00, 0x04, 0xa0, 0x58, 0x2c, 0x01, 0x01, 0x63, 0xf6, 0x9c,
88
+  0x00, 0x76, 0x05, 0x0e, 0x82, 0x41, 0x3c, 0x62, 0x00, 0x62, 0x00, 0x72, 0x63, 0x07, 0x01, 0x77,
89
+  0x01, 0x0b, 0x09, 0x01, 0x49, 0x53, 0x4b, 0x00, 0x04, 0xa0, 0x58, 0x2c, 0x07, 0x01, 0x00, 0x62,
90
+  0x0a, 0xff, 0xff, 0x72, 0x62, 0x01, 0x65, 0x06, 0x4b, 0x6e, 0x9a, 0x76, 0x77, 0x07, 0x81, 0x81,
91
+  0xc7, 0x82, 0x03, 0xff, 0x01, 0x01, 0x01, 0x01, 0x04, 0x49, 0x53, 0x4b, 0x01, 0x77, 0x07, 0x01,
92
+  0x00, 0x00, 0x00, 0x09, 0xff, 0x01, 0x01, 0x01, 0x01, 0x0b, 0x09, 0x01, 0x49, 0x53, 0x4b, 0x00,
93
+  0x04, 0xa0, 0x58, 0x2c, 0x01, 0x77, 0x07, 0x01, 0x00, 0x01, 0x08, 0x00, 0xff, 0x65, 0x00, 0x00,
94
+  0x01, 0x82, 0x01, 0x62, 0x1e, 0x52, 0x03, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5a, 0x15,
95
+  0x01, 0x77, 0x07, 0x01, 0x00, 0x01, 0x08, 0x01, 0xff, 0x01, 0x01, 0x62, 0x1e, 0x52, 0x03, 0x69,
96
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5a, 0x15, 0x01, 0x77, 0x07, 0x01, 0x00, 0x01, 0x08, 0x02,
97
+  0xff, 0x01, 0x01, 0x62, 0x1e, 0x52, 0x03, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
98
+  0x01, 0x77, 0x07, 0x81, 0x81, 0xc7, 0x82, 0x05, 0xff, 0x01, 0x01, 0x01, 0x01, 0x83, 0x02, 0x82,
99
+  0xd9, 0x2c, 0x87, 0x12, 0x0e, 0xf0, 0xf5, 0xdc, 0x12, 0x8e, 0xf0, 0x1d, 0x0f, 0x04, 0xfb, 0xf5,
100
+  0x48, 0x00, 0x7b, 0x82, 0x00, 0xf3, 0x46, 0x9c, 0x6d, 0xdd, 0x62, 0x15, 0xa9, 0x10, 0x83, 0x1c,
101
+  0xd7, 0x44, 0x83, 0x47, 0xaf, 0xa1, 0xa9, 0x58, 0x33, 0x3c, 0x37, 0xb7, 0x34, 0x77, 0x9a, 0x01,
102
+  0x01, 0x01, 0x63, 0x93, 0xfa, 0x00, 0x76, 0x05, 0x0e, 0x82, 0x41, 0x3d, 0x62, 0x00, 0x62, 0x00,
103
+  0x72, 0x63, 0x02, 0x01, 0x71, 0x01, 0x63, 0x79, 0xc2, 0x00, 0x1b, 0x1b, 0x1b, 0x1b, 0x1a, 0x00,
104
+  0x6a, 0xf1, 0x1b, 0x1b, 0x1b, 0x1b, 0x01, 0x01, 0x01, 0x01, 0x76, 0x05, 0x0e, 0x82, 0x41, 0x3e,
105
+  0x62, 0x00, 0x62, 0x00, 0x72, 0x63, 0x01, 0x01, 0x76, 0x01, 0x01, 0x05, 0x04, 0xd6, 0x15, 0xc0,
106
+  0x0b, 0x09, 0x01, 0x49, 0x53, 0x4b, 0x00, 0x04, 0xa0, 0x58, 0x2c, 0x01, 0x01, 0x63, 0x2a, 0x90,
107
+  0x00, 0x76, 0x05, 0x0e, 0x82, 0x41, 0x3f, 0x62, 0x00, 0x62, 0x00, 0x72, 0x63, 0x07, 0x01, 0x77,
108
+  0x01, 0x0b, 0x09, 0x01, 0x49, 0x53, 0x4b, 0x00, 0x04, 0xa0, 0x58, 0x2c, 0x07, 0x01, 0x00, 0x62,
109
+  0x0a, 0xff, 0xff, 0x72, 0x62, 0x01, 0x65, 0x06, 0x4b, 0x6e, 0x9c, 0x76, 0x77, 0x07, 0x81, 0x81,
110
+  0xc7, 0x82, 0x03, 0xff, 0x01, 0x01, 0x01, 0x01, 0x04, 0x49, 0x53, 0x4b, 0x01, 0x77, 0x07, 0x01,
111
+  0x00, 0x00, 0x00, 0x09, 0xff, 0x01, 0x01, 0x01, 0x01, 0x0b, 0x09, 0x01, 0x49, 0x53, 0x4b, 0x00,
112
+  0x04, 0xa0, 0x58, 0x2c, 0x01, 0x77, 0x07, 0x01, 0x00, 0x01, 0x08, 0x00, 0xff, 0x65, 0x00, 0x00,
113
+  0x01, 0x82, 0x01, 0x62, 0x1e, 0x52, 0x03, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5a, 0x15,
114
+  0x01, 0x77, 0x07, 0x01, 0x00, 0x01, 0x08, 0x01, 0xff, 0x01, 0x01, 0x62, 0x1e, 0x52, 0x03, 0x69,
115
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5a, 0x15, 0x01, 0x77, 0x07, 0x01, 0x00, 0x01, 0x08, 0x02,
116
+  0xff, 0x01, 0x01, 0x62, 0x1e, 0x52, 0x03, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
117
+  0x01, 0x77, 0x07, 0x81, 0x81, 0xc7, 0x82, 0x05, 0xff, 0x01, 0x01, 0x01, 0x01, 0x83, 0x02, 0x82,
118
+  0xd9, 0x2c, 0x87, 0x12, 0x0e, 0xf0, 0xf5, 0xdc, 0x12, 0x8e, 0xf0, 0x1d, 0x0f, 0x04, 0xfb, 0xf5,
119
+  0x48, 0x00, 0x7b, 0x82, 0x00, 0xf3, 0x46, 0x9c, 0x6d, 0xdd, 0x62, 0x15, 0xa9, 0x10, 0x83, 0x1c,
120
+  0xd7, 0x44, 0x83, 0x47, 0xaf, 0xa1, 0xa9, 0x58, 0x33, 0x3c, 0x37, 0xb7, 0x34, 0x77, 0x9a, 0x01,
121
+  0x01, 0x01, 0x63, 0x48, 0x65, 0x00, 0x76, 0x05, 0x0e, 0x82, 0x41, 0x40, 0x62, 0x00, 0x62, 0x00,
122
+  0x72, 0x63, 0x02, 0x01, 0x71, 0x01, 0x63, 0xdd, 0x2b, 0x00, 0x1b, 0x1b, 0x1b, 0x1b, 0x1a, 0x00,
123
+  0x19, 0x1d, 0x1b, 0x1b, 0x1b, 0x1b, 0x01, 0x01, 0x01, 0x01, 0x76, 0x05, 0x0e, 0x82, 0x41, 0x41,
124
+  0x62, 0x00, 0x62, 0x00, 0x72, 0x63, 0x01, 0x01, 0x76, 0x01, 0x01, 0x05, 0x04, 0xd6, 0x15, 0xc1,
125
+  0x0b, 0x09, 0x01, 0x49, 0x53, 0x4b, 0x00, 0x04, 0xa0, 0x58, 0x2c, 0x01, 0x01, 0x63, 0xee, 0x5e,
126
+  0x00, 0x76, 0x05, 0x0e, 0x82, 0x41, 0x42, 0x62, 0x00, 0x62, 0x00, 0x72, 0x63, 0x07, 0x01, 0x77,
127
+  0x01, 0x0b, 0x09, 0x01, 0x49, 0x53, 0x4b, 0x00, 0x04, 0xa0, 0x58, 0x2c, 0x07, 0x01, 0x00, 0x62,
128
+  0x0a, 0xff, 0xff, 0x72, 0x62, 0x01, 0x65, 0x06, 0x4b, 0x6e, 0x9d, 0x76, 0x77, 0x07, 0x81, 0x81,
129
+  0xc7, 0x82, 0x03, 0xff, 0x01, 0x01, 0x01, 0x01, 0x04, 0x49, 0x53, 0x4b, 0x01, 0x77, 0x07, 0x01,
130
+  0x00, 0x00, 0x00, 0x09, 0xff, 0x01, 0x01, 0x01, 0x01, 0x0b, 0x09, 0x01, 0x49, 0x53, 0x4b, 0x00,
131
+  0x04, 0xa0, 0x58, 0x2c, 0x01, 0x77, 0x07, 0x01, 0x00, 0x01, 0x08, 0x00, 0xff, 0x65, 0x00, 0x00,
132
+  0x01, 0x82, 0x01, 0x62, 0x1e, 0x52, 0x03, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5a, 0x15,
133
+  0x01, 0x77, 0x07, 0x01, 0x00, 0x01, 0x08, 0x01, 0xff, 0x01, 0x01, 0x62, 0x1e, 0x52, 0x03, 0x69,
134
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5a, 0x15, 0x01, 0x77, 0x07, 0x01, 0x00, 0x01, 0x08, 0x02,
135
+  0xff, 0x01, 0x01, 0x62, 0x1e, 0x52, 0x03, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
136
+  0x01, 0x77, 0x07, 0x81, 0x81, 0xc7, 0x82, 0x05, 0xff, 0x01, 0x01, 0x01, 0x01, 0x83, 0x02, 0x82,
137
+  0xd9, 0x2c, 0x87, 0x12, 0x0e, 0xf0, 0xf5, 0xdc, 0x12, 0x8e, 0xf0, 0x1d, 0x0f, 0x04, 0xfb, 0xf5,
138
+  0x48, 0x00, 0x7b, 0x82, 0x00, 0xf3, 0x46, 0x9c, 0x6d, 0xdd, 0x62, 0x15, 0xa9, 0x10, 0x83, 0x1c,
139
+  0xd7, 0x44, 0x83, 0x47, 0xaf, 0xa1, 0xa9, 0x58, 0x33, 0x3c, 0x37, 0xb7, 0x34, 0x77, 0x9a, 0x01,
140
+  0x01, 0x01, 0x63, 0x9f, 0x26, 0x00, 0x76, 0x05, 0x0e, 0x82, 0x41, 0x43, 0x62, 0x00, 0x62, 0x00,
141
+  0x72, 0x63, 0x02, 0x01, 0x71, 0x01, 0x63, 0x6e, 0xd5, 0x00, 0x1b, 0x1b, 0x1b, 0x1b, 0x1a, 0x00,
142
+  0xb4, 0x6b, 0x1b, 0x1b, 0x1b, 0x1b, 0x01, 0x01, 0x01, 0x01, 0x76, 0x05, 0x0e, 0x82, 0x41, 0x44,
143
+  0x62, 0x00, 0x62, 0x00, 0x72, 0x63, 0x01, 0x01, 0x76, 0x01, 0x01, 0x05, 0x04, 0xd6, 0x15, 0xc2,
144
+  0x0b, 0x09, 0x01, 0x49, 0x53, 0x4b, 0x00, 0x04, 0xa0, 0x58, 0x2c, 0x01, 0x01, 0x63, 0xef, 0x7e,
145
+  0x00, 0x76, 0x05, 0x0e, 0x82, 0x41, 0x45, 0x62, 0x00, 0x62, 0x00, 0x72, 0x63, 0x07, 0x01, 0x77,
146
+  0x01, 0x0b, 0x09, 0x01, 0x49, 0x53, 0x4b, 0x00, 0x04, 0xa0, 0x58, 0x2c, 0x07, 0x01, 0x00, 0x62,
147
+  0x0a, 0xff, 0xff, 0x72, 0x62, 0x01, 0x65, 0x06, 0x4b, 0x6e, 0x9e, 0x76, 0x77, 0x07, 0x81, 0x81,
148
+  0xc7, 0x82, 0x03, 0xff, 0x01, 0x01, 0x01, 0x01, 0x04, 0x49, 0x53, 0x4b, 0x01, 0x77, 0x07, 0x01,
149
+  0x00, 0x00, 0x00, 0x09, 0xff, 0x01, 0x01, 0x01, 0x01, 0x0b, 0x09, 0x01, 0x49, 0x53, 0x4b, 0x00,
150
+  0x04, 0xa0, 0x58, 0x2c, 0x01, 0x77, 0x07, 0x01, 0x00, 0x01, 0x08, 0x00, 0xff, 0x65, 0x00, 0x00,
151
+  0x01, 0x82, 0x01, 0x62, 0x1e, 0x52, 0x03, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5a, 0x15,
152
+  0x01, 0x77, 0x07, 0x01, 0x00, 0x01, 0x08, 0x01, 0xff, 0x01, 0x01, 0x62, 0x1e, 0x52, 0x03, 0x69,
153
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5a, 0x15, 0x01, 0x77, 0x07, 0x01, 0x00, 0x01, 0x08, 0x02,
154
+  0xff, 0x01, 0x01, 0x62, 0x1e, 0x52, 0x03, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
155
+  0x01, 0x77, 0x07, 0x81, 0x81, 0xc7, 0x82, 0x05, 0xff, 0x01, 0x01, 0x01, 0x01, 0x83, 0x02, 0x82,
156
+  0xd9, 0x2c, 0x87, 0x12, 0x0e, 0xf0, 0xf5, 0xdc, 0x12, 0x8e, 0xf0, 0x1d, 0x0f, 0x04, 0xfb, 0xf5,
157
+  0x48, 0x00, 0x7b, 0x82, 0x00, 0xf3, 0x46, 0x9c, 0x6d, 0xdd, 0x62, 0x15, 0xa9, 0x10, 0x83, 0x1c,
158
+  0xd7, 0x44, 0x83, 0x47, 0xaf, 0xa1, 0xa9, 0x58, 0x33, 0x3c, 0x37, 0xb7, 0x34, 0x77, 0x9a, 0x01,
159
+  0x01, 0x01, 0x63, 0x71, 0xaf, 0x00, 0x76, 0x05, 0x0e, 0x82, 0x41, 0x46, 0x62, 0x00, 0x62, 0x00,
160
+  0x72, 0x63, 0x02, 0x01, 0x71, 0x01, 0x63, 0xaa, 0xde, 0x00, 0x1b, 0x1b, 0x1b, 0x1b, 0x1a, 0x00,
161
+  0x07, 0xa5, 0x1b, 0x1b, 0x1b, 0x1b, 0x01, 0x01, 0x01, 0x01, 0x76, 0x05, 0x0e, 0x82, 0x41, 0x47,
162
+  0x62, 0x00, 0x62, 0x00, 0x72, 0x63, 0x01, 0x01, 0x76, 0x01, 0x01, 0x05, 0x04, 0xd6, 0x15, 0xc3,
163
+  0x0b, 0x09, 0x01, 0x49, 0x53, 0x4b, 0x00, 0x04, 0xa0, 0x58, 0x2c, 0x01, 0x01, 0x63, 0x10, 0x61,
164
+  0x00, 0x76, 0x05, 0x0e, 0x82, 0x41, 0x48, 0x62, 0x00, 0x62, 0x00, 0x72, 0x63, 0x07, 0x01, 0x77,
165
+  0x01, 0x0b, 0x09, 0x01, 0x49, 0x53, 0x4b, 0x00, 0x04, 0xa0, 0x58, 0x2c, 0x07, 0x01, 0x00, 0x62,
166
+  0x0a, 0xff, 0xff, 0x72, 0x62, 0x01, 0x65, 0x06, 0x4b, 0x6e, 0xa0, 0x76, 0x77, 0x07, 0x81, 0x81,
167
+  0xc7, 0x82, 0x03, 0xff, 0x01, 0x01, 0x01, 0x01, 0x04, 0x49, 0x53, 0x4b, 0x01, 0x77, 0x07, 0x01,
168
+  0x00, 0x00, 0x00, 0x09, 0xff, 0x01, 0x01, 0x01, 0x01, 0x0b, 0x09, 0x01, 0x49, 0x53, 0x4b, 0x00,
169
+  0x04, 0xa0, 0x58, 0x2c, 0x01, 0x77, 0x07, 0x01, 0x00, 0x01, 0x08, 0x00, 0xff, 0x65, 0x00, 0x00,
170
+  0x01, 0x82, 0x01, 0x62, 0x1e, 0x52, 0x03, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5a, 0x15,
171
+  0x01, 0x77, 0x07, 0x01, 0x00, 0x01, 0x08, 0x01, 0xff, 0x01, 0x01, 0x62, 0x1e, 0x52, 0x03, 0x69,
172
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5a, 0x15, 0x01, 0x77, 0x07, 0x01, 0x00, 0x01, 0x08, 0x02,
173
+  0xff, 0x01, 0x01, 0x62, 0x1e, 0x52, 0x03, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
174
+  0x01, 0x77, 0x07, 0x81, 0x81, 0xc7, 0x82, 0x05, 0xff, 0x01, 0x01, 0x01, 0x01, 0x83, 0x02, 0x82,
175
+  0xd9, 0x2c, 0x87, 0x12, 0x0e, 0xf0, 0xf5, 0xdc, 0x12, 0x8e, 0xf0, 0x1d, 0x0f, 0x04, 0xfb, 0xf5,
176
+  0x48, 0x00, 0x7b, 0x82, 0x00, 0xf3, 0x46, 0x9c, 0x6d, 0xdd, 0x62, 0x15, 0xa9, 0x10, 0x83, 0x1c,
177
+  0xd7, 0x44, 0x83, 0x47, 0xaf, 0xa1, 0xa9, 0x58, 0x33, 0x3c, 0x37, 0xb7, 0x34, 0x77, 0x9a, 0x01,
178
+  0x01, 0x01, 0x63, 0x60, 0x44, 0x00, 0x76, 0x05, 0x0e, 0x82, 0x41, 0x49, 0x62, 0x00, 0x62, 0x00,
179
+  0x72, 0x63, 0x02, 0x01, 0x71, 0x01, 0x63, 0xe6, 0xc2, 0x00, 0x1b, 0x1b, 0x1b, 0x1b, 0x1a, 0x00,
180
+  0x7f, 0xe1, 0x1b, 0x1b, 0x1b, 0x1b, 0x01, 0x01, 0x01, 0x01, 0x76, 0x05, 0x0e, 0x82, 0x41, 0x4a,
181
+  0x62, 0x00, 0x62, 0x00, 0x72, 0x63, 0x01, 0x01, 0x76, 0x01, 0x01, 0x05, 0x04, 0xd6, 0x15, 0xc4,
182
+  0x0b, 0x09, 0x01, 0x49, 0x53, 0x4b, 0x00, 0x04, 0xa0, 0x58, 0x2c, 0x01, 0x01, 0x63, 0x21, 0xbd,
183
+  0x00, 0x76, 0x05, 0x0e, 0x82, 0x41, 0x4b, 0x62, 0x00, 0x62, 0x00, 0x72, 0x63, 0x07, 0x01, 0x77,
184
+  0x01, 0x0b, 0x09, 0x01, 0x49, 0x53, 0x4b, 0x00, 0x04, 0xa0, 0x58, 0x2c, 0x07, 0x01, 0x00, 0x62,
185
+  0x0a, 0xff, 0xff, 0x72, 0x62, 0x01, 0x65, 0x06, 0x4b, 0x6e, 0xa1, 0x76, 0x77, 0x07, 0x81, 0x81,
186
+  0xc7, 0x82, 0x03, 0xff, 0x01, 0x01, 0x01, 0x01, 0x04, 0x49, 0x53, 0x4b, 0x01, 0x77, 0x07, 0x01,
187
+  0x00, 0x00, 0x00, 0x09, 0xff, 0x01, 0x01, 0x01, 0x01, 0x0b, 0x09, 0x01, 0x49, 0x53, 0x4b, 0x00,
188
+  0x04, 0xa0, 0x58, 0x2c, 0x01, 0x77, 0x07, 0x01, 0x00, 0x01, 0x08, 0x00, 0xff, 0x65, 0x00, 0x00,
189
+  0x01, 0x82, 0x01, 0x62, 0x1e, 0x52, 0x03, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5a, 0x15,
190
+  0x01, 0x77, 0x07, 0x01, 0x00, 0x01, 0x08, 0x01, 0xff, 0x01, 0x01, 0x62, 0x1e, 0x52, 0x03, 0x69,
191
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5a, 0x15, 0x01, 0x77, 0x07, 0x01, 0x00, 0x01, 0x08, 0x02,
192
+  0xff, 0x01, 0x01, 0x62, 0x1e, 0x52, 0x03, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
193
+  0x01, 0x77, 0x07, 0x81, 0x81, 0xc7, 0x82, 0x05, 0xff, 0x01, 0x01, 0x01, 0x01, 0x83, 0x02, 0x82,
194
+  0xd9, 0x2c, 0x87, 0x12, 0x0e, 0xf0, 0xf5, 0xdc, 0x12, 0x8e, 0xf0, 0x1d, 0x0f, 0x04, 0xfb, 0xf5,
195
+  0x48, 0x00, 0x7b, 0x82, 0x00, 0xf3, 0x46, 0x9c, 0x6d, 0xdd, 0x62, 0x15, 0xa9, 0x10, 0x83, 0x1c,
196
+  0xd7, 0x44, 0x83, 0x47, 0xaf, 0xa1, 0xa9, 0x58, 0x33, 0x3c, 0x37, 0xb7, 0x34, 0x77, 0x9a, 0x01,
197
+  0x01, 0x01, 0x63, 0x8f, 0x4b, 0x00, 0x76, 0x05, 0x0e, 0x82, 0x41, 0x4c, 0x62, 0x00, 0x62, 0x00,
198
+  0x72, 0x63, 0x02, 0x01, 0x71, 0x01, 0x63, 0x22, 0xc9, 0x00, 0x1b, 0x1b, 0x1b, 0x1b, 0x1a, 0x00,
199
+  0x01, 0x77, 0x1b, 0x1b, 0x1b, 0x1b, 0x01, 0x01, 0x01, 0x01, 0x76, 0x05, 0x0e, 0x82, 0x41, 0x4d,
200
+  0x62, 0x00, 0x62, 0x00, 0x72, 0x63, 0x01, 0x01, 0x76, 0x01, 0x01, 0x05, 0x04, 0xd6, 0x15, 0xc5,
201
+  0x0b, 0x09, 0x01, 0x49, 0x53, 0x4b, 0x00, 0x04, 0xa0, 0x58, 0x2c, 0x01, 0x01, 0x63, 0x12, 0x21,
202
+  0x00, 0x76, 0x05, 0x0e, 0x82, 0x41, 0x4e, 0x62, 0x00, 0x62, 0x00, 0x72, 0x63, 0x07, 0x01, 0x77,
203
+  0x01, 0x0b, 0x09, 0x01, 0x49, 0x53, 0x4b, 0x00, 0x04, 0xa0, 0x58, 0x2c, 0x07, 0x01, 0x00, 0x62,
204
+  0x0a, 0xff, 0xff, 0x72, 0x62, 0x01, 0x65, 0x06, 0x4b, 0x6e, 0xa2, 0x76, 0x77, 0x07, 0x81, 0x81,
205
+  0xc7, 0x82, 0x03, 0xff, 0x01, 0x01, 0x01, 0x01, 0x04, 0x49, 0x53, 0x4b, 0x01, 0x77, 0x07, 0x01,
206
+  0x00, 0x00, 0x00, 0x09, 0xff, 0x01, 0x01, 0x01, 0x01, 0x0b, 0x09, 0x01, 0x49, 0x53, 0x4b, 0x00,
207
+  0x04, 0xa0, 0x58, 0x2c, 0x01, 0x77, 0x07, 0x01, 0x00, 0x01, 0x08, 0x00, 0xff, 0x65, 0x00, 0x00,
208
+  0x01, 0x82, 0x01, 0x62, 0x1e, 0x52, 0x03, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5a, 0x15,
209
+  0x01, 0x77, 0x07, 0x01, 0x00, 0x01, 0x08, 0x01, 0xff, 0x01, 0x01, 0x62, 0x1e, 0x52, 0x03, 0x69,
210
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5a, 0x15, 0x01, 0x77, 0x07, 0x01, 0x00, 0x01, 0x08, 0x02,
211
+  0xff, 0x01, 0x01, 0x62, 0x1e, 0x52, 0x03, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
212
+  0x01, 0x77, 0x07, 0x81, 0x81, 0xc7, 0x82, 0x05, 0xff, 0x01, 0x01, 0x01, 0x01, 0x83, 0x02, 0x82,
213
+  0xd9, 0x2c, 0x87, 0x12, 0x0e, 0xf0, 0xf5, 0xdc, 0x12, 0x8e, 0xf0, 0x1d, 0x0f, 0x04, 0xfb, 0xf5,
214
+  0x48, 0x00, 0x7b, 0x82, 0x00, 0xf3, 0x46, 0x9c, 0x6d, 0xdd, 0x62, 0x15, 0xa9, 0x10, 0x83, 0x1c,
215
+  0xd7, 0x44, 0x83, 0x47, 0xaf, 0xa1, 0xa9, 0x58, 0x33, 0x3c, 0x37, 0xb7, 0x34, 0x77, 0x9a, 0x01,
216
+  0x01, 0x01, 0x63, 0xbe, 0x5b, 0x00, 0x76, 0x05, 0x0e, 0x82, 0x41, 0x4f, 0x62, 0x00, 0x62, 0x00,
217
+  0x72, 0x63, 0x02, 0x01, 0x71, 0x01, 0x63, 0x91, 0x37, 0x00, 0x1b, 0x1b, 0x1b, 0x1b, 0x1a, 0x00,
218
+  0x62, 0xff, 0x1b, 0x1b, 0x1b, 0x1b, 0x01, 0x01, 0x01, 0x01, 0x76, 0x05, 0x0e, 0x82, 0x41, 0x50,
219
+  0x62, 0x00, 0x62, 0x00, 0x72, 0x63, 0x01, 0x01, 0x76, 0x01, 0x01, 0x05, 0x04, 0xd6, 0x15, 0xc6,
220
+  0x0b, 0x09, 0x01, 0x49, 0x53, 0x4b, 0x00, 0x04, 0xa0, 0x58, 0x2c, 0x01, 0x01, 0x63, 0x88, 0x11,
221
+  0x00, 0x76, 0x05, 0x0e, 0x82, 0x41, 0x51, 0x62, 0x00, 0x62, 0x00, 0x72, 0x63, 0x07, 0x01, 0x77,
222
+  0x01, 0x0b, 0x09, 0x01, 0x49, 0x53, 0x4b, 0x00, 0x04, 0xa0, 0x58, 0x2c, 0x07, 0x01, 0x00, 0x62,
223
+  0x0a, 0xff, 0xff, 0x72, 0x62, 0x01, 0x65, 0x06, 0x4b, 0x6e, 0xa4, 0x76, 0x77, 0x07, 0x81, 0x81,
224
+  0xc7, 0x82, 0x03, 0xff, 0x01, 0x01, 0x01, 0x01, 0x04, 0x49, 0x53, 0x4b, 0x01, 0x77, 0x07, 0x01,
225
+  0x00, 0x00, 0x00, 0x09, 0xff, 0x01, 0x01, 0x01, 0x01, 0x0b, 0x09, 0x01, 0x49, 0x53, 0x4b, 0x00,
226
+  0x04, 0xa0, 0x58, 0x2c, 0x01, 0x77, 0x07, 0x01, 0x00, 0x01, 0x08, 0x00, 0xff, 0x65, 0x00, 0x00,
227
+  0x01, 0x82, 0x01, 0x62, 0x1e, 0x52, 0x03, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5a, 0x15,
228
+  0x01, 0x77, 0x07, 0x01, 0x00, 0x01, 0x08, 0x01, 0xff, 0x01, 0x01, 0x62, 0x1e, 0x52, 0x03, 0x69,
229
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5a, 0x15, 0x01, 0x77, 0x07, 0x01, 0x00, 0x01, 0x08, 0x02,
230
+  0xff, 0x01, 0x01, 0x62, 0x1e, 0x52, 0x03, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
231
+  0x01, 0x77, 0x07, 0x81, 0x81, 0xc7, 0x82, 0x05, 0xff, 0x01, 0x01, 0x01, 0x01, 0x83, 0x02, 0x82,
232
+  0xd9, 0x2c, 0x87, 0x12, 0x0e, 0xf0, 0xf5, 0xdc, 0x12, 0x8e, 0xf0, 0x1d, 0x0f, 0x04, 0xfb, 0xf5,
233
+  0x48, 0x00, 0x7b, 0x82, 0x00, 0xf3, 0x46, 0x9c, 0x6d, 0xdd, 0x62, 0x15, 0xa9, 0x10, 0x83, 0x1c,
234
+  0xd7, 0x44, 0x83, 0x47, 0xaf, 0xa1, 0xa9, 0x58, 0x33, 0x3c, 0x37, 0xb7, 0x34, 0x77, 0x9a, 0x01,
235
+  0x01, 0x01, 0x63, 0x28, 0x66, 0x00, 0x76, 0x05, 0x0e, 0x82, 0x41, 0x52, 0x62, 0x00, 0x62, 0x00,
236
+  0x72, 0x63, 0x02, 0x01, 0x71, 0x01, 0x63, 0xba, 0xf1, 0x00, 0x1b, 0x1b, 0x1b, 0x1b, 0x1a, 0x00,
237
+  0x0e, 0x48, 0x1b, 0x1b, 0x1b, 0x1b, 0x01, 0x01, 0x01, 0x01, 0x76, 0x05, 0x0e, 0x82, 0x41, 0x53,
238
+  0x62, 0x00, 0x62, 0x00, 0x72, 0x63, 0x01, 0x01, 0x76, 0x01, 0x01, 0x05, 0x04, 0xd6, 0x15, 0xc7,
239
+  0x0b, 0x09, 0x01, 0x49, 0x53, 0x4b, 0x00, 0x04, 0xa0, 0x58, 0x2c, 0x01, 0x01, 0x63, 0x77, 0x0e,
240
+  0x00, 0x76, 0x05, 0x0e, 0x82, 0x41, 0x54, 0x62, 0x00, 0x62, 0x00, 0x72, 0x63, 0x07, 0x01, 0x77,
241
+  0x01, 0x0b, 0x09, 0x01, 0x49, 0x53, 0x4b, 0x00, 0x04, 0xa0, 0x58, 0x2c, 0x07, 0x01, 0x00, 0x62,
242
+  0x0a, 0xff, 0xff, 0x72, 0x62, 0x01, 0x65, 0x06, 0x4b, 0x6e, 0xa5, 0x76, 0x77, 0x07, 0x81, 0x81,
243
+  0xc7, 0x82, 0x03, 0xff, 0x01, 0x01, 0x01, 0x01, 0x04, 0x49, 0x53, 0x4b, 0x01, 0x77, 0x07, 0x01,
244
+  0x00, 0x00, 0x00, 0x09, 0xff, 0x01, 0x01, 0x01, 0x01, 0x0b, 0x09, 0x01, 0x49, 0x53, 0x4b, 0x00,
245
+  0x04, 0xa0, 0x58, 0x2c, 0x01, 0x77, 0x07, 0x01, 0x00, 0x01, 0x08, 0x00, 0xff, 0x65, 0x00, 0x00,
246
+  0x01, 0x82, 0x01, 0x62, 0x1e, 0x52, 0x03, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5a, 0x15,
247
+  0x01, 0x77, 0x07, 0x01, 0x00, 0x01, 0x08, 0x01, 0xff, 0x01, 0x01, 0x62, 0x1e, 0x52, 0x03, 0x69,
248
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5a, 0x15, 0x01, 0x77, 0x07, 0x01, 0x00, 0x01, 0x08, 0x02,
249
+  0xff, 0x01, 0x01, 0x62, 0x1e, 0x52, 0x03, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
250
+  0x01, 0x77, 0x07, 0x81, 0x81, 0xc7, 0x82, 0x05, 0xff, 0x01, 0x01, 0x01, 0x01, 0x83, 0x02, 0x82,
251
+  0xd9, 0x2c, 0x87, 0x12, 0x0e, 0xf0, 0xf5, 0xdc, 0x12, 0x8e, 0xf0, 0x1d, 0x0f, 0x04, 0xfb, 0xf5,
252
+  0x48, 0x00, 0x7b, 0x82, 0x00, 0xf3, 0x46, 0x9c, 0x6d, 0xdd, 0x62, 0x15, 0xa9, 0x10, 0x83, 0x1c,
253
+  0xd7, 0x44, 0x83, 0x47, 0xaf, 0xa1, 0xa9, 0x58, 0x33, 0x3c, 0x37, 0xb7, 0x34, 0x77, 0x9a, 0x01,
254
+  0x01, 0x01, 0x63, 0xb7, 0xcb, 0x00, 0x76, 0x05, 0x0e, 0x82, 0x41, 0x55, 0x62, 0x00, 0x62, 0x00,
255
+  0x72, 0x63, 0x02, 0x01, 0x71, 0x01, 0x63, 0x5c, 0x51, 0x00, 0x1b, 0x1b, 0x1b, 0x1b, 0x1a, 0x00,
256
+  0x69, 0xc1, 0x1b, 0x1b, 0x1b, 0x1b, 0x01, 0x01, 0x01, 0x01, 0x76, 0x05, 0x0e, 0x82, 0x41, 0x56,
257
+  0x62, 0x00, 0x62, 0x00, 0x72, 0x63, 0x01, 0x01, 0x76, 0x01, 0x01, 0x05, 0x04, 0xd6, 0x15, 0xc8,
258
+  0x0b, 0x09, 0x01, 0x49, 0x53, 0x4b, 0x00, 0x04, 0xa0, 0x58, 0x2c, 0x01, 0x01, 0x63, 0xac, 0x32,
259
+  0x00, 0x76, 0x05, 0x0e, 0x82, 0x41, 0x57, 0x62, 0x00, 0x62, 0x00, 0x72, 0x63, 0x07, 0x01, 0x77,
260
+  0x01, 0x0b, 0x09, 0x01, 0x49, 0x53, 0x4b, 0x00, 0x04, 0xa0, 0x58, 0x2c, 0x07, 0x01, 0x00, 0x62,
261
+  0x0a, 0xff, 0xff, 0x72, 0x62, 0x01, 0x65, 0x06, 0x4b, 0x6e, 0xa7, 0x76, 0x77, 0x07, 0x81, 0x81,
262
+  0xc7, 0x82, 0x03, 0xff, 0x01, 0x01, 0x01, 0x01, 0x04, 0x49, 0x53, 0x4b, 0x01, 0x77, 0x07, 0x01,
263
+  0x00, 0x00, 0x00, 0x09, 0xff, 0x01, 0x01, 0x01, 0x01, 0x0b, 0x09, 0x01, 0x49, 0x53, 0x4b, 0x00,
264
+  0x04, 0xa0, 0x58, 0x2c, 0x01, 0x77, 0x07, 0x01, 0x00, 0x01, 0x08, 0x00, 0xff, 0x65, 0x00, 0x00,
265
+  0x01, 0x82, 0x01, 0x62, 0x1e, 0x52, 0x03, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5a, 0x15,
266
+  0x01, 0x77, 0x07, 0x01, 0x00, 0x01, 0x08, 0x01, 0xff, 0x01, 0x01, 0x62, 0x1e, 0x52, 0x03, 0x69,
267
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5a, 0x15, 0x01, 0x77, 0x07, 0x01, 0x00, 0x01, 0x08, 0x02,
268
+  0xff, 0x01, 0x01, 0x62, 0x1e, 0x52, 0x03, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
269
+  0x01, 0x77, 0x07, 0x81, 0x81, 0xc7, 0x82, 0x05, 0xff, 0x01, 0x01, 0x01, 0x01, 0x83, 0x02, 0x82,
270
+  0xd9, 0x2c, 0x87, 0x12, 0x0e, 0xf0, 0xf5, 0xdc, 0x12, 0x8e, 0xf0, 0x1d, 0x0f, 0x04, 0xfb, 0xf5,
271
+  0x48, 0x00, 0x7b, 0x82, 0x00, 0xf3, 0x46, 0x9c, 0x6d, 0xdd, 0x62, 0x15, 0xa9, 0x10, 0x83, 0x1c,
272
+  0xd7, 0x44, 0x83, 0x47, 0xaf, 0xa1, 0xa9, 0x58, 0x33, 0x3c, 0x37, 0xb7, 0x34, 0x77, 0x9a, 0x01,
273
+  0x01, 0x01, 0x63, 0x21, 0x27, 0x00, 0x76, 0x05, 0x0e, 0x82, 0x41, 0x58, 0x62, 0x00, 0x62, 0x00,
274
+  0x72, 0x63, 0x02, 0x01, 0x71, 0x01, 0x63, 0x32, 0xe6, 0x00, 0x1b, 0x1b, 0x1b, 0x1b, 0x1a, 0x00,
275
+  0xdb, 0xb3, 0x1b, 0x1b, 0x1b, 0x1b, 0x01, 0x01, 0x01, 0x01, 0x76, 0x05, 0x0e, 0x82, 0x41, 0x59,
276
+  0x62, 0x00, 0x62, 0x00, 0x72, 0x63, 0x01, 0x01, 0x76, 0x01, 0x01, 0x05, 0x04, 0xd6, 0x15, 0xc9,
277
+  0x0b, 0x09, 0x01, 0x49, 0x53, 0x4b, 0x00, 0x04, 0xa0, 0x58, 0x2c, 0x01, 0x01, 0x63, 0x16, 0xa1,
278
+  0x00, 0x76, 0x05, 0x0e, 0x82, 0x41, 0x5a, 0x62, 0x00, 0x62, 0x00, 0x72, 0x63, 0x07, 0x01, 0x77,
279
+  0x01, 0x0b, 0x09, 0x01, 0x49, 0x53, 0x4b, 0x00, 0x04, 0xa0, 0x58, 0x2c, 0x07, 0x01, 0x00, 0x62,
280
+  0x0a, 0xff, 0xff, 0x72, 0x62, 0x01, 0x65, 0x06, 0x4b, 0x6e, 0xa8, 0x76, 0x77, 0x07, 0x81, 0x81,
281
+  0xc7, 0x82, 0x03, 0xff, 0x01, 0x01, 0x01, 0x01, 0x04, 0x49, 0x53, 0x4b, 0x01, 0x77, 0x07, 0x01,
282
+  0x00, 0x00, 0x00, 0x09, 0xff, 0x01, 0x01, 0x01, 0x01, 0x0b, 0x09, 0x01, 0x49, 0x53, 0x4b, 0x00,
283
+  0x04, 0xa0, 0x58, 0x2c, 0x01, 0x77, 0x07, 0x01, 0x00, 0x01, 0x08, 0x00, 0xff, 0x65, 0x00, 0x00,
284
+  0x01, 0x82, 0x01, 0x62, 0x1e, 0x52, 0x03, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5a, 0x15,
285
+  0x01, 0x77, 0x07, 0x01, 0x00, 0x01, 0x08, 0x01, 0xff, 0x01, 0x01, 0x62, 0x1e, 0x52, 0x03, 0x69,
286
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5a, 0x15, 0x01, 0x77, 0x07, 0x01, 0x00, 0x01, 0x08, 0x02,
287
+  0xff, 0x01, 0x01, 0x62, 0x1e, 0x52, 0x03, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
288
+  0x01, 0x77, 0x07, 0x81, 0x81, 0xc7, 0x82, 0x05, 0xff, 0x01, 0x01, 0x01, 0x01, 0x83, 0x02, 0x82,
289
+  0xd9, 0x2c, 0x87, 0x12, 0x0e, 0xf0, 0xf5, 0xdc, 0x12, 0x8e, 0xf0, 0x1d, 0x0f, 0x04, 0xfb, 0xf5,
290
+  0x48, 0x00, 0x7b, 0x82, 0x00, 0xf3, 0x46, 0x9c, 0x6d, 0xdd, 0x62, 0x15, 0xa9, 0x10, 0x83, 0x1c,
291
+  0xd7, 0x44, 0x83, 0x47, 0xaf, 0xa1, 0xa9, 0x58, 0x33, 0x3c, 0x37, 0xb7, 0x34, 0x77, 0x9a, 0x01,
292
+  0x01, 0x01, 0x63, 0x99, 0xd5, 0x00, 0x76, 0x05, 0x0e, 0x82, 0x41, 0x5b, 0x62, 0x00, 0x62, 0x00,
293
+  0x72, 0x63, 0x02, 0x01, 0x71, 0x01, 0x63, 0x81, 0x18, 0x00, 0x1b, 0x1b, 0x1b, 0x1b, 0x1a, 0x00,
294
+  0xb3, 0x78, 0x1b, 0x1b, 0x1b, 0x1b, 0x01, 0x01, 0x01, 0x01, 0x76, 0x05, 0x0e, 0x82, 0x41, 0x5c,
295
+  0x62, 0x00, 0x62, 0x00, 0x72, 0x63, 0x01, 0x01, 0x76, 0x01, 0x01, 0x05, 0x04, 0xd6, 0x15, 0xca,
296
+  0x0b, 0x09, 0x01, 0x49, 0x53, 0x4b, 0x00, 0x04, 0xa0, 0x58, 0x2c, 0x01, 0x01, 0x63, 0x17, 0x81,
297
+  0x00, 0x76, 0x05, 0x0e, 0x82, 0x41, 0x5d, 0x62, 0x00, 0x62, 0x00, 0x72, 0x63, 0x07, 0x01, 0x77,
298
+  0x01, 0x0b, 0x09, 0x01, 0x49, 0x53, 0x4b, 0x00, 0x04, 0xa0, 0x58, 0x2c, 0x07, 0x01, 0x00, 0x62,
299
+  0x0a, 0xff, 0xff, 0x72, 0x62, 0x01, 0x65, 0x06, 0x4b, 0x6e, 0xa9, 0x76, 0x77, 0x07, 0x81, 0x81,
300
+  0xc7, 0x82, 0x03, 0xff, 0x01, 0x01, 0x01, 0x01, 0x04, 0x49, 0x53, 0x4b, 0x01, 0x77, 0x07, 0x01,
301
+  0x00, 0x00, 0x00, 0x09, 0xff, 0x01, 0x01, 0x01, 0x01, 0x0b, 0x09, 0x01, 0x49, 0x53, 0x4b, 0x00,
302
+  0x04, 0xa0, 0x58, 0x2c, 0x01, 0x77, 0x07, 0x01, 0x00, 0x01, 0x08, 0x00, 0xff, 0x65, 0x00, 0x00,
303
+  0x01, 0x82, 0x01, 0x62, 0x1e, 0x52, 0x03, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5a, 0x15,
304
+  0x01, 0x77, 0x07, 0x01, 0x00, 0x01, 0x08, 0x01, 0xff, 0x01, 0x01, 0x62, 0x1e, 0x52, 0x03, 0x69,
305
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5a, 0x15, 0x01, 0x77, 0x07, 0x01, 0x00, 0x01, 0x08, 0x02,
306
+  0xff, 0x01, 0x01, 0x62, 0x1e, 0x52, 0x03, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
307
+  0x01, 0x77, 0x07, 0x81, 0x81, 0xc7, 0x82, 0x05, 0xff, 0x01, 0x01, 0x01, 0x01, 0x83, 0x02, 0x82,
308
+  0xd9, 0x2c, 0x87, 0x12, 0x0e, 0xf0, 0xf5, 0xdc, 0x12, 0x8e, 0xf0, 0x1d, 0x0f, 0x04, 0xfb, 0xf5,
309
+  0x48, 0x00, 0x7b, 0x82, 0x00, 0xf3, 0x46, 0x9c, 0x6d, 0xdd, 0x62, 0x15, 0xa9, 0x10, 0x83, 0x1c,
310
+  0xd7, 0x44, 0x83, 0x47, 0xaf, 0xa1, 0xa9, 0x58, 0x33, 0x3c, 0x37, 0xb7, 0x34, 0x77, 0x9a, 0x01,
311
+  0x01, 0x01, 0x63, 0xd9, 0xe1, 0x00, 0x76, 0x05, 0x0e, 0x82, 0x41, 0x5e, 0x62, 0x00, 0x62, 0x00,
312
+  0x72, 0x63, 0x02, 0x01, 0x71, 0x01, 0x63, 0x45, 0x13, 0x00, 0x1b, 0x1b, 0x1b, 0x1b, 0x1a, 0x00,
313
+  0x38, 0x59, 0x1b, 0x1b, 0x1b, 0x1b, 0x01, 0x01, 0x01, 0x01, 0x76, 0x05, 0x0e, 0x82, 0x41, 0x5f,
314
+  0x62, 0x00, 0x62, 0x00, 0x72, 0x63, 0x01, 0x01, 0x76, 0x01, 0x01, 0x05, 0x04, 0xd6, 0x15, 0xcb,
315
+  0x0b, 0x09, 0x01, 0x49, 0x53, 0x4b, 0x00, 0x04, 0xa0, 0x58, 0x2c, 0x01, 0x01, 0x63, 0xe8, 0x9e,
316
+  0x00, 0x76, 0x05, 0x0e, 0x82, 0x41, 0x60, 0x62, 0x00, 0x62, 0x00, 0x72, 0x63, 0x07, 0x01, 0x77,
317
+  0x01, 0x0b, 0x09, 0x01, 0x49, 0x53, 0x4b, 0x00, 0x04, 0xa0, 0x58, 0x2c, 0x07, 0x01, 0x00, 0x62,
318
+  0x0a, 0xff, 0xff, 0x72, 0x62, 0x01, 0x65, 0x06, 0x4b, 0x6e, 0xab, 0x76, 0x77, 0x07, 0x81, 0x81,
319
+  0xc7, 0x82, 0x03, 0xff, 0x01, 0x01, 0x01, 0x01, 0x04, 0x49, 0x53, 0x4b, 0x01, 0x77, 0x07, 0x01,
320
+  0x00, 0x00, 0x00, 0x09, 0xff, 0x01, 0x01, 0x01, 0x01, 0x0b, 0x09, 0x01, 0x49, 0x53, 0x4b, 0x00,
321
+  0x04, 0xa0, 0x58, 0x2c, 0x01, 0x77, 0x07, 0x01, 0x00, 0x01, 0x08, 0x00, 0xff, 0x65, 0x00, 0x00,
322
+  0x01, 0x82, 0x01, 0x62, 0x1e, 0x52, 0x03, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5a, 0x15,
323
+  0x01, 0x77, 0x07, 0x01, 0x00, 0x01, 0x08, 0x01, 0xff, 0x01, 0x01, 0x62, 0x1e, 0x52, 0x03, 0x69,
324
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5a, 0x15, 0x01, 0x77, 0x07, 0x01, 0x00, 0x01, 0x08, 0x02,
325
+  0xff, 0x01, 0x01, 0x62, 0x1e, 0x52, 0x03, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
326
+  0x01, 0x77, 0x07, 0x81, 0x81, 0xc7, 0x82, 0x05, 0xff, 0x01, 0x01, 0x01, 0x01, 0x83, 0x02, 0x82,
327
+  0xd9, 0x2c, 0x87, 0x12, 0x0e, 0xf0, 0xf5, 0xdc, 0x12, 0x8e, 0xf0, 0x1d, 0x0f, 0x04, 0xfb, 0xf5,
328
+  0x48, 0x00, 0x7b, 0x82, 0x00, 0xf3, 0x46, 0x9c, 0x6d, 0xdd, 0x62, 0x15, 0xa9, 0x10, 0x83, 0x1c,
329
+  0xd7, 0x44, 0x83, 0x47, 0xaf, 0xa1, 0xa9, 0x58, 0x33, 0x3c, 0x37, 0xb7, 0x34, 0x77, 0x9a, 0x01,
330
+  0x01, 0x01, 0x63, 0xb4, 0xe3, 0x00, 0x76, 0x05, 0x0e, 0x82, 0x41, 0x61, 0x62, 0x00, 0x62, 0x00,
331
+  0x72, 0x63, 0x02, 0x01, 0x71, 0x01, 0x63, 0xc6, 0x9c, 0x00, 0x1b, 0x1b, 0x1b, 0x1b, 0x1a, 0x00,
332
+  0xe9, 0xe1
333
+};
334
+
335
+static double SumWh = NAN, T1Wh = NAN, T2Wh = NAN;
336
+static double SumW = NAN, L1W = NAN, L2W = NAN, L3W = NAN;
337
+
338
+static void EnergySum(void) {
339
+    smlOBISWh(SumWh);
340
+}
341
+
342
+static void EnergyT1(void) {
343
+    smlOBISWh(T1Wh);
344
+}
345
+
346
+static void EnergyT2(void) {
347
+    smlOBISWh(T2Wh);
348
+}
349
+
350
+static void PowerSum(void) {
351
+    smlOBISW(SumW);
352
+}
353
+
354
+static void PowerL1(void) {
355
+    smlOBISW(L1W);
356
+}
357
+
358
+static void PowerL2(void) {
359
+    smlOBISW(L2W);
360
+}
361
+
362
+static void PowerL3(void) {
363
+    smlOBISW(L3W);
364
+}
365
+
366
+static void init_vars(void) {
367
+    SumWh = NAN;
368
+    T1Wh = NAN;
369
+    T2Wh = NAN;
370
+    SumW = NAN;
371
+    L1W = NAN;
372
+    L2W = NAN;
373
+    L3W = NAN;
374
+}
375
+
376
+typedef struct {
377
+    const unsigned char OBIS[6];
378
+    void (*Handler)();
379
+} OBISHandler;
380
+
381
+static OBISHandler handlers[] = {
382
+    { { 1, 0,  1, 8, 0, 255 }, EnergySum }, // 1-0: 1.8.0*255 (T1 + T2) Wh
383
+    { { 1, 0,  1, 8, 1, 255 }, EnergyT1 },  // 1-0: 1.8.1*255 (T1) Wh
384
+    { { 1, 0,  1, 8, 2, 255 }, EnergyT2 },  // 1-0: 1.8.2*255 (T2) Wh
385
+    { { 1, 0, 16, 7, 0, 255 }, PowerSum },  // 1-0:16.7.0*255 (L1 + L2 + L3) W
386
+    { { 1, 0, 21, 7, 0, 255 }, PowerL1 },   // 1-0:21.7.0*255 (L1) W
387
+    { { 1, 0, 41, 7, 0, 255 }, PowerL2 },   // 1-0:41.7.0*255 (L2) W
388
+    { { 1, 0, 61, 7, 0, 255 }, PowerL3 },   // 1-0:61.7.0*255 (L3) W
389
+};
390
+
391
+void sml_init(void) {
392
+    for (unsigned int n = 0; n < sizeof(ehz_bin); n++) {
393
+        unsigned char c = ehz_bin[n];
394
+
395
+        sml_states_t s = smlState(c);
396
+
397
+        if (s == SML_START) {
398
+            init_vars();
399
+        } else if (s == SML_LISTEND) {
400
+            // check handlers on last received list
401
+            for (unsigned int i = 0; i < (sizeof(handlers) / sizeof(handlers[0])); i++) {
402
+                if (smlOBISCheck(handlers[i].OBIS)) {
403
+                    handlers[i].Handler();
404
+                }
405
+            }
406
+        } else if (s == SML_FINAL) {
407
+            debug.println("SML Reading:");
408
+
409
+            if (!isnan(SumWh))
410
+                debug.printf("Sum: %14.3lf Wh\n", SumWh);
411
+
412
+            if (!isnan(T1Wh))
413
+                debug.printf(" T1: %14.3lf Wh\n", T1Wh);
414
+
415
+            if (!isnan(T2Wh))
416
+                debug.printf(" T2: %14.3lf Wh\n", T2Wh);
417
+
418
+            if (!isnan(SumW))
419
+                debug.printf("Sum: %14.3lf W\n", SumW);
420
+
421
+            if (!isnan(L1W))
422
+                debug.printf(" L1: %14.3lf W\n", L1W);
423
+
424
+            if (!isnan(L2W))
425
+                debug.printf(" L2: %14.3lf W\n", L2W);
426
+
427
+            if (!isnan(L3W))
428
+                debug.printf(" L3: %14.3lf W\n", L3W);
429
+
430
+            debug.println();
431
+        }
432
+    }
433
+}
434
+
435
+#endif // FEATURE_SML

Loading…
Cancel
Save