Merge branch 'libyang2' of https://github.com/CESNET/libyang into libyang2
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 31662ba..f15b60f 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -158,6 +158,7 @@
     src/set.c
     src/context.c
     src/tree_schema.c
+    src/tree_schema_helpers.c
     src/parser_yang.c
     src/xml.c)
 
diff --git a/models/ietf-datastores@2017-08-17.h b/models/ietf-datastores@2017-08-17.h
new file mode 100644
index 0000000..e6ade3a
--- /dev/null
+++ b/models/ietf-datastores@2017-08-17.h
@@ -0,0 +1,196 @@
+unsigned char ietf_datastores_2017_08_17_yang[] = {
+  0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x20, 0x69, 0x65, 0x74, 0x66, 0x2d,
+  0x64, 0x61, 0x74, 0x61, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x20, 0x7b,
+  0x79, 0x61, 0x6e, 0x67, 0x2d, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e,
+  0x20, 0x31, 0x2e, 0x31, 0x3b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61,
+  0x63, 0x65, 0x20, 0x22, 0x75, 0x72, 0x6e, 0x3a, 0x69, 0x65, 0x74, 0x66,
+  0x3a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x3a, 0x78, 0x6d, 0x6c, 0x3a,
+  0x6e, 0x73, 0x3a, 0x79, 0x61, 0x6e, 0x67, 0x3a, 0x69, 0x65, 0x74, 0x66,
+  0x2d, 0x64, 0x61, 0x74, 0x61, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x22,
+  0x3b, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, 0x64, 0x73, 0x3b, 0x6f,
+  0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20,
+  0x22, 0x49, 0x45, 0x54, 0x46, 0x20, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72,
+  0x6b, 0x20, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x69, 0x6e, 0x67, 0x20, 0x28,
+  0x4e, 0x45, 0x54, 0x4d, 0x4f, 0x44, 0x29, 0x20, 0x57, 0x6f, 0x72, 0x6b,
+  0x69, 0x6e, 0x67, 0x20, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x22, 0x3b, 0x63,
+  0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x0a, 0x22, 0x57, 0x47, 0x20, 0x57,
+  0x65, 0x62, 0x3a, 0x20, 0x20, 0x20, 0x3c, 0x68, 0x74, 0x74, 0x70, 0x73,
+  0x3a, 0x2f, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x74, 0x72, 0x61, 0x63, 0x6b,
+  0x65, 0x72, 0x2e, 0x69, 0x65, 0x74, 0x66, 0x2e, 0x6f, 0x72, 0x67, 0x2f,
+  0x77, 0x67, 0x2f, 0x6e, 0x65, 0x74, 0x6d, 0x6f, 0x64, 0x2f, 0x3e, 0x0a,
+  0x0a, 0x20, 0x57, 0x47, 0x20, 0x4c, 0x69, 0x73, 0x74, 0x3a, 0x20, 0x20,
+  0x3c, 0x6d, 0x61, 0x69, 0x6c, 0x74, 0x6f, 0x3a, 0x6e, 0x65, 0x74, 0x6d,
+  0x6f, 0x64, 0x40, 0x69, 0x65, 0x74, 0x66, 0x2e, 0x6f, 0x72, 0x67, 0x3e,
+  0x0a, 0x0a, 0x20, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x3a, 0x20, 0x20,
+  0x20, 0x4d, 0x61, 0x72, 0x74, 0x69, 0x6e, 0x20, 0x42, 0x6a, 0x6f, 0x72,
+  0x6b, 0x6c, 0x75, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+  0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x6d, 0x61, 0x69, 0x6c, 0x74, 0x6f,
+  0x3a, 0x6d, 0x62, 0x6a, 0x40, 0x74, 0x61, 0x69, 0x6c, 0x2d, 0x66, 0x2e,
+  0x63, 0x6f, 0x6d, 0x3e, 0x0a, 0x0a, 0x20, 0x41, 0x75, 0x74, 0x68, 0x6f,
+  0x72, 0x3a, 0x20, 0x20, 0x20, 0x4a, 0x75, 0x65, 0x72, 0x67, 0x65, 0x6e,
+  0x20, 0x53, 0x63, 0x68, 0x6f, 0x65, 0x6e, 0x77, 0x61, 0x65, 0x6c, 0x64,
+  0x65, 0x72, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+  0x20, 0x20, 0x3c, 0x6d, 0x61, 0x69, 0x6c, 0x74, 0x6f, 0x3a, 0x6a, 0x2e,
+  0x73, 0x63, 0x68, 0x6f, 0x65, 0x6e, 0x77, 0x61, 0x65, 0x6c, 0x64, 0x65,
+  0x72, 0x40, 0x6a, 0x61, 0x63, 0x6f, 0x62, 0x73, 0x2d, 0x75, 0x6e, 0x69,
+  0x76, 0x65, 0x72, 0x73, 0x69, 0x74, 0x79, 0x2e, 0x64, 0x65, 0x3e, 0x0a,
+  0x0a, 0x20, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x3a, 0x20, 0x20, 0x20,
+  0x50, 0x68, 0x69, 0x6c, 0x20, 0x53, 0x68, 0x61, 0x66, 0x65, 0x72, 0x0a,
+  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c,
+  0x6d, 0x61, 0x69, 0x6c, 0x74, 0x6f, 0x3a, 0x70, 0x68, 0x69, 0x6c, 0x40,
+  0x6a, 0x75, 0x6e, 0x69, 0x70, 0x65, 0x72, 0x2e, 0x6e, 0x65, 0x74, 0x3e,
+  0x0a, 0x0a, 0x20, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x3a, 0x20, 0x20,
+  0x20, 0x4b, 0x65, 0x6e, 0x74, 0x20, 0x57, 0x61, 0x74, 0x73, 0x65, 0x6e,
+  0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+  0x3c, 0x6d, 0x61, 0x69, 0x6c, 0x74, 0x6f, 0x3a, 0x6b, 0x77, 0x61, 0x74,
+  0x73, 0x65, 0x6e, 0x40, 0x6a, 0x75, 0x6e, 0x69, 0x70, 0x65, 0x72, 0x2e,
+  0x6e, 0x65, 0x74, 0x3e, 0x0a, 0x0a, 0x20, 0x41, 0x75, 0x74, 0x68, 0x6f,
+  0x72, 0x3a, 0x20, 0x20, 0x20, 0x52, 0x6f, 0x62, 0x20, 0x57, 0x69, 0x6c,
+  0x74, 0x6f, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+  0x20, 0x20, 0x20, 0x3c, 0x72, 0x77, 0x69, 0x6c, 0x74, 0x6f, 0x6e, 0x40,
+  0x63, 0x69, 0x73, 0x63, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x3e, 0x22, 0x3b,
+  0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x0a,
+  0x22, 0x54, 0x68, 0x69, 0x73, 0x20, 0x59, 0x41, 0x4e, 0x47, 0x20, 0x6d,
+  0x6f, 0x64, 0x75, 0x6c, 0x65, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65,
+  0x73, 0x20, 0x74, 0x77, 0x6f, 0x20, 0x73, 0x65, 0x74, 0x73, 0x20, 0x6f,
+  0x66, 0x20, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73,
+  0x20, 0x66, 0x6f, 0x72, 0x20, 0x64, 0x61, 0x74, 0x61, 0x73, 0x74, 0x6f,
+  0x72, 0x65, 0x73, 0x2e, 0x0a, 0x20, 0x54, 0x68, 0x65, 0x20, 0x66, 0x69,
+  0x72, 0x73, 0x74, 0x20, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69,
+  0x65, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x64, 0x61, 0x74, 0x61, 0x73,
+  0x74, 0x6f, 0x72, 0x65, 0x73, 0x20, 0x74, 0x68, 0x65, 0x6d, 0x73, 0x65,
+  0x6c, 0x76, 0x65, 0x73, 0x2c, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65,
+  0x63, 0x6f, 0x6e, 0x64, 0x0a, 0x20, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69,
+  0x66, 0x69, 0x65, 0x73, 0x20, 0x64, 0x61, 0x74, 0x61, 0x73, 0x74, 0x6f,
+  0x72, 0x65, 0x20, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65,
+  0x73, 0x2e, 0x0a, 0x0a, 0x20, 0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67,
+  0x68, 0x74, 0x20, 0x28, 0x63, 0x29, 0x20, 0x32, 0x30, 0x31, 0x37, 0x20,
+  0x49, 0x45, 0x54, 0x46, 0x20, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x61,
+  0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x70, 0x65, 0x72, 0x73, 0x6f,
+  0x6e, 0x73, 0x20, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65,
+  0x64, 0x20, 0x61, 0x73, 0x0a, 0x20, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72,
+  0x73, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x6f, 0x64,
+  0x65, 0x2e, 0x20, 0x20, 0x41, 0x6c, 0x6c, 0x20, 0x72, 0x69, 0x67, 0x68,
+  0x74, 0x73, 0x20, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x2e,
+  0x0a, 0x0a, 0x20, 0x52, 0x65, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62,
+  0x75, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x75, 0x73,
+  0x65, 0x20, 0x69, 0x6e, 0x20, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x20,
+  0x61, 0x6e, 0x64, 0x20, 0x62, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x20, 0x66,
+  0x6f, 0x72, 0x6d, 0x73, 0x2c, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x6f,
+  0x72, 0x0a, 0x20, 0x77, 0x69, 0x74, 0x68, 0x6f, 0x75, 0x74, 0x20, 0x6d,
+  0x6f, 0x64, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2c,
+  0x20, 0x69, 0x73, 0x20, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x74, 0x74, 0x65,
+  0x64, 0x20, 0x70, 0x75, 0x72, 0x73, 0x75, 0x61, 0x6e, 0x74, 0x20, 0x74,
+  0x6f, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x73, 0x75, 0x62, 0x6a, 0x65,
+  0x63, 0x74, 0x20, 0x74, 0x6f, 0x0a, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6c,
+  0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x20, 0x74, 0x65, 0x72, 0x6d, 0x73,
+  0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x64, 0x20, 0x69,
+  0x6e, 0x2c, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x69, 0x6d, 0x70, 0x6c,
+  0x69, 0x66, 0x69, 0x65, 0x64, 0x20, 0x42, 0x53, 0x44, 0x20, 0x4c, 0x69,
+  0x63, 0x65, 0x6e, 0x73, 0x65, 0x20, 0x73, 0x65, 0x74, 0x0a, 0x20, 0x66,
+  0x6f, 0x72, 0x74, 0x68, 0x20, 0x69, 0x6e, 0x20, 0x53, 0x65, 0x63, 0x74,
+  0x69, 0x6f, 0x6e, 0x20, 0x34, 0x2e, 0x63, 0x20, 0x6f, 0x66, 0x20, 0x74,
+  0x68, 0x65, 0x20, 0x49, 0x45, 0x54, 0x46, 0x20, 0x54, 0x72, 0x75, 0x73,
+  0x74, 0x27, 0x73, 0x20, 0x4c, 0x65, 0x67, 0x61, 0x6c, 0x20, 0x50, 0x72,
+  0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x20, 0x52, 0x65,
+  0x6c, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x6f, 0x20, 0x49, 0x45,
+  0x54, 0x46, 0x20, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73,
+  0x0a, 0x20, 0x28, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x74, 0x72,
+  0x75, 0x73, 0x74, 0x65, 0x65, 0x2e, 0x69, 0x65, 0x74, 0x66, 0x2e, 0x6f,
+  0x72, 0x67, 0x2f, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x2d, 0x69,
+  0x6e, 0x66, 0x6f, 0x29, 0x2e, 0x0a, 0x0a, 0x20, 0x54, 0x68, 0x69, 0x73,
+  0x20, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20,
+  0x74, 0x68, 0x69, 0x73, 0x20, 0x59, 0x41, 0x4e, 0x47, 0x20, 0x6d, 0x6f,
+  0x64, 0x75, 0x6c, 0x65, 0x20, 0x69, 0x73, 0x20, 0x70, 0x61, 0x72, 0x74,
+  0x20, 0x6f, 0x66, 0x20, 0x52, 0x46, 0x43, 0x20, 0x58, 0x58, 0x58, 0x58,
+  0x0a, 0x20, 0x28, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x77, 0x77,
+  0x77, 0x2e, 0x72, 0x66, 0x63, 0x2d, 0x65, 0x64, 0x69, 0x74, 0x6f, 0x72,
+  0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x69, 0x6e, 0x66, 0x6f, 0x2f, 0x72, 0x66,
+  0x63, 0x78, 0x78, 0x78, 0x78, 0x29, 0x3b, 0x20, 0x73, 0x65, 0x65, 0x20,
+  0x74, 0x68, 0x65, 0x20, 0x52, 0x46, 0x43, 0x20, 0x69, 0x74, 0x73, 0x65,
+  0x6c, 0x66, 0x0a, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x66, 0x75, 0x6c, 0x6c,
+  0x20, 0x6c, 0x65, 0x67, 0x61, 0x6c, 0x20, 0x6e, 0x6f, 0x74, 0x69, 0x63,
+  0x65, 0x73, 0x2e, 0x22, 0x3b, 0x0a, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69,
+  0x6f, 0x6e, 0x20, 0x32, 0x30, 0x31, 0x37, 0x2d, 0x30, 0x38, 0x2d, 0x31,
+  0x37, 0x20, 0x7b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69,
+  0x6f, 0x6e, 0x20, 0x22, 0x49, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x20,
+  0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x22, 0x3b, 0x72,
+  0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x22, 0x52, 0x46,
+  0x43, 0x20, 0x58, 0x58, 0x58, 0x58, 0x3a, 0x20, 0x4e, 0x65, 0x74, 0x77,
+  0x6f, 0x72, 0x6b, 0x20, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65,
+  0x6e, 0x74, 0x20, 0x44, 0x61, 0x74, 0x61, 0x73, 0x74, 0x6f, 0x72, 0x65,
+  0x20, 0x41, 0x72, 0x63, 0x68, 0x69, 0x74, 0x65, 0x63, 0x74, 0x75, 0x72,
+  0x65, 0x22, 0x3b, 0x7d, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79,
+  0x20, 0x64, 0x61, 0x74, 0x61, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x20, 0x7b,
+  0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x20,
+  0x22, 0x41, 0x62, 0x73, 0x74, 0x72, 0x61, 0x63, 0x74, 0x20, 0x62, 0x61,
+  0x73, 0x65, 0x20, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x20,
+  0x66, 0x6f, 0x72, 0x20, 0x64, 0x61, 0x74, 0x61, 0x73, 0x74, 0x6f, 0x72,
+  0x65, 0x20, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73,
+  0x2e, 0x22, 0x3b, 0x7d, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79,
+  0x20, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x61,
+  0x6c, 0x20, 0x7b, 0x62, 0x61, 0x73, 0x65, 0x20, 0x64, 0x61, 0x74, 0x61,
+  0x73, 0x74, 0x6f, 0x72, 0x65, 0x3b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69,
+  0x70, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x0a, 0x22, 0x41, 0x62, 0x73, 0x74,
+  0x72, 0x61, 0x63, 0x74, 0x20, 0x62, 0x61, 0x73, 0x65, 0x20, 0x69, 0x64,
+  0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63,
+  0x6f, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x20,
+  0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f,
+  0x6e, 0x0a, 0x20, 0x64, 0x61, 0x74, 0x61, 0x73, 0x74, 0x6f, 0x72, 0x65,
+  0x73, 0x2e, 0x22, 0x3b, 0x7d, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74,
+  0x79, 0x20, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x20, 0x7b, 0x62,
+  0x61, 0x73, 0x65, 0x20, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x69,
+  0x6f, 0x6e, 0x61, 0x6c, 0x3b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70,
+  0x74, 0x69, 0x6f, 0x6e, 0x20, 0x22, 0x54, 0x68, 0x65, 0x20, 0x72, 0x75,
+  0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x20, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67,
+  0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x64, 0x61, 0x74, 0x61,
+  0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x22, 0x3b, 0x7d, 0x69, 0x64, 0x65,
+  0x6e, 0x74, 0x69, 0x74, 0x79, 0x20, 0x63, 0x61, 0x6e, 0x64, 0x69, 0x64,
+  0x61, 0x74, 0x65, 0x20, 0x7b, 0x62, 0x61, 0x73, 0x65, 0x20, 0x63, 0x6f,
+  0x6e, 0x76, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x3b, 0x64,
+  0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x22,
+  0x54, 0x68, 0x65, 0x20, 0x63, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74,
+  0x65, 0x20, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74,
+  0x69, 0x6f, 0x6e, 0x20, 0x64, 0x61, 0x74, 0x61, 0x73, 0x74, 0x6f, 0x72,
+  0x65, 0x2e, 0x22, 0x3b, 0x7d, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74,
+  0x79, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x75, 0x70, 0x20, 0x7b, 0x62,
+  0x61, 0x73, 0x65, 0x20, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x69,
+  0x6f, 0x6e, 0x61, 0x6c, 0x3b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70,
+  0x74, 0x69, 0x6f, 0x6e, 0x20, 0x22, 0x54, 0x68, 0x65, 0x20, 0x73, 0x74,
+  0x61, 0x72, 0x74, 0x75, 0x70, 0x20, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67,
+  0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x64, 0x61, 0x74, 0x61,
+  0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x22, 0x3b, 0x7d, 0x69, 0x64, 0x65,
+  0x6e, 0x74, 0x69, 0x74, 0x79, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x64,
+  0x65, 0x64, 0x20, 0x7b, 0x62, 0x61, 0x73, 0x65, 0x20, 0x63, 0x6f, 0x6e,
+  0x76, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x3b, 0x64, 0x65,
+  0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x22, 0x54,
+  0x68, 0x65, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x20,
+  0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f,
+  0x6e, 0x20, 0x64, 0x61, 0x74, 0x61, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e,
+  0x22, 0x3b, 0x7d, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x20,
+  0x64, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x20, 0x7b, 0x62, 0x61, 0x73,
+  0x65, 0x20, 0x64, 0x61, 0x74, 0x61, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x3b,
+  0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x20,
+  0x22, 0x41, 0x62, 0x73, 0x74, 0x72, 0x61, 0x63, 0x74, 0x20, 0x62, 0x61,
+  0x73, 0x65, 0x20, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x20,
+  0x66, 0x6f, 0x72, 0x20, 0x64, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x20,
+  0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f,
+  0x6e, 0x20, 0x64, 0x61, 0x74, 0x61, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x73,
+  0x2e, 0x22, 0x3b, 0x7d, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79,
+  0x20, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c,
+  0x20, 0x7b, 0x62, 0x61, 0x73, 0x65, 0x20, 0x64, 0x61, 0x74, 0x61, 0x73,
+  0x74, 0x6f, 0x72, 0x65, 0x3b, 0x20, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69,
+  0x70, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x22, 0x54, 0x68, 0x65, 0x20, 0x6f,
+  0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x20, 0x73,
+  0x74, 0x61, 0x74, 0x65, 0x20, 0x64, 0x61, 0x74, 0x61, 0x73, 0x74, 0x6f,
+  0x72, 0x65, 0x2e, 0x22, 0x3b, 0x7d, 0x74, 0x79, 0x70, 0x65, 0x64, 0x65,
+  0x66, 0x20, 0x64, 0x61, 0x74, 0x61, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2d,
+  0x72, 0x65, 0x66, 0x20, 0x7b, 0x74, 0x79, 0x70, 0x65, 0x20, 0x69, 0x64,
+  0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x72, 0x65, 0x66, 0x20, 0x7b, 0x62,
+  0x61, 0x73, 0x65, 0x20, 0x64, 0x61, 0x74, 0x61, 0x73, 0x74, 0x6f, 0x72,
+  0x65, 0x3b, 0x7d, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69,
+  0x6f, 0x6e, 0x20, 0x22, 0x41, 0x20, 0x64, 0x61, 0x74, 0x61, 0x73, 0x74,
+  0x6f, 0x72, 0x65, 0x20, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79,
+  0x20, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x2e, 0x22,
+  0x3b, 0x7d, 0x7d, 0x00
+};
diff --git a/models/ietf-datastores@2017-08-17.yang b/models/ietf-datastores@2017-08-17.yang
new file mode 100644
index 0000000..0a5a0fd
--- /dev/null
+++ b/models/ietf-datastores@2017-08-17.yang
@@ -0,0 +1,119 @@
+module ietf-datastores {
+  yang-version 1.1;
+  namespace "urn:ietf:params:xml:ns:yang:ietf-datastores";
+  prefix ds;
+
+  organization
+    "IETF Network Modeling (NETMOD) Working Group";
+
+  contact
+    "WG Web:   <https://datatracker.ietf.org/wg/netmod/>
+
+     WG List:  <mailto:netmod@ietf.org>
+
+     Author:   Martin Bjorklund
+               <mailto:mbj@tail-f.com>
+
+     Author:   Juergen Schoenwaelder
+               <mailto:j.schoenwaelder@jacobs-university.de>
+
+     Author:   Phil Shafer
+               <mailto:phil@juniper.net>
+
+     Author:   Kent Watsen
+               <mailto:kwatsen@juniper.net>
+
+     Author:   Rob Wilton
+               <rwilton@cisco.com>";
+
+  description
+    "This YANG module defines two sets of identities for datastores.
+     The first identifies the datastores themselves, the second
+     identifies datastore properties.
+
+     Copyright (c) 2017 IETF Trust and the persons identified as
+     authors of the code.  All rights reserved.
+
+     Redistribution and use in source and binary forms, with or
+     without modification, is permitted pursuant to, and subject to
+     the license terms contained in, the Simplified BSD License set
+     forth in Section 4.c of the IETF Trust's Legal Provisions
+     Relating to IETF Documents
+     (http://trustee.ietf.org/license-info).
+
+     This version of this YANG module is part of RFC XXXX
+     (http://www.rfc-editor.org/info/rfcxxxx); see the RFC itself
+     for full legal notices.";
+
+  revision 2017-08-17 {
+    description
+      "Initial revision.";
+    reference
+      "RFC XXXX: Network Management Datastore Architecture";
+  }
+
+  /*
+   * Identities
+   */
+
+  identity datastore {
+    description
+     "Abstract base identity for datastore identities.";
+  }
+
+  identity conventional {
+    base datastore;
+    description
+     "Abstract base identity for conventional configuration
+      datastores.";
+  }
+
+  identity running {
+    base conventional;
+    description
+     "The running configuration datastore.";
+  }
+
+  identity candidate {
+    base conventional;
+    description
+     "The candidate configuration datastore.";
+  }
+
+  identity startup {
+    base conventional;
+    description
+     "The startup configuration datastore.";
+  }
+
+  identity intended {
+    base conventional;
+    description
+     "The intended configuration datastore.";
+  }
+
+  identity dynamic {
+    base datastore;
+    description
+     "Abstract base identity for dynamic configuration datastores.";
+  }
+
+  identity operational {
+    base datastore;
+    description
+     "The operational state datastore.";
+  }
+
+  /*
+   * Type definitions
+   */
+
+  typedef datastore-ref {
+    type identityref {
+      base datastore;
+    }
+    description
+      "A datastore identity reference.";
+  }
+
+}
diff --git a/models/ietf-inet-types@2013-07-15.h b/models/ietf-inet-types@2013-07-15.h
new file mode 100644
index 0000000..514c532
--- /dev/null
+++ b/models/ietf-inet-types@2013-07-15.h
@@ -0,0 +1,1189 @@
+unsigned char ietf_inet_types_2013_07_15_yang[] = {
+  0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x20, 0x69, 0x65, 0x74, 0x66, 0x2d,
+  0x69, 0x6e, 0x65, 0x74, 0x2d, 0x74, 0x79, 0x70, 0x65, 0x73, 0x20, 0x7b,
+  0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x20, 0x22, 0x75,
+  0x72, 0x6e, 0x3a, 0x69, 0x65, 0x74, 0x66, 0x3a, 0x70, 0x61, 0x72, 0x61,
+  0x6d, 0x73, 0x3a, 0x78, 0x6d, 0x6c, 0x3a, 0x6e, 0x73, 0x3a, 0x79, 0x61,
+  0x6e, 0x67, 0x3a, 0x69, 0x65, 0x74, 0x66, 0x2d, 0x69, 0x6e, 0x65, 0x74,
+  0x2d, 0x74, 0x79, 0x70, 0x65, 0x73, 0x22, 0x3b, 0x70, 0x72, 0x65, 0x66,
+  0x69, 0x78, 0x20, 0x22, 0x69, 0x6e, 0x65, 0x74, 0x22, 0x3b, 0x6f, 0x72,
+  0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x22,
+  0x49, 0x45, 0x54, 0x46, 0x20, 0x4e, 0x45, 0x54, 0x4d, 0x4f, 0x44, 0x20,
+  0x28, 0x4e, 0x45, 0x54, 0x43, 0x4f, 0x4e, 0x46, 0x20, 0x44, 0x61, 0x74,
+  0x61, 0x20, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x69, 0x6e, 0x67, 0x20, 0x4c,
+  0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x29, 0x20, 0x57, 0x6f, 0x72,
+  0x6b, 0x69, 0x6e, 0x67, 0x20, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x22, 0x3b,
+  0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x0a, 0x22, 0x57, 0x47, 0x20,
+  0x57, 0x65, 0x62, 0x3a, 0x20, 0x20, 0x20, 0x3c, 0x68, 0x74, 0x74, 0x70,
+  0x3a, 0x2f, 0x2f, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x69, 0x65, 0x74,
+  0x66, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x77, 0x67, 0x2f, 0x6e, 0x65, 0x74,
+  0x6d, 0x6f, 0x64, 0x2f, 0x3e, 0x0a, 0x57, 0x47, 0x20, 0x4c, 0x69, 0x73,
+  0x74, 0x3a, 0x20, 0x20, 0x3c, 0x6d, 0x61, 0x69, 0x6c, 0x74, 0x6f, 0x3a,
+  0x6e, 0x65, 0x74, 0x6d, 0x6f, 0x64, 0x40, 0x69, 0x65, 0x74, 0x66, 0x2e,
+  0x6f, 0x72, 0x67, 0x3e, 0x0a, 0x0a, 0x57, 0x47, 0x20, 0x43, 0x68, 0x61,
+  0x69, 0x72, 0x3a, 0x20, 0x44, 0x61, 0x76, 0x69, 0x64, 0x20, 0x4b, 0x65,
+  0x73, 0x73, 0x65, 0x6e, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+  0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x6d, 0x61, 0x69, 0x6c, 0x74, 0x6f,
+  0x3a, 0x64, 0x61, 0x76, 0x69, 0x64, 0x2e, 0x6b, 0x65, 0x73, 0x73, 0x65,
+  0x6e, 0x73, 0x40, 0x6e, 0x73, 0x6e, 0x2e, 0x63, 0x6f, 0x6d, 0x3e, 0x0a,
+  0x0a, 0x57, 0x47, 0x20, 0x43, 0x68, 0x61, 0x69, 0x72, 0x3a, 0x20, 0x4a,
+  0x75, 0x65, 0x72, 0x67, 0x65, 0x6e, 0x20, 0x53, 0x63, 0x68, 0x6f, 0x65,
+  0x6e, 0x77, 0x61, 0x65, 0x6c, 0x64, 0x65, 0x72, 0x0a, 0x20, 0x20, 0x20,
+  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x6d, 0x61, 0x69,
+  0x6c, 0x74, 0x6f, 0x3a, 0x6a, 0x2e, 0x73, 0x63, 0x68, 0x6f, 0x65, 0x6e,
+  0x77, 0x61, 0x65, 0x6c, 0x64, 0x65, 0x72, 0x40, 0x6a, 0x61, 0x63, 0x6f,
+  0x62, 0x73, 0x2d, 0x75, 0x6e, 0x69, 0x76, 0x65, 0x72, 0x73, 0x69, 0x74,
+  0x79, 0x2e, 0x64, 0x65, 0x3e, 0x0a, 0x0a, 0x45, 0x64, 0x69, 0x74, 0x6f,
+  0x72, 0x3a, 0x20, 0x20, 0x20, 0x4a, 0x75, 0x65, 0x72, 0x67, 0x65, 0x6e,
+  0x20, 0x53, 0x63, 0x68, 0x6f, 0x65, 0x6e, 0x77, 0x61, 0x65, 0x6c, 0x64,
+  0x65, 0x72, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+  0x20, 0x20, 0x3c, 0x6d, 0x61, 0x69, 0x6c, 0x74, 0x6f, 0x3a, 0x6a, 0x2e,
+  0x73, 0x63, 0x68, 0x6f, 0x65, 0x6e, 0x77, 0x61, 0x65, 0x6c, 0x64, 0x65,
+  0x72, 0x40, 0x6a, 0x61, 0x63, 0x6f, 0x62, 0x73, 0x2d, 0x75, 0x6e, 0x69,
+  0x76, 0x65, 0x72, 0x73, 0x69, 0x74, 0x79, 0x2e, 0x64, 0x65, 0x3e, 0x22,
+  0x3b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e,
+  0x0a, 0x22, 0x54, 0x68, 0x69, 0x73, 0x20, 0x6d, 0x6f, 0x64, 0x75, 0x6c,
+  0x65, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x73, 0x20, 0x61,
+  0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20,
+  0x6f, 0x66, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x6c, 0x79,
+  0x20, 0x75, 0x73, 0x65, 0x66, 0x75, 0x6c, 0x20, 0x64, 0x65, 0x72, 0x69,
+  0x76, 0x65, 0x64, 0x0a, 0x59, 0x41, 0x4e, 0x47, 0x20, 0x64, 0x61, 0x74,
+  0x61, 0x20, 0x74, 0x79, 0x70, 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20,
+  0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x20, 0x61, 0x64, 0x64,
+  0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x72,
+  0x65, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x20, 0x74, 0x68, 0x69, 0x6e, 0x67,
+  0x73, 0x2e, 0x0a, 0x0a, 0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68,
+  0x74, 0x20, 0x28, 0x63, 0x29, 0x20, 0x32, 0x30, 0x31, 0x33, 0x20, 0x49,
+  0x45, 0x54, 0x46, 0x20, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x61, 0x6e,
+  0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e,
+  0x73, 0x20, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x64,
+  0x20, 0x61, 0x73, 0x0a, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x73, 0x20,
+  0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x6f, 0x64, 0x65, 0x2e,
+  0x20, 0x20, 0x41, 0x6c, 0x6c, 0x20, 0x72, 0x69, 0x67, 0x68, 0x74, 0x73,
+  0x20, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x2e, 0x0a, 0x0a,
+  0x52, 0x65, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69,
+  0x6f, 0x6e, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x75, 0x73, 0x65, 0x20, 0x69,
+  0x6e, 0x20, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x20, 0x61, 0x6e, 0x64,
+  0x20, 0x62, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x20, 0x66, 0x6f, 0x72, 0x6d,
+  0x73, 0x2c, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x6f, 0x72, 0x0a, 0x77,
+  0x69, 0x74, 0x68, 0x6f, 0x75, 0x74, 0x20, 0x6d, 0x6f, 0x64, 0x69, 0x66,
+  0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x69, 0x73, 0x20,
+  0x70, 0x65, 0x72, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x64, 0x20, 0x70, 0x75,
+  0x72, 0x73, 0x75, 0x61, 0x6e, 0x74, 0x20, 0x74, 0x6f, 0x2c, 0x20, 0x61,
+  0x6e, 0x64, 0x20, 0x73, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x0a, 0x74,
+  0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73,
+  0x65, 0x20, 0x74, 0x65, 0x72, 0x6d, 0x73, 0x20, 0x63, 0x6f, 0x6e, 0x74,
+  0x61, 0x69, 0x6e, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x2c, 0x20, 0x74, 0x68,
+  0x65, 0x20, 0x53, 0x69, 0x6d, 0x70, 0x6c, 0x69, 0x66, 0x69, 0x65, 0x64,
+  0x20, 0x42, 0x53, 0x44, 0x20, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65,
+  0x0a, 0x73, 0x65, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x74, 0x68, 0x20, 0x69,
+  0x6e, 0x20, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x34, 0x2e,
+  0x63, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x49, 0x45, 0x54,
+  0x46, 0x20, 0x54, 0x72, 0x75, 0x73, 0x74, 0x27, 0x73, 0x20, 0x4c, 0x65,
+  0x67, 0x61, 0x6c, 0x20, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f,
+  0x6e, 0x73, 0x0a, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x20,
+  0x74, 0x6f, 0x20, 0x49, 0x45, 0x54, 0x46, 0x20, 0x44, 0x6f, 0x63, 0x75,
+  0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x28, 0x68, 0x74, 0x74, 0x70, 0x3a,
+  0x2f, 0x2f, 0x74, 0x72, 0x75, 0x73, 0x74, 0x65, 0x65, 0x2e, 0x69, 0x65,
+  0x74, 0x66, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x6c, 0x69, 0x63, 0x65, 0x6e,
+  0x73, 0x65, 0x2d, 0x69, 0x6e, 0x66, 0x6f, 0x29, 0x2e, 0x0a, 0x0a, 0x54,
+  0x68, 0x69, 0x73, 0x20, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x20,
+  0x6f, 0x66, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x59, 0x41, 0x4e, 0x47,
+  0x20, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x20, 0x69, 0x73, 0x20, 0x70,
+  0x61, 0x72, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x52, 0x46, 0x43, 0x20, 0x36,
+  0x39, 0x39, 0x31, 0x3b, 0x20, 0x73, 0x65, 0x65, 0x0a, 0x74, 0x68, 0x65,
+  0x20, 0x52, 0x46, 0x43, 0x20, 0x69, 0x74, 0x73, 0x65, 0x6c, 0x66, 0x20,
+  0x66, 0x6f, 0x72, 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x20, 0x6c, 0x65, 0x67,
+  0x61, 0x6c, 0x20, 0x6e, 0x6f, 0x74, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x22,
+  0x3b, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x32, 0x30,
+  0x31, 0x33, 0x2d, 0x30, 0x37, 0x2d, 0x31, 0x35, 0x20, 0x7b, 0x64, 0x65,
+  0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x22, 0x54,
+  0x68, 0x69, 0x73, 0x20, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e,
+  0x20, 0x61, 0x64, 0x64, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x6f,
+  0x6c, 0x6c, 0x6f, 0x77, 0x69, 0x6e, 0x67, 0x20, 0x6e, 0x65, 0x77, 0x20,
+  0x64, 0x61, 0x74, 0x61, 0x20, 0x74, 0x79, 0x70, 0x65, 0x73, 0x3a, 0x0a,
+  0x2d, 0x20, 0x69, 0x70, 0x2d, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73,
+  0x2d, 0x6e, 0x6f, 0x2d, 0x7a, 0x6f, 0x6e, 0x65, 0x0a, 0x2d, 0x20, 0x69,
+  0x70, 0x76, 0x34, 0x2d, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x2d,
+  0x6e, 0x6f, 0x2d, 0x7a, 0x6f, 0x6e, 0x65, 0x0a, 0x2d, 0x20, 0x69, 0x70,
+  0x76, 0x36, 0x2d, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x2d, 0x6e,
+  0x6f, 0x2d, 0x7a, 0x6f, 0x6e, 0x65, 0x22, 0x3b, 0x72, 0x65, 0x66, 0x65,
+  0x72, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x22, 0x52, 0x46, 0x43, 0x20, 0x36,
+  0x39, 0x39, 0x31, 0x3a, 0x20, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x20,
+  0x59, 0x41, 0x4e, 0x47, 0x20, 0x44, 0x61, 0x74, 0x61, 0x20, 0x54, 0x79,
+  0x70, 0x65, 0x73, 0x22, 0x3b, 0x7d, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69,
+  0x6f, 0x6e, 0x20, 0x32, 0x30, 0x31, 0x30, 0x2d, 0x30, 0x39, 0x2d, 0x32,
+  0x34, 0x20, 0x7b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69,
+  0x6f, 0x6e, 0x20, 0x22, 0x49, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x20,
+  0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x22, 0x3b, 0x72,
+  0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x22, 0x52, 0x46,
+  0x43, 0x20, 0x36, 0x30, 0x32, 0x31, 0x3a, 0x20, 0x43, 0x6f, 0x6d, 0x6d,
+  0x6f, 0x6e, 0x20, 0x59, 0x41, 0x4e, 0x47, 0x20, 0x44, 0x61, 0x74, 0x61,
+  0x20, 0x54, 0x79, 0x70, 0x65, 0x73, 0x22, 0x3b, 0x7d, 0x74, 0x79, 0x70,
+  0x65, 0x64, 0x65, 0x66, 0x20, 0x69, 0x70, 0x2d, 0x76, 0x65, 0x72, 0x73,
+  0x69, 0x6f, 0x6e, 0x20, 0x7b, 0x74, 0x79, 0x70, 0x65, 0x20, 0x65, 0x6e,
+  0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x7b, 0x65,
+  0x6e, 0x75, 0x6d, 0x20, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x20,
+  0x7b, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x22, 0x30, 0x22, 0x3b, 0x64,
+  0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x22,
+  0x41, 0x6e, 0x20, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x20, 0x6f,
+  0x72, 0x20, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65,
+  0x64, 0x20, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66,
+  0x20, 0x74, 0x68, 0x65, 0x20, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x65,
+  0x74, 0x0a, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x22,
+  0x3b, 0x7d, 0x65, 0x6e, 0x75, 0x6d, 0x20, 0x69, 0x70, 0x76, 0x34, 0x20,
+  0x7b, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x22, 0x31, 0x22, 0x3b, 0x64,
+  0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x22,
+  0x54, 0x68, 0x65, 0x20, 0x49, 0x50, 0x76, 0x34, 0x20, 0x70, 0x72, 0x6f,
+  0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x20, 0x61, 0x73, 0x20, 0x64, 0x65, 0x66,
+  0x69, 0x6e, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x52, 0x46, 0x43, 0x20,
+  0x37, 0x39, 0x31, 0x2e, 0x22, 0x3b, 0x7d, 0x65, 0x6e, 0x75, 0x6d, 0x20,
+  0x69, 0x70, 0x76, 0x36, 0x20, 0x7b, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20,
+  0x22, 0x32, 0x22, 0x3b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74,
+  0x69, 0x6f, 0x6e, 0x20, 0x22, 0x54, 0x68, 0x65, 0x20, 0x49, 0x50, 0x76,
+  0x36, 0x20, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x20, 0x61,
+  0x73, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x20, 0x69, 0x6e,
+  0x20, 0x52, 0x46, 0x43, 0x20, 0x32, 0x34, 0x36, 0x30, 0x2e, 0x22, 0x3b,
+  0x7d, 0x7d, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f,
+  0x6e, 0x0a, 0x22, 0x54, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75,
+  0x65, 0x20, 0x72, 0x65, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x73,
+  0x20, 0x74, 0x68, 0x65, 0x20, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e,
+  0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x49, 0x50, 0x20, 0x70,
+  0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x0a, 0x0a, 0x49, 0x6e,
+  0x20, 0x74, 0x68, 0x65, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x73,
+  0x65, 0x74, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x69, 0x74, 0x73, 0x20, 0x73,
+  0x65, 0x6d, 0x61, 0x6e, 0x74, 0x69, 0x63, 0x73, 0x2c, 0x20, 0x74, 0x68,
+  0x69, 0x73, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x69, 0x73, 0x20, 0x65,
+  0x71, 0x75, 0x69, 0x76, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x0a, 0x74, 0x6f,
+  0x20, 0x74, 0x68, 0x65, 0x20, 0x49, 0x6e, 0x65, 0x74, 0x56, 0x65, 0x72,
+  0x73, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x65, 0x78, 0x74, 0x75, 0x61, 0x6c,
+  0x20, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x20,
+  0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x4d, 0x49, 0x76, 0x32,
+  0x2e, 0x22, 0x3b, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65,
+  0x0a, 0x22, 0x52, 0x46, 0x43, 0x20, 0x20, 0x37, 0x39, 0x31, 0x3a, 0x20,
+  0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x20, 0x50, 0x72, 0x6f,
+  0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x0a, 0x52, 0x46, 0x43, 0x20, 0x32, 0x34,
+  0x36, 0x30, 0x3a, 0x20, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x65, 0x74,
+  0x20, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2c, 0x20, 0x56,
+  0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x36, 0x20, 0x28, 0x49, 0x50,
+  0x76, 0x36, 0x29, 0x20, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63,
+  0x61, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x52, 0x46, 0x43, 0x20, 0x34, 0x30,
+  0x30, 0x31, 0x3a, 0x20, 0x54, 0x65, 0x78, 0x74, 0x75, 0x61, 0x6c, 0x20,
+  0x43, 0x6f, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20,
+  0x66, 0x6f, 0x72, 0x20, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x65, 0x74,
+  0x20, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x20, 0x41, 0x64, 0x64,
+  0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x22, 0x3b, 0x7d, 0x74, 0x79, 0x70,
+  0x65, 0x64, 0x65, 0x66, 0x20, 0x64, 0x73, 0x63, 0x70, 0x20, 0x7b, 0x74,
+  0x79, 0x70, 0x65, 0x20, 0x75, 0x69, 0x6e, 0x74, 0x38, 0x20, 0x7b, 0x72,
+  0x61, 0x6e, 0x67, 0x65, 0x20, 0x22, 0x30, 0x2e, 0x2e, 0x36, 0x33, 0x22,
+  0x3b, 0x7d, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f,
+  0x6e, 0x0a, 0x22, 0x54, 0x68, 0x65, 0x20, 0x64, 0x73, 0x63, 0x70, 0x20,
+  0x74, 0x79, 0x70, 0x65, 0x20, 0x72, 0x65, 0x70, 0x72, 0x65, 0x73, 0x65,
+  0x6e, 0x74, 0x73, 0x20, 0x61, 0x20, 0x44, 0x69, 0x66, 0x66, 0x65, 0x72,
+  0x65, 0x6e, 0x74, 0x69, 0x61, 0x74, 0x65, 0x64, 0x20, 0x53, 0x65, 0x72,
+  0x76, 0x69, 0x63, 0x65, 0x73, 0x20, 0x43, 0x6f, 0x64, 0x65, 0x20, 0x50,
+  0x6f, 0x69, 0x6e, 0x74, 0x0a, 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, 0x61,
+  0x79, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x66, 0x6f,
+  0x72, 0x20, 0x6d, 0x61, 0x72, 0x6b, 0x69, 0x6e, 0x67, 0x20, 0x70, 0x61,
+  0x63, 0x6b, 0x65, 0x74, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x61, 0x20, 0x74,
+  0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x20, 0x73, 0x74, 0x72, 0x65, 0x61,
+  0x6d, 0x2e, 0x0a, 0x49, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x76, 0x61,
+  0x6c, 0x75, 0x65, 0x20, 0x73, 0x65, 0x74, 0x20, 0x61, 0x6e, 0x64, 0x20,
+  0x69, 0x74, 0x73, 0x20, 0x73, 0x65, 0x6d, 0x61, 0x6e, 0x74, 0x69, 0x63,
+  0x73, 0x2c, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x74, 0x79, 0x70, 0x65,
+  0x20, 0x69, 0x73, 0x20, 0x65, 0x71, 0x75, 0x69, 0x76, 0x61, 0x6c, 0x65,
+  0x6e, 0x74, 0x0a, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x44, 0x73,
+  0x63, 0x70, 0x20, 0x74, 0x65, 0x78, 0x74, 0x75, 0x61, 0x6c, 0x20, 0x63,
+  0x6f, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66,
+  0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x4d, 0x49, 0x76, 0x32, 0x2e, 0x22,
+  0x3b, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x0a, 0x22,
+  0x52, 0x46, 0x43, 0x20, 0x33, 0x32, 0x38, 0x39, 0x3a, 0x20, 0x4d, 0x61,
+  0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x49, 0x6e, 0x66,
+  0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x42, 0x61, 0x73,
+  0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x44, 0x69,
+  0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x74, 0x65, 0x64,
+  0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+  0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x20, 0x41, 0x72, 0x63,
+  0x68, 0x69, 0x74, 0x65, 0x63, 0x74, 0x75, 0x72, 0x65, 0x0a, 0x52, 0x46,
+  0x43, 0x20, 0x32, 0x34, 0x37, 0x34, 0x3a, 0x20, 0x44, 0x65, 0x66, 0x69,
+  0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68,
+  0x65, 0x20, 0x44, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x74, 0x69,
+  0x61, 0x74, 0x65, 0x64, 0x20, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65,
+  0x73, 0x20, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20,
+  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x28, 0x44, 0x53, 0x20, 0x46,
+  0x69, 0x65, 0x6c, 0x64, 0x29, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65,
+  0x20, 0x49, 0x50, 0x76, 0x34, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x49, 0x50,
+  0x76, 0x36, 0x20, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x0a, 0x52,
+  0x46, 0x43, 0x20, 0x32, 0x37, 0x38, 0x30, 0x3a, 0x20, 0x49, 0x41, 0x4e,
+  0x41, 0x20, 0x41, 0x6c, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+  0x20, 0x47, 0x75, 0x69, 0x64, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x20,
+  0x46, 0x6f, 0x72, 0x20, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x20, 0x49,
+  0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+  0x20, 0x74, 0x68, 0x65, 0x20, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x65,
+  0x74, 0x20, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x20, 0x61,
+  0x6e, 0x64, 0x20, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x20, 0x48,
+  0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x22, 0x3b, 0x7d, 0x74, 0x79, 0x70,
+  0x65, 0x64, 0x65, 0x66, 0x20, 0x69, 0x70, 0x76, 0x36, 0x2d, 0x66, 0x6c,
+  0x6f, 0x77, 0x2d, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x20, 0x7b, 0x74, 0x79,
+  0x70, 0x65, 0x20, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x20, 0x7b, 0x72,
+  0x61, 0x6e, 0x67, 0x65, 0x20, 0x22, 0x30, 0x2e, 0x2e, 0x31, 0x30, 0x34,
+  0x38, 0x35, 0x37, 0x35, 0x22, 0x3b, 0x7d, 0x64, 0x65, 0x73, 0x63, 0x72,
+  0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x22, 0x54, 0x68, 0x65, 0x20,
+  0x69, 0x70, 0x76, 0x36, 0x2d, 0x66, 0x6c, 0x6f, 0x77, 0x2d, 0x6c, 0x61,
+  0x62, 0x65, 0x6c, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x72, 0x65, 0x70,
+  0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20,
+  0x66, 0x6c, 0x6f, 0x77, 0x20, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66,
+  0x69, 0x65, 0x72, 0x20, 0x6f, 0x72, 0x20, 0x46, 0x6c, 0x6f, 0x77, 0x0a,
+  0x4c, 0x61, 0x62, 0x65, 0x6c, 0x20, 0x69, 0x6e, 0x20, 0x61, 0x6e, 0x20,
+  0x49, 0x50, 0x76, 0x36, 0x20, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x20,
+  0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20,
+  0x6d, 0x61, 0x79, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20,
+  0x74, 0x6f, 0x0a, 0x64, 0x69, 0x73, 0x63, 0x72, 0x69, 0x6d, 0x69, 0x6e,
+  0x61, 0x74, 0x65, 0x20, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x20,
+  0x66, 0x6c, 0x6f, 0x77, 0x73, 0x2e, 0x0a, 0x0a, 0x49, 0x6e, 0x20, 0x74,
+  0x68, 0x65, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x73, 0x65, 0x74,
+  0x20, 0x61, 0x6e, 0x64, 0x20, 0x69, 0x74, 0x73, 0x20, 0x73, 0x65, 0x6d,
+  0x61, 0x6e, 0x74, 0x69, 0x63, 0x73, 0x2c, 0x20, 0x74, 0x68, 0x69, 0x73,
+  0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x69, 0x73, 0x20, 0x65, 0x71, 0x75,
+  0x69, 0x76, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x0a, 0x74, 0x6f, 0x20, 0x74,
+  0x68, 0x65, 0x20, 0x49, 0x50, 0x76, 0x36, 0x46, 0x6c, 0x6f, 0x77, 0x4c,
+  0x61, 0x62, 0x65, 0x6c, 0x20, 0x74, 0x65, 0x78, 0x74, 0x75, 0x61, 0x6c,
+  0x20, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x20,
+  0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x4d, 0x49, 0x76, 0x32,
+  0x2e, 0x22, 0x3b, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65,
+  0x0a, 0x22, 0x52, 0x46, 0x43, 0x20, 0x33, 0x35, 0x39, 0x35, 0x3a, 0x20,
+  0x54, 0x65, 0x78, 0x74, 0x75, 0x61, 0x6c, 0x20, 0x43, 0x6f, 0x6e, 0x76,
+  0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20,
+  0x49, 0x50, 0x76, 0x36, 0x20, 0x46, 0x6c, 0x6f, 0x77, 0x20, 0x4c, 0x61,
+  0x62, 0x65, 0x6c, 0x0a, 0x52, 0x46, 0x43, 0x20, 0x32, 0x34, 0x36, 0x30,
+  0x3a, 0x20, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x20, 0x50,
+  0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2c, 0x20, 0x56, 0x65, 0x72,
+  0x73, 0x69, 0x6f, 0x6e, 0x20, 0x36, 0x20, 0x28, 0x49, 0x50, 0x76, 0x36,
+  0x29, 0x20, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74,
+  0x69, 0x6f, 0x6e, 0x22, 0x3b, 0x7d, 0x74, 0x79, 0x70, 0x65, 0x64, 0x65,
+  0x66, 0x20, 0x70, 0x6f, 0x72, 0x74, 0x2d, 0x6e, 0x75, 0x6d, 0x62, 0x65,
+  0x72, 0x20, 0x7b, 0x74, 0x79, 0x70, 0x65, 0x20, 0x75, 0x69, 0x6e, 0x74,
+  0x31, 0x36, 0x20, 0x7b, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x20, 0x22, 0x30,
+  0x2e, 0x2e, 0x36, 0x35, 0x35, 0x33, 0x35, 0x22, 0x3b, 0x7d, 0x64, 0x65,
+  0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x22, 0x54,
+  0x68, 0x65, 0x20, 0x70, 0x6f, 0x72, 0x74, 0x2d, 0x6e, 0x75, 0x6d, 0x62,
+  0x65, 0x72, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x72, 0x65, 0x70, 0x72,
+  0x65, 0x73, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x61, 0x20, 0x31, 0x36, 0x2d,
+  0x62, 0x69, 0x74, 0x20, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x6e, 0x75, 0x6d,
+  0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6e, 0x0a, 0x49, 0x6e,
+  0x74, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73,
+  0x70, 0x6f, 0x72, 0x74, 0x2d, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x20, 0x70,
+  0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x20, 0x73, 0x75, 0x63, 0x68,
+  0x20, 0x61, 0x73, 0x20, 0x55, 0x44, 0x50, 0x2c, 0x20, 0x54, 0x43, 0x50,
+  0x2c, 0x20, 0x44, 0x43, 0x43, 0x50, 0x2c, 0x20, 0x6f, 0x72, 0x0a, 0x53,
+  0x43, 0x54, 0x50, 0x2e, 0x20, 0x20, 0x50, 0x6f, 0x72, 0x74, 0x20, 0x6e,
+  0x75, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x61,
+  0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x49,
+  0x41, 0x4e, 0x41, 0x2e, 0x20, 0x20, 0x41, 0x20, 0x63, 0x75, 0x72, 0x72,
+  0x65, 0x6e, 0x74, 0x20, 0x6c, 0x69, 0x73, 0x74, 0x20, 0x6f, 0x66, 0x0a,
+  0x61, 0x6c, 0x6c, 0x20, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x6d, 0x65,
+  0x6e, 0x74, 0x73, 0x20, 0x69, 0x73, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c,
+  0x61, 0x62, 0x6c, 0x65, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x3c, 0x68,
+  0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x69, 0x61,
+  0x6e, 0x61, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x3e, 0x2e, 0x0a, 0x0a, 0x4e,
+  0x6f, 0x74, 0x65, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x74, 0x68, 0x65,
+  0x20, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72,
+  0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x7a, 0x65, 0x72, 0x6f, 0x20,
+  0x69, 0x73, 0x20, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x20,
+  0x62, 0x79, 0x20, 0x49, 0x41, 0x4e, 0x41, 0x2e, 0x20, 0x20, 0x49, 0x6e,
+  0x0a, 0x73, 0x69, 0x74, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20,
+  0x77, 0x68, 0x65, 0x72, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x76, 0x61,
+  0x6c, 0x75, 0x65, 0x20, 0x7a, 0x65, 0x72, 0x6f, 0x20, 0x64, 0x6f, 0x65,
+  0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x6d, 0x61, 0x6b, 0x65, 0x20, 0x73,
+  0x65, 0x6e, 0x73, 0x65, 0x2c, 0x20, 0x69, 0x74, 0x20, 0x63, 0x61, 0x6e,
+  0x0a, 0x62, 0x65, 0x20, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x64,
+  0x20, 0x62, 0x79, 0x20, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x69, 0x6e,
+  0x67, 0x20, 0x74, 0x68, 0x65, 0x20, 0x70, 0x6f, 0x72, 0x74, 0x2d, 0x6e,
+  0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x0a,
+  0x49, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65,
+  0x20, 0x73, 0x65, 0x74, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x69, 0x74, 0x73,
+  0x20, 0x73, 0x65, 0x6d, 0x61, 0x6e, 0x74, 0x69, 0x63, 0x73, 0x2c, 0x20,
+  0x74, 0x68, 0x69, 0x73, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x69, 0x73,
+  0x20, 0x65, 0x71, 0x75, 0x69, 0x76, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x0a,
+  0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x49, 0x6e, 0x65, 0x74, 0x50,
+  0x6f, 0x72, 0x74, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x74, 0x65,
+  0x78, 0x74, 0x75, 0x61, 0x6c, 0x20, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x6e,
+  0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20,
+  0x53, 0x4d, 0x49, 0x76, 0x32, 0x2e, 0x22, 0x3b, 0x72, 0x65, 0x66, 0x65,
+  0x72, 0x65, 0x6e, 0x63, 0x65, 0x0a, 0x22, 0x52, 0x46, 0x43, 0x20, 0x20,
+  0x37, 0x36, 0x38, 0x3a, 0x20, 0x55, 0x73, 0x65, 0x72, 0x20, 0x44, 0x61,
+  0x74, 0x61, 0x67, 0x72, 0x61, 0x6d, 0x20, 0x50, 0x72, 0x6f, 0x74, 0x6f,
+  0x63, 0x6f, 0x6c, 0x0a, 0x52, 0x46, 0x43, 0x20, 0x20, 0x37, 0x39, 0x33,
+  0x3a, 0x20, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x73, 0x73, 0x69,
+  0x6f, 0x6e, 0x20, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x20, 0x50,
+  0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x0a, 0x52, 0x46, 0x43, 0x20,
+  0x34, 0x39, 0x36, 0x30, 0x3a, 0x20, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d,
+  0x20, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x20, 0x54, 0x72, 0x61,
+  0x6e, 0x73, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x50, 0x72,
+  0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x0a, 0x52, 0x46, 0x43, 0x20, 0x34,
+  0x33, 0x34, 0x30, 0x3a, 0x20, 0x44, 0x61, 0x74, 0x61, 0x67, 0x72, 0x61,
+  0x6d, 0x20, 0x43, 0x6f, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e,
+  0x20, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x20, 0x50, 0x72, 0x6f,
+  0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x20, 0x28, 0x44, 0x43, 0x43, 0x50, 0x29,
+  0x0a, 0x52, 0x46, 0x43, 0x20, 0x34, 0x30, 0x30, 0x31, 0x3a, 0x20, 0x54,
+  0x65, 0x78, 0x74, 0x75, 0x61, 0x6c, 0x20, 0x43, 0x6f, 0x6e, 0x76, 0x65,
+  0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x49,
+  0x6e, 0x74, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x20, 0x4e, 0x65, 0x74, 0x77,
+  0x6f, 0x72, 0x6b, 0x20, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65,
+  0x73, 0x22, 0x3b, 0x7d, 0x74, 0x79, 0x70, 0x65, 0x64, 0x65, 0x66, 0x20,
+  0x61, 0x73, 0x2d, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x7b, 0x74,
+  0x79, 0x70, 0x65, 0x20, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x3b, 0x64,
+  0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x22,
+  0x54, 0x68, 0x65, 0x20, 0x61, 0x73, 0x2d, 0x6e, 0x75, 0x6d, 0x62, 0x65,
+  0x72, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x72, 0x65, 0x70, 0x72, 0x65,
+  0x73, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x6e, 0x6f,
+  0x6d, 0x6f, 0x75, 0x73, 0x20, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x20,
+  0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x0a, 0x77, 0x68, 0x69, 0x63,
+  0x68, 0x20, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x20, 0x61,
+  0x6e, 0x20, 0x41, 0x75, 0x74, 0x6f, 0x6e, 0x6f, 0x6d, 0x6f, 0x75, 0x73,
+  0x20, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x20, 0x28, 0x41, 0x53, 0x29,
+  0x2e, 0x20, 0x20, 0x41, 0x6e, 0x20, 0x41, 0x53, 0x20, 0x69, 0x73, 0x20,
+  0x61, 0x20, 0x73, 0x65, 0x74, 0x0a, 0x6f, 0x66, 0x20, 0x72, 0x6f, 0x75,
+  0x74, 0x65, 0x72, 0x73, 0x20, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x20, 0x61,
+  0x20, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x20, 0x74, 0x65, 0x63, 0x68,
+  0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x69,
+  0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x75, 0x73,
+  0x69, 0x6e, 0x67, 0x0a, 0x61, 0x6e, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x72,
+  0x69, 0x6f, 0x72, 0x20, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x20,
+  0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x20, 0x61, 0x6e, 0x64,
+  0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x20, 0x6d, 0x65, 0x74, 0x72,
+  0x69, 0x63, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x6f, 0x75, 0x74, 0x65,
+  0x0a, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x20, 0x77, 0x69, 0x74,
+  0x68, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x41, 0x53, 0x2c, 0x20,
+  0x61, 0x6e, 0x64, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6e,
+  0x20, 0x65, 0x78, 0x74, 0x65, 0x72, 0x69, 0x6f, 0x72, 0x20, 0x67, 0x61,
+  0x74, 0x65, 0x77, 0x61, 0x79, 0x0a, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63,
+  0x6f, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x20,
+  0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x6f,
+  0x74, 0x68, 0x65, 0x72, 0x20, 0x41, 0x53, 0x65, 0x73, 0x2e, 0x20, 0x20,
+  0x49, 0x41, 0x4e, 0x41, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x74, 0x61, 0x69,
+  0x6e, 0x73, 0x0a, 0x74, 0x68, 0x65, 0x20, 0x41, 0x53, 0x20, 0x6e, 0x75,
+  0x6d, 0x62, 0x65, 0x72, 0x20, 0x73, 0x70, 0x61, 0x63, 0x65, 0x20, 0x61,
+  0x6e, 0x64, 0x20, 0x68, 0x61, 0x73, 0x20, 0x64, 0x65, 0x6c, 0x65, 0x67,
+  0x61, 0x74, 0x65, 0x64, 0x20, 0x6c, 0x61, 0x72, 0x67, 0x65, 0x20, 0x70,
+  0x61, 0x72, 0x74, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x0a,
+  0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x20, 0x72, 0x65, 0x67,
+  0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2e, 0x0a, 0x0a, 0x41, 0x75,
+  0x74, 0x6f, 0x6e, 0x6f, 0x6d, 0x6f, 0x75, 0x73, 0x20, 0x73, 0x79, 0x73,
+  0x74, 0x65, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x20,
+  0x77, 0x65, 0x72, 0x65, 0x20, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61,
+  0x6c, 0x6c, 0x79, 0x20, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x65, 0x64, 0x20,
+  0x74, 0x6f, 0x20, 0x31, 0x36, 0x0a, 0x62, 0x69, 0x74, 0x73, 0x2e, 0x20,
+  0x20, 0x42, 0x47, 0x50, 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69,
+  0x6f, 0x6e, 0x73, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x65, 0x6e, 0x6c,
+  0x61, 0x72, 0x67, 0x65, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x75,
+  0x74, 0x6f, 0x6e, 0x6f, 0x6d, 0x6f, 0x75, 0x73, 0x20, 0x73, 0x79, 0x73,
+  0x74, 0x65, 0x6d, 0x0a, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x73,
+  0x70, 0x61, 0x63, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x33, 0x32, 0x20, 0x62,
+  0x69, 0x74, 0x73, 0x2e, 0x20, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x74,
+  0x79, 0x70, 0x65, 0x20, 0x74, 0x68, 0x65, 0x72, 0x65, 0x66, 0x6f, 0x72,
+  0x65, 0x20, 0x75, 0x73, 0x65, 0x73, 0x20, 0x61, 0x6e, 0x20, 0x75, 0x69,
+  0x6e, 0x74, 0x33, 0x32, 0x0a, 0x62, 0x61, 0x73, 0x65, 0x20, 0x74, 0x79,
+  0x70, 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, 0x6f, 0x75, 0x74, 0x20, 0x61,
+  0x20, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x20, 0x72, 0x65, 0x73, 0x74, 0x72,
+  0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x6e, 0x20, 0x6f, 0x72,
+  0x64, 0x65, 0x72, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x75, 0x70, 0x70, 0x6f,
+  0x72, 0x74, 0x0a, 0x61, 0x20, 0x6c, 0x61, 0x72, 0x67, 0x65, 0x72, 0x20,
+  0x61, 0x75, 0x74, 0x6f, 0x6e, 0x6f, 0x6d, 0x6f, 0x75, 0x73, 0x20, 0x73,
+  0x79, 0x73, 0x74, 0x65, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72,
+  0x20, 0x73, 0x70, 0x61, 0x63, 0x65, 0x2e, 0x0a, 0x0a, 0x49, 0x6e, 0x20,
+  0x74, 0x68, 0x65, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x73, 0x65,
+  0x74, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x69, 0x74, 0x73, 0x20, 0x73, 0x65,
+  0x6d, 0x61, 0x6e, 0x74, 0x69, 0x63, 0x73, 0x2c, 0x20, 0x74, 0x68, 0x69,
+  0x73, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x69, 0x73, 0x20, 0x65, 0x71,
+  0x75, 0x69, 0x76, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x0a, 0x74, 0x6f, 0x20,
+  0x74, 0x68, 0x65, 0x20, 0x49, 0x6e, 0x65, 0x74, 0x41, 0x75, 0x74, 0x6f,
+  0x6e, 0x6f, 0x6d, 0x6f, 0x75, 0x73, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d,
+  0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x74, 0x65, 0x78, 0x74, 0x75,
+  0x61, 0x6c, 0x20, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x69, 0x6f,
+  0x6e, 0x20, 0x6f, 0x66, 0x0a, 0x74, 0x68, 0x65, 0x20, 0x53, 0x4d, 0x49,
+  0x76, 0x32, 0x2e, 0x22, 0x3b, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e,
+  0x63, 0x65, 0x0a, 0x22, 0x52, 0x46, 0x43, 0x20, 0x31, 0x39, 0x33, 0x30,
+  0x3a, 0x20, 0x47, 0x75, 0x69, 0x64, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73,
+  0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f,
+  0x6e, 0x2c, 0x20, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e,
+  0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74,
+  0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20,
+  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6e, 0x20,
+  0x41, 0x75, 0x74, 0x6f, 0x6e, 0x6f, 0x6d, 0x6f, 0x75, 0x73, 0x20, 0x53,
+  0x79, 0x73, 0x74, 0x65, 0x6d, 0x20, 0x28, 0x41, 0x53, 0x29, 0x0a, 0x52,
+  0x46, 0x43, 0x20, 0x34, 0x32, 0x37, 0x31, 0x3a, 0x20, 0x41, 0x20, 0x42,
+  0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61,
+  0x79, 0x20, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x20, 0x34,
+  0x20, 0x28, 0x42, 0x47, 0x50, 0x2d, 0x34, 0x29, 0x0a, 0x52, 0x46, 0x43,
+  0x20, 0x34, 0x30, 0x30, 0x31, 0x3a, 0x20, 0x54, 0x65, 0x78, 0x74, 0x75,
+  0x61, 0x6c, 0x20, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x69, 0x6f,
+  0x6e, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x49, 0x6e, 0x74, 0x65, 0x72,
+  0x6e, 0x65, 0x74, 0x20, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x20,
+  0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x0a, 0x52, 0x46,
+  0x43, 0x20, 0x36, 0x37, 0x39, 0x33, 0x3a, 0x20, 0x42, 0x47, 0x50, 0x20,
+  0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20,
+  0x46, 0x6f, 0x75, 0x72, 0x2d, 0x4f, 0x63, 0x74, 0x65, 0x74, 0x20, 0x41,
+  0x75, 0x74, 0x6f, 0x6e, 0x6f, 0x6d, 0x6f, 0x75, 0x73, 0x20, 0x53, 0x79,
+  0x73, 0x74, 0x65, 0x6d, 0x20, 0x28, 0x41, 0x53, 0x29, 0x0a, 0x20, 0x20,
+  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x75, 0x6d,
+  0x62, 0x65, 0x72, 0x20, 0x53, 0x70, 0x61, 0x63, 0x65, 0x22, 0x3b, 0x7d,
+  0x74, 0x79, 0x70, 0x65, 0x64, 0x65, 0x66, 0x20, 0x69, 0x70, 0x2d, 0x61,
+  0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x20, 0x7b, 0x74, 0x79, 0x70, 0x65,
+  0x20, 0x75, 0x6e, 0x69, 0x6f, 0x6e, 0x20, 0x7b, 0x74, 0x79, 0x70, 0x65,
+  0x20, 0x69, 0x6e, 0x65, 0x74, 0x3a, 0x69, 0x70, 0x76, 0x34, 0x2d, 0x61,
+  0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x3b, 0x74, 0x79, 0x70, 0x65, 0x20,
+  0x69, 0x6e, 0x65, 0x74, 0x3a, 0x69, 0x70, 0x76, 0x36, 0x2d, 0x61, 0x64,
+  0x64, 0x72, 0x65, 0x73, 0x73, 0x3b, 0x7d, 0x64, 0x65, 0x73, 0x63, 0x72,
+  0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x22, 0x54, 0x68, 0x65, 0x20,
+  0x69, 0x70, 0x2d, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x20, 0x74,
+  0x79, 0x70, 0x65, 0x20, 0x72, 0x65, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e,
+  0x74, 0x73, 0x20, 0x61, 0x6e, 0x20, 0x49, 0x50, 0x20, 0x61, 0x64, 0x64,
+  0x72, 0x65, 0x73, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x69, 0x73, 0x20,
+  0x49, 0x50, 0x0a, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6e,
+  0x65, 0x75, 0x74, 0x72, 0x61, 0x6c, 0x2e, 0x20, 0x20, 0x54, 0x68, 0x65,
+  0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x74,
+  0x68, 0x65, 0x20, 0x74, 0x65, 0x78, 0x74, 0x75, 0x61, 0x6c, 0x20, 0x72,
+  0x65, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f,
+  0x6e, 0x0a, 0x69, 0x6d, 0x70, 0x6c, 0x69, 0x65, 0x73, 0x20, 0x74, 0x68,
+  0x65, 0x20, 0x49, 0x50, 0x20, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e,
+  0x2e, 0x20, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x74, 0x79, 0x70, 0x65,
+  0x20, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x20, 0x73, 0x63,
+  0x6f, 0x70, 0x65, 0x64, 0x20, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73,
+  0x65, 0x73, 0x0a, 0x62, 0x79, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x69,
+  0x6e, 0x67, 0x20, 0x7a, 0x6f, 0x6e, 0x65, 0x20, 0x69, 0x64, 0x65, 0x6e,
+  0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74,
+  0x68, 0x65, 0x20, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x20, 0x66,
+  0x6f, 0x72, 0x6d, 0x61, 0x74, 0x2e, 0x22, 0x3b, 0x72, 0x65, 0x66, 0x65,
+  0x72, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x22, 0x52, 0x46, 0x43, 0x20, 0x34,
+  0x30, 0x30, 0x37, 0x3a, 0x20, 0x49, 0x50, 0x76, 0x36, 0x20, 0x53, 0x63,
+  0x6f, 0x70, 0x65, 0x64, 0x20, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73,
+  0x20, 0x41, 0x72, 0x63, 0x68, 0x69, 0x74, 0x65, 0x63, 0x74, 0x75, 0x72,
+  0x65, 0x22, 0x3b, 0x7d, 0x74, 0x79, 0x70, 0x65, 0x64, 0x65, 0x66, 0x20,
+  0x69, 0x70, 0x76, 0x34, 0x2d, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73,
+  0x20, 0x7b, 0x74, 0x79, 0x70, 0x65, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e,
+  0x67, 0x20, 0x7b, 0x70, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x20, 0x27,
+  0x28, 0x28, 0x5b, 0x30, 0x2d, 0x39, 0x5d, 0x7c, 0x5b, 0x31, 0x2d, 0x39,
+  0x5d, 0x5b, 0x30, 0x2d, 0x39, 0x5d, 0x7c, 0x31, 0x5b, 0x30, 0x2d, 0x39,
+  0x5d, 0x5b, 0x30, 0x2d, 0x39, 0x5d, 0x7c, 0x32, 0x5b, 0x30, 0x2d, 0x34,
+  0x5d, 0x5b, 0x30, 0x2d, 0x39, 0x5d, 0x7c, 0x32, 0x35, 0x5b, 0x30, 0x2d,
+  0x35, 0x5d, 0x29, 0x5c, 0x2e, 0x29, 0x7b, 0x33, 0x7d, 0x28, 0x5b, 0x30,
+  0x2d, 0x39, 0x5d, 0x7c, 0x5b, 0x31, 0x2d, 0x39, 0x5d, 0x5b, 0x30, 0x2d,
+  0x39, 0x5d, 0x7c, 0x31, 0x5b, 0x30, 0x2d, 0x39, 0x5d, 0x5b, 0x30, 0x2d,
+  0x39, 0x5d, 0x7c, 0x32, 0x5b, 0x30, 0x2d, 0x34, 0x5d, 0x5b, 0x30, 0x2d,
+  0x39, 0x5d, 0x7c, 0x32, 0x35, 0x5b, 0x30, 0x2d, 0x35, 0x5d, 0x29, 0x28,
+  0x25, 0x5b, 0x5c, 0x70, 0x7b, 0x4e, 0x7d, 0x5c, 0x70, 0x7b, 0x4c, 0x7d,
+  0x5d, 0x2b, 0x29, 0x3f, 0x27, 0x3b, 0x7d, 0x64, 0x65, 0x73, 0x63, 0x72,
+  0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x22, 0x54, 0x68, 0x65, 0x20,
+  0x69, 0x70, 0x76, 0x34, 0x2d, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73,
+  0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x72, 0x65, 0x70, 0x72, 0x65, 0x73,
+  0x65, 0x6e, 0x74, 0x73, 0x20, 0x61, 0x6e, 0x20, 0x49, 0x50, 0x76, 0x34,
+  0x20, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x20, 0x69, 0x6e, 0x0a,
+  0x64, 0x6f, 0x74, 0x74, 0x65, 0x64, 0x2d, 0x71, 0x75, 0x61, 0x64, 0x20,
+  0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x20, 0x20, 0x54,
+  0x68, 0x65, 0x20, 0x49, 0x50, 0x76, 0x34, 0x20, 0x61, 0x64, 0x64, 0x72,
+  0x65, 0x73, 0x73, 0x20, 0x6d, 0x61, 0x79, 0x20, 0x69, 0x6e, 0x63, 0x6c,
+  0x75, 0x64, 0x65, 0x20, 0x61, 0x20, 0x7a, 0x6f, 0x6e, 0x65, 0x0a, 0x69,
+  0x6e, 0x64, 0x65, 0x78, 0x2c, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61,
+  0x74, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x61, 0x20, 0x25, 0x20, 0x73,
+  0x69, 0x67, 0x6e, 0x2e, 0x0a, 0x0a, 0x54, 0x68, 0x65, 0x20, 0x7a, 0x6f,
+  0x6e, 0x65, 0x20, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x20, 0x69, 0x73, 0x20,
+  0x75, 0x73, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x64, 0x69, 0x73, 0x61,
+  0x6d, 0x62, 0x69, 0x67, 0x75, 0x61, 0x74, 0x65, 0x20, 0x69, 0x64, 0x65,
+  0x6e, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x61, 0x64, 0x64, 0x72, 0x65,
+  0x73, 0x73, 0x0a, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x2e, 0x20, 0x20,
+  0x46, 0x6f, 0x72, 0x20, 0x6c, 0x69, 0x6e, 0x6b, 0x2d, 0x6c, 0x6f, 0x63,
+  0x61, 0x6c, 0x20, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73,
+  0x2c, 0x20, 0x74, 0x68, 0x65, 0x20, 0x7a, 0x6f, 0x6e, 0x65, 0x20, 0x69,
+  0x6e, 0x64, 0x65, 0x78, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x0a, 0x74, 0x79,
+  0x70, 0x69, 0x63, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x62, 0x65, 0x20, 0x74,
+  0x68, 0x65, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65,
+  0x20, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65,
+  0x72, 0x20, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6e, 0x61, 0x6d,
+  0x65, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6e, 0x0a, 0x69, 0x6e, 0x74, 0x65,
+  0x72, 0x66, 0x61, 0x63, 0x65, 0x2e, 0x20, 0x20, 0x49, 0x66, 0x20, 0x74,
+  0x68, 0x65, 0x20, 0x7a, 0x6f, 0x6e, 0x65, 0x20, 0x69, 0x6e, 0x64, 0x65,
+  0x78, 0x20, 0x69, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x70, 0x72, 0x65,
+  0x73, 0x65, 0x6e, 0x74, 0x2c, 0x20, 0x74, 0x68, 0x65, 0x20, 0x64, 0x65,
+  0x66, 0x61, 0x75, 0x6c, 0x74, 0x0a, 0x7a, 0x6f, 0x6e, 0x65, 0x20, 0x6f,
+  0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65,
+  0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65,
+  0x64, 0x2e, 0x0a, 0x0a, 0x54, 0x68, 0x65, 0x20, 0x63, 0x61, 0x6e, 0x6f,
+  0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74,
+  0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x7a, 0x6f, 0x6e,
+  0x65, 0x20, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x20, 0x69, 0x73, 0x20, 0x74,
+  0x68, 0x65, 0x20, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x6c,
+  0x0a, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x22, 0x3b, 0x7d, 0x74, 0x79,
+  0x70, 0x65, 0x64, 0x65, 0x66, 0x20, 0x69, 0x70, 0x76, 0x36, 0x2d, 0x61,
+  0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x20, 0x7b, 0x74, 0x79, 0x70, 0x65,
+  0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x7b, 0x70, 0x61, 0x74,
+  0x74, 0x65, 0x72, 0x6e, 0x20, 0x27, 0x28, 0x28, 0x3a, 0x7c, 0x5b, 0x30,
+  0x2d, 0x39, 0x61, 0x2d, 0x66, 0x41, 0x2d, 0x46, 0x5d, 0x7b, 0x30, 0x2c,
+  0x34, 0x7d, 0x29, 0x3a, 0x29, 0x28, 0x5b, 0x30, 0x2d, 0x39, 0x61, 0x2d,
+  0x66, 0x41, 0x2d, 0x46, 0x5d, 0x7b, 0x30, 0x2c, 0x34, 0x7d, 0x3a, 0x29,
+  0x7b, 0x30, 0x2c, 0x35, 0x7d, 0x28, 0x28, 0x28, 0x5b, 0x30, 0x2d, 0x39,
+  0x61, 0x2d, 0x66, 0x41, 0x2d, 0x46, 0x5d, 0x7b, 0x30, 0x2c, 0x34, 0x7d,
+  0x3a, 0x29, 0x3f, 0x28, 0x3a, 0x7c, 0x5b, 0x30, 0x2d, 0x39, 0x61, 0x2d,
+  0x66, 0x41, 0x2d, 0x46, 0x5d, 0x7b, 0x30, 0x2c, 0x34, 0x7d, 0x29, 0x29,
+  0x7c, 0x28, 0x28, 0x28, 0x32, 0x35, 0x5b, 0x30, 0x2d, 0x35, 0x5d, 0x7c,
+  0x32, 0x5b, 0x30, 0x2d, 0x34, 0x5d, 0x5b, 0x30, 0x2d, 0x39, 0x5d, 0x7c,
+  0x5b, 0x30, 0x31, 0x5d, 0x3f, 0x5b, 0x30, 0x2d, 0x39, 0x5d, 0x3f, 0x5b,
+  0x30, 0x2d, 0x39, 0x5d, 0x29, 0x5c, 0x2e, 0x29, 0x7b, 0x33, 0x7d, 0x28,
+  0x32, 0x35, 0x5b, 0x30, 0x2d, 0x35, 0x5d, 0x7c, 0x32, 0x5b, 0x30, 0x2d,
+  0x34, 0x5d, 0x5b, 0x30, 0x2d, 0x39, 0x5d, 0x7c, 0x5b, 0x30, 0x31, 0x5d,
+  0x3f, 0x5b, 0x30, 0x2d, 0x39, 0x5d, 0x3f, 0x5b, 0x30, 0x2d, 0x39, 0x5d,
+  0x29, 0x29, 0x29, 0x28, 0x25, 0x5b, 0x5c, 0x70, 0x7b, 0x4e, 0x7d, 0x5c,
+  0x70, 0x7b, 0x4c, 0x7d, 0x5d, 0x2b, 0x29, 0x3f, 0x27, 0x3b, 0x70, 0x61,
+  0x74, 0x74, 0x65, 0x72, 0x6e, 0x20, 0x27, 0x28, 0x28, 0x5b, 0x5e, 0x3a,
+  0x5d, 0x2b, 0x3a, 0x29, 0x7b, 0x36, 0x7d, 0x28, 0x28, 0x5b, 0x5e, 0x3a,
+  0x5d, 0x2b, 0x3a, 0x5b, 0x5e, 0x3a, 0x5d, 0x2b, 0x29, 0x7c, 0x28, 0x2e,
+  0x2a, 0x5c, 0x2e, 0x2e, 0x2a, 0x29, 0x29, 0x29, 0x7c, 0x28, 0x28, 0x28,
+  0x5b, 0x5e, 0x3a, 0x5d, 0x2b, 0x3a, 0x29, 0x2a, 0x5b, 0x5e, 0x3a, 0x5d,
+  0x2b, 0x29, 0x3f, 0x3a, 0x3a, 0x28, 0x28, 0x5b, 0x5e, 0x3a, 0x5d, 0x2b,
+  0x3a, 0x29, 0x2a, 0x5b, 0x5e, 0x3a, 0x5d, 0x2b, 0x29, 0x3f, 0x29, 0x28,
+  0x25, 0x2e, 0x2b, 0x29, 0x3f, 0x27, 0x3b, 0x7d, 0x64, 0x65, 0x73, 0x63,
+  0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x22, 0x54, 0x68, 0x65,
+  0x20, 0x69, 0x70, 0x76, 0x36, 0x2d, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73,
+  0x73, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x72, 0x65, 0x70, 0x72, 0x65,
+  0x73, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x61, 0x6e, 0x20, 0x49, 0x50, 0x76,
+  0x36, 0x20, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x20, 0x69, 0x6e,
+  0x20, 0x66, 0x75, 0x6c, 0x6c, 0x2c, 0x0a, 0x6d, 0x69, 0x78, 0x65, 0x64,
+  0x2c, 0x20, 0x73, 0x68, 0x6f, 0x72, 0x74, 0x65, 0x6e, 0x65, 0x64, 0x2c,
+  0x20, 0x61, 0x6e, 0x64, 0x20, 0x73, 0x68, 0x6f, 0x72, 0x74, 0x65, 0x6e,
+  0x65, 0x64, 0x2d, 0x6d, 0x69, 0x78, 0x65, 0x64, 0x20, 0x6e, 0x6f, 0x74,
+  0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x20, 0x20, 0x54, 0x68, 0x65, 0x20,
+  0x49, 0x50, 0x76, 0x36, 0x0a, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73,
+  0x20, 0x6d, 0x61, 0x79, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65,
+  0x20, 0x61, 0x20, 0x7a, 0x6f, 0x6e, 0x65, 0x20, 0x69, 0x6e, 0x64, 0x65,
+  0x78, 0x2c, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x64,
+  0x20, 0x62, 0x79, 0x20, 0x61, 0x20, 0x25, 0x20, 0x73, 0x69, 0x67, 0x6e,
+  0x2e, 0x0a, 0x0a, 0x54, 0x68, 0x65, 0x20, 0x7a, 0x6f, 0x6e, 0x65, 0x20,
+  0x69, 0x6e, 0x64, 0x65, 0x78, 0x20, 0x69, 0x73, 0x20, 0x75, 0x73, 0x65,
+  0x64, 0x20, 0x74, 0x6f, 0x20, 0x64, 0x69, 0x73, 0x61, 0x6d, 0x62, 0x69,
+  0x67, 0x75, 0x61, 0x74, 0x65, 0x20, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69,
+  0x63, 0x61, 0x6c, 0x20, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x0a,
+  0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x2e, 0x20, 0x20, 0x46, 0x6f, 0x72,
+  0x20, 0x6c, 0x69, 0x6e, 0x6b, 0x2d, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20,
+  0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x2c, 0x20, 0x74,
+  0x68, 0x65, 0x20, 0x7a, 0x6f, 0x6e, 0x65, 0x20, 0x69, 0x6e, 0x64, 0x65,
+  0x78, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x0a, 0x74, 0x79, 0x70, 0x69, 0x63,
+  0x61, 0x6c, 0x6c, 0x79, 0x20, 0x62, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20,
+  0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x20, 0x69, 0x6e,
+  0x64, 0x65, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f,
+  0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x6f,
+  0x66, 0x20, 0x61, 0x6e, 0x0a, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61,
+  0x63, 0x65, 0x2e, 0x20, 0x20, 0x49, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20,
+  0x7a, 0x6f, 0x6e, 0x65, 0x20, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x20, 0x69,
+  0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e,
+  0x74, 0x2c, 0x20, 0x74, 0x68, 0x65, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75,
+  0x6c, 0x74, 0x0a, 0x7a, 0x6f, 0x6e, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74,
+  0x68, 0x65, 0x20, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x20, 0x77, 0x69,
+  0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x2e, 0x0a,
+  0x0a, 0x54, 0x68, 0x65, 0x20, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63,
+  0x61, 0x6c, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x20, 0x6f, 0x66,
+  0x20, 0x49, 0x50, 0x76, 0x36, 0x20, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73,
+  0x73, 0x65, 0x73, 0x20, 0x75, 0x73, 0x65, 0x73, 0x20, 0x74, 0x68, 0x65,
+  0x20, 0x74, 0x65, 0x78, 0x74, 0x75, 0x61, 0x6c, 0x0a, 0x72, 0x65, 0x70,
+  0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20,
+  0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x53,
+  0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x34, 0x20, 0x6f, 0x66, 0x20,
+  0x52, 0x46, 0x43, 0x20, 0x35, 0x39, 0x35, 0x32, 0x2e, 0x20, 0x20, 0x54,
+  0x68, 0x65, 0x0a, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c,
+  0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20,
+  0x74, 0x68, 0x65, 0x20, 0x7a, 0x6f, 0x6e, 0x65, 0x20, 0x69, 0x6e, 0x64,
+  0x65, 0x78, 0x20, 0x69, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6e, 0x75,
+  0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x6c, 0x0a, 0x66, 0x6f, 0x72, 0x6d,
+  0x61, 0x74, 0x20, 0x61, 0x73, 0x20, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69,
+  0x62, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x53, 0x65, 0x63, 0x74, 0x69,
+  0x6f, 0x6e, 0x20, 0x31, 0x31, 0x2e, 0x32, 0x20, 0x6f, 0x66, 0x20, 0x52,
+  0x46, 0x43, 0x20, 0x34, 0x30, 0x30, 0x37, 0x2e, 0x22, 0x3b, 0x72, 0x65,
+  0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x0a, 0x22, 0x52, 0x46, 0x43,
+  0x20, 0x34, 0x32, 0x39, 0x31, 0x3a, 0x20, 0x49, 0x50, 0x20, 0x56, 0x65,
+  0x72, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x36, 0x20, 0x41, 0x64, 0x64, 0x72,
+  0x65, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x41, 0x72, 0x63, 0x68, 0x69,
+  0x74, 0x65, 0x63, 0x74, 0x75, 0x72, 0x65, 0x0a, 0x52, 0x46, 0x43, 0x20,
+  0x34, 0x30, 0x30, 0x37, 0x3a, 0x20, 0x49, 0x50, 0x76, 0x36, 0x20, 0x53,
+  0x63, 0x6f, 0x70, 0x65, 0x64, 0x20, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73,
+  0x73, 0x20, 0x41, 0x72, 0x63, 0x68, 0x69, 0x74, 0x65, 0x63, 0x74, 0x75,
+  0x72, 0x65, 0x0a, 0x52, 0x46, 0x43, 0x20, 0x35, 0x39, 0x35, 0x32, 0x3a,
+  0x20, 0x41, 0x20, 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64,
+  0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x49, 0x50,
+  0x76, 0x36, 0x20, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x20, 0x54,
+  0x65, 0x78, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+  0x20, 0x20, 0x20, 0x52, 0x65, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74,
+  0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3b, 0x7d, 0x74, 0x79, 0x70, 0x65,
+  0x64, 0x65, 0x66, 0x20, 0x69, 0x70, 0x2d, 0x61, 0x64, 0x64, 0x72, 0x65,
+  0x73, 0x73, 0x2d, 0x6e, 0x6f, 0x2d, 0x7a, 0x6f, 0x6e, 0x65, 0x20, 0x7b,
+  0x74, 0x79, 0x70, 0x65, 0x20, 0x75, 0x6e, 0x69, 0x6f, 0x6e, 0x20, 0x7b,
+  0x74, 0x79, 0x70, 0x65, 0x20, 0x69, 0x6e, 0x65, 0x74, 0x3a, 0x69, 0x70,
+  0x76, 0x34, 0x2d, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x2d, 0x6e,
+  0x6f, 0x2d, 0x7a, 0x6f, 0x6e, 0x65, 0x3b, 0x74, 0x79, 0x70, 0x65, 0x20,
+  0x69, 0x6e, 0x65, 0x74, 0x3a, 0x69, 0x70, 0x76, 0x36, 0x2d, 0x61, 0x64,
+  0x64, 0x72, 0x65, 0x73, 0x73, 0x2d, 0x6e, 0x6f, 0x2d, 0x7a, 0x6f, 0x6e,
+  0x65, 0x3b, 0x7d, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69,
+  0x6f, 0x6e, 0x0a, 0x22, 0x54, 0x68, 0x65, 0x20, 0x69, 0x70, 0x2d, 0x61,
+  0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x2d, 0x6e, 0x6f, 0x2d, 0x7a, 0x6f,
+  0x6e, 0x65, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x72, 0x65, 0x70, 0x72,
+  0x65, 0x73, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x61, 0x6e, 0x20, 0x49, 0x50,
+  0x20, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x20, 0x61, 0x6e, 0x64,
+  0x20, 0x69, 0x73, 0x0a, 0x49, 0x50, 0x20, 0x76, 0x65, 0x72, 0x73, 0x69,
+  0x6f, 0x6e, 0x20, 0x6e, 0x65, 0x75, 0x74, 0x72, 0x61, 0x6c, 0x2e, 0x20,
+  0x20, 0x54, 0x68, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x20,
+  0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x74, 0x65, 0x78, 0x74, 0x75,
+  0x61, 0x6c, 0x20, 0x72, 0x65, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74,
+  0x61, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x69, 0x6d, 0x70, 0x6c, 0x69, 0x65,
+  0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x49, 0x50, 0x20, 0x76, 0x65, 0x72,
+  0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x20, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20,
+  0x74, 0x79, 0x70, 0x65, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f,
+  0x74, 0x20, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x73, 0x63,
+  0x6f, 0x70, 0x65, 0x64, 0x0a, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73,
+  0x65, 0x73, 0x20, 0x73, 0x69, 0x6e, 0x63, 0x65, 0x20, 0x69, 0x74, 0x20,
+  0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x6c, 0x6c,
+  0x6f, 0x77, 0x20, 0x7a, 0x6f, 0x6e, 0x65, 0x20, 0x69, 0x64, 0x65, 0x6e,
+  0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74,
+  0x68, 0x65, 0x0a, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x20, 0x66,
+  0x6f, 0x72, 0x6d, 0x61, 0x74, 0x2e, 0x22, 0x3b, 0x72, 0x65, 0x66, 0x65,
+  0x72, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x22, 0x52, 0x46, 0x43, 0x20, 0x34,
+  0x30, 0x30, 0x37, 0x3a, 0x20, 0x49, 0x50, 0x76, 0x36, 0x20, 0x53, 0x63,
+  0x6f, 0x70, 0x65, 0x64, 0x20, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73,
+  0x20, 0x41, 0x72, 0x63, 0x68, 0x69, 0x74, 0x65, 0x63, 0x74, 0x75, 0x72,
+  0x65, 0x22, 0x3b, 0x7d, 0x74, 0x79, 0x70, 0x65, 0x64, 0x65, 0x66, 0x20,
+  0x69, 0x70, 0x76, 0x34, 0x2d, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73,
+  0x2d, 0x6e, 0x6f, 0x2d, 0x7a, 0x6f, 0x6e, 0x65, 0x20, 0x7b, 0x74, 0x79,
+  0x70, 0x65, 0x20, 0x69, 0x6e, 0x65, 0x74, 0x3a, 0x69, 0x70, 0x76, 0x34,
+  0x2d, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x20, 0x7b, 0x70, 0x61,
+  0x74, 0x74, 0x65, 0x72, 0x6e, 0x20, 0x27, 0x5b, 0x30, 0x2d, 0x39, 0x5c,
+  0x2e, 0x5d, 0x2a, 0x27, 0x3b, 0x7d, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69,
+  0x70, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x22, 0x41, 0x6e, 0x20, 0x49, 0x50,
+  0x76, 0x34, 0x20, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x20, 0x77,
+  0x69, 0x74, 0x68, 0x6f, 0x75, 0x74, 0x20, 0x61, 0x20, 0x7a, 0x6f, 0x6e,
+  0x65, 0x20, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x2e, 0x20, 0x20, 0x54, 0x68,
+  0x69, 0x73, 0x20, 0x74, 0x79, 0x70, 0x65, 0x2c, 0x20, 0x64, 0x65, 0x72,
+  0x69, 0x76, 0x65, 0x64, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x0a, 0x69, 0x70,
+  0x76, 0x34, 0x2d, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x2c, 0x20,
+  0x6d, 0x61, 0x79, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20,
+  0x69, 0x6e, 0x20, 0x73, 0x69, 0x74, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+  0x73, 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20,
+  0x7a, 0x6f, 0x6e, 0x65, 0x20, 0x69, 0x73, 0x0a, 0x6b, 0x6e, 0x6f, 0x77,
+  0x6e, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63,
+  0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x68,
+  0x65, 0x6e, 0x63, 0x65, 0x20, 0x6e, 0x6f, 0x20, 0x7a, 0x6f, 0x6e, 0x65,
+  0x20, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x20, 0x69, 0x73, 0x20, 0x6e, 0x65,
+  0x65, 0x64, 0x65, 0x64, 0x2e, 0x22, 0x3b, 0x7d, 0x74, 0x79, 0x70, 0x65,
+  0x64, 0x65, 0x66, 0x20, 0x69, 0x70, 0x76, 0x36, 0x2d, 0x61, 0x64, 0x64,
+  0x72, 0x65, 0x73, 0x73, 0x2d, 0x6e, 0x6f, 0x2d, 0x7a, 0x6f, 0x6e, 0x65,
+  0x20, 0x7b, 0x74, 0x79, 0x70, 0x65, 0x20, 0x69, 0x6e, 0x65, 0x74, 0x3a,
+  0x69, 0x70, 0x76, 0x36, 0x2d, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73,
+  0x20, 0x7b, 0x70, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x20, 0x27, 0x5b,
+  0x30, 0x2d, 0x39, 0x61, 0x2d, 0x66, 0x41, 0x2d, 0x46, 0x3a, 0x5c, 0x2e,
+  0x5d, 0x2a, 0x27, 0x3b, 0x7d, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70,
+  0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x22, 0x41, 0x6e, 0x20, 0x49, 0x50, 0x76,
+  0x36, 0x20, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x20, 0x77, 0x69,
+  0x74, 0x68, 0x6f, 0x75, 0x74, 0x20, 0x61, 0x20, 0x7a, 0x6f, 0x6e, 0x65,
+  0x20, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x2e, 0x20, 0x20, 0x54, 0x68, 0x69,
+  0x73, 0x20, 0x74, 0x79, 0x70, 0x65, 0x2c, 0x20, 0x64, 0x65, 0x72, 0x69,
+  0x76, 0x65, 0x64, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x0a, 0x69, 0x70, 0x76,
+  0x36, 0x2d, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x2c, 0x20, 0x6d,
+  0x61, 0x79, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x69,
+  0x6e, 0x20, 0x73, 0x69, 0x74, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73,
+  0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x7a,
+  0x6f, 0x6e, 0x65, 0x20, 0x69, 0x73, 0x0a, 0x6b, 0x6e, 0x6f, 0x77, 0x6e,
+  0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x6f,
+  0x6e, 0x74, 0x65, 0x78, 0x74, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x68, 0x65,
+  0x6e, 0x63, 0x65, 0x20, 0x6e, 0x6f, 0x20, 0x7a, 0x6f, 0x6e, 0x65, 0x20,
+  0x69, 0x6e, 0x64, 0x65, 0x78, 0x20, 0x69, 0x73, 0x20, 0x6e, 0x65, 0x65,
+  0x64, 0x65, 0x64, 0x2e, 0x22, 0x3b, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65,
+  0x6e, 0x63, 0x65, 0x0a, 0x22, 0x52, 0x46, 0x43, 0x20, 0x34, 0x32, 0x39,
+  0x31, 0x3a, 0x20, 0x49, 0x50, 0x20, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f,
+  0x6e, 0x20, 0x36, 0x20, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x69,
+  0x6e, 0x67, 0x20, 0x41, 0x72, 0x63, 0x68, 0x69, 0x74, 0x65, 0x63, 0x74,
+  0x75, 0x72, 0x65, 0x0a, 0x52, 0x46, 0x43, 0x20, 0x34, 0x30, 0x30, 0x37,
+  0x3a, 0x20, 0x49, 0x50, 0x76, 0x36, 0x20, 0x53, 0x63, 0x6f, 0x70, 0x65,
+  0x64, 0x20, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x20, 0x41, 0x72,
+  0x63, 0x68, 0x69, 0x74, 0x65, 0x63, 0x74, 0x75, 0x72, 0x65, 0x0a, 0x52,
+  0x46, 0x43, 0x20, 0x35, 0x39, 0x35, 0x32, 0x3a, 0x20, 0x41, 0x20, 0x52,
+  0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x61, 0x74, 0x69, 0x6f,
+  0x6e, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x49, 0x50, 0x76, 0x36, 0x20, 0x41,
+  0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x20, 0x54, 0x65, 0x78, 0x74, 0x0a,
+  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52,
+  0x65, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f,
+  0x6e, 0x22, 0x3b, 0x7d, 0x74, 0x79, 0x70, 0x65, 0x64, 0x65, 0x66, 0x20,
+  0x69, 0x70, 0x2d, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, 0x7b, 0x74,
+  0x79, 0x70, 0x65, 0x20, 0x75, 0x6e, 0x69, 0x6f, 0x6e, 0x20, 0x7b, 0x74,
+  0x79, 0x70, 0x65, 0x20, 0x69, 0x6e, 0x65, 0x74, 0x3a, 0x69, 0x70, 0x76,
+  0x34, 0x2d, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x3b, 0x74, 0x79, 0x70,
+  0x65, 0x20, 0x69, 0x6e, 0x65, 0x74, 0x3a, 0x69, 0x70, 0x76, 0x36, 0x2d,
+  0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x3b, 0x7d, 0x64, 0x65, 0x73, 0x63,
+  0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x22, 0x54, 0x68, 0x65,
+  0x20, 0x69, 0x70, 0x2d, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, 0x74,
+  0x79, 0x70, 0x65, 0x20, 0x72, 0x65, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e,
+  0x74, 0x73, 0x20, 0x61, 0x6e, 0x20, 0x49, 0x50, 0x20, 0x70, 0x72, 0x65,
+  0x66, 0x69, 0x78, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x69, 0x73, 0x20, 0x49,
+  0x50, 0x0a, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6e, 0x65,
+  0x75, 0x74, 0x72, 0x61, 0x6c, 0x2e, 0x20, 0x20, 0x54, 0x68, 0x65, 0x20,
+  0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68,
+  0x65, 0x20, 0x74, 0x65, 0x78, 0x74, 0x75, 0x61, 0x6c, 0x20, 0x72, 0x65,
+  0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+  0x73, 0x0a, 0x69, 0x6d, 0x70, 0x6c, 0x69, 0x65, 0x73, 0x20, 0x74, 0x68,
+  0x65, 0x20, 0x49, 0x50, 0x20, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e,
+  0x2e, 0x22, 0x3b, 0x7d, 0x74, 0x79, 0x70, 0x65, 0x64, 0x65, 0x66, 0x20,
+  0x69, 0x70, 0x76, 0x34, 0x2d, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x20,
+  0x7b, 0x74, 0x79, 0x70, 0x65, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67,
+  0x20, 0x7b, 0x70, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x20, 0x27, 0x28,
+  0x28, 0x5b, 0x30, 0x2d, 0x39, 0x5d, 0x7c, 0x5b, 0x31, 0x2d, 0x39, 0x5d,
+  0x5b, 0x30, 0x2d, 0x39, 0x5d, 0x7c, 0x31, 0x5b, 0x30, 0x2d, 0x39, 0x5d,
+  0x5b, 0x30, 0x2d, 0x39, 0x5d, 0x7c, 0x32, 0x5b, 0x30, 0x2d, 0x34, 0x5d,
+  0x5b, 0x30, 0x2d, 0x39, 0x5d, 0x7c, 0x32, 0x35, 0x5b, 0x30, 0x2d, 0x35,
+  0x5d, 0x29, 0x5c, 0x2e, 0x29, 0x7b, 0x33, 0x7d, 0x28, 0x5b, 0x30, 0x2d,
+  0x39, 0x5d, 0x7c, 0x5b, 0x31, 0x2d, 0x39, 0x5d, 0x5b, 0x30, 0x2d, 0x39,
+  0x5d, 0x7c, 0x31, 0x5b, 0x30, 0x2d, 0x39, 0x5d, 0x5b, 0x30, 0x2d, 0x39,
+  0x5d, 0x7c, 0x32, 0x5b, 0x30, 0x2d, 0x34, 0x5d, 0x5b, 0x30, 0x2d, 0x39,
+  0x5d, 0x7c, 0x32, 0x35, 0x5b, 0x30, 0x2d, 0x35, 0x5d, 0x29, 0x2f, 0x28,
+  0x28, 0x5b, 0x30, 0x2d, 0x39, 0x5d, 0x29, 0x7c, 0x28, 0x5b, 0x31, 0x2d,
+  0x32, 0x5d, 0x5b, 0x30, 0x2d, 0x39, 0x5d, 0x29, 0x7c, 0x28, 0x33, 0x5b,
+  0x30, 0x2d, 0x32, 0x5d, 0x29, 0x29, 0x27, 0x3b, 0x7d, 0x64, 0x65, 0x73,
+  0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x22, 0x54, 0x68,
+  0x65, 0x20, 0x69, 0x70, 0x76, 0x34, 0x2d, 0x70, 0x72, 0x65, 0x66, 0x69,
+  0x78, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x72, 0x65, 0x70, 0x72, 0x65,
+  0x73, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x61, 0x6e, 0x20, 0x49, 0x50, 0x76,
+  0x34, 0x20, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x20, 0x70, 0x72,
+  0x65, 0x66, 0x69, 0x78, 0x2e, 0x0a, 0x54, 0x68, 0x65, 0x20, 0x70, 0x72,
+  0x65, 0x66, 0x69, 0x78, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20,
+  0x69, 0x73, 0x20, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x20, 0x62, 0x79, 0x20,
+  0x74, 0x68, 0x65, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x66,
+  0x6f, 0x6c, 0x6c, 0x6f, 0x77, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65,
+  0x0a, 0x73, 0x6c, 0x61, 0x73, 0x68, 0x20, 0x63, 0x68, 0x61, 0x72, 0x61,
+  0x63, 0x74, 0x65, 0x72, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x6d, 0x75, 0x73,
+  0x74, 0x20, 0x62, 0x65, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68,
+  0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20,
+  0x74, 0x6f, 0x20, 0x33, 0x32, 0x2e, 0x0a, 0x0a, 0x41, 0x20, 0x70, 0x72,
+  0x65, 0x66, 0x69, 0x78, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20,
+  0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x6e, 0x20, 0x63,
+  0x6f, 0x72, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x73, 0x20, 0x74,
+  0x6f, 0x20, 0x61, 0x6e, 0x20, 0x49, 0x50, 0x20, 0x61, 0x64, 0x64, 0x72,
+  0x65, 0x73, 0x73, 0x0a, 0x6d, 0x61, 0x73, 0x6b, 0x20, 0x74, 0x68, 0x61,
+  0x74, 0x20, 0x68, 0x61, 0x73, 0x20, 0x6e, 0x20, 0x63, 0x6f, 0x6e, 0x74,
+  0x69, 0x67, 0x75, 0x6f, 0x75, 0x73, 0x20, 0x31, 0x2d, 0x62, 0x69, 0x74,
+  0x73, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d,
+  0x6f, 0x73, 0x74, 0x0a, 0x73, 0x69, 0x67, 0x6e, 0x69, 0x66, 0x69, 0x63,
+  0x61, 0x6e, 0x74, 0x20, 0x62, 0x69, 0x74, 0x20, 0x28, 0x4d, 0x53, 0x42,
+  0x29, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x74,
+  0x68, 0x65, 0x72, 0x20, 0x62, 0x69, 0x74, 0x73, 0x20, 0x73, 0x65, 0x74,
+  0x20, 0x74, 0x6f, 0x20, 0x30, 0x2e, 0x0a, 0x0a, 0x54, 0x68, 0x65, 0x20,
+  0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x66, 0x6f,
+  0x72, 0x6d, 0x61, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6e, 0x20, 0x49,
+  0x50, 0x76, 0x34, 0x20, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, 0x68,
+  0x61, 0x73, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x62, 0x69, 0x74, 0x73, 0x20,
+  0x6f, 0x66, 0x0a, 0x74, 0x68, 0x65, 0x20, 0x49, 0x50, 0x76, 0x34, 0x20,
+  0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x20, 0x73, 0x65, 0x74, 0x20,
+  0x74, 0x6f, 0x20, 0x7a, 0x65, 0x72, 0x6f, 0x20, 0x74, 0x68, 0x61, 0x74,
+  0x20, 0x61, 0x72, 0x65, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x70, 0x61, 0x72,
+  0x74, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x0a, 0x49, 0x50, 0x76,
+  0x34, 0x20, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x2e, 0x22, 0x3b, 0x7d,
+  0x74, 0x79, 0x70, 0x65, 0x64, 0x65, 0x66, 0x20, 0x69, 0x70, 0x76, 0x36,
+  0x2d, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, 0x7b, 0x74, 0x79, 0x70,
+  0x65, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x7b, 0x70, 0x61,
+  0x74, 0x74, 0x65, 0x72, 0x6e, 0x20, 0x27, 0x28, 0x28, 0x3a, 0x7c, 0x5b,
+  0x30, 0x2d, 0x39, 0x61, 0x2d, 0x66, 0x41, 0x2d, 0x46, 0x5d, 0x7b, 0x30,
+  0x2c, 0x34, 0x7d, 0x29, 0x3a, 0x29, 0x28, 0x5b, 0x30, 0x2d, 0x39, 0x61,
+  0x2d, 0x66, 0x41, 0x2d, 0x46, 0x5d, 0x7b, 0x30, 0x2c, 0x34, 0x7d, 0x3a,
+  0x29, 0x7b, 0x30, 0x2c, 0x35, 0x7d, 0x28, 0x28, 0x28, 0x5b, 0x30, 0x2d,
+  0x39, 0x61, 0x2d, 0x66, 0x41, 0x2d, 0x46, 0x5d, 0x7b, 0x30, 0x2c, 0x34,
+  0x7d, 0x3a, 0x29, 0x3f, 0x28, 0x3a, 0x7c, 0x5b, 0x30, 0x2d, 0x39, 0x61,
+  0x2d, 0x66, 0x41, 0x2d, 0x46, 0x5d, 0x7b, 0x30, 0x2c, 0x34, 0x7d, 0x29,
+  0x29, 0x7c, 0x28, 0x28, 0x28, 0x32, 0x35, 0x5b, 0x30, 0x2d, 0x35, 0x5d,
+  0x7c, 0x32, 0x5b, 0x30, 0x2d, 0x34, 0x5d, 0x5b, 0x30, 0x2d, 0x39, 0x5d,
+  0x7c, 0x5b, 0x30, 0x31, 0x5d, 0x3f, 0x5b, 0x30, 0x2d, 0x39, 0x5d, 0x3f,
+  0x5b, 0x30, 0x2d, 0x39, 0x5d, 0x29, 0x5c, 0x2e, 0x29, 0x7b, 0x33, 0x7d,
+  0x28, 0x32, 0x35, 0x5b, 0x30, 0x2d, 0x35, 0x5d, 0x7c, 0x32, 0x5b, 0x30,
+  0x2d, 0x34, 0x5d, 0x5b, 0x30, 0x2d, 0x39, 0x5d, 0x7c, 0x5b, 0x30, 0x31,
+  0x5d, 0x3f, 0x5b, 0x30, 0x2d, 0x39, 0x5d, 0x3f, 0x5b, 0x30, 0x2d, 0x39,
+  0x5d, 0x29, 0x29, 0x29, 0x28, 0x2f, 0x28, 0x28, 0x5b, 0x30, 0x2d, 0x39,
+  0x5d, 0x29, 0x7c, 0x28, 0x5b, 0x30, 0x2d, 0x39, 0x5d, 0x7b, 0x32, 0x7d,
+  0x29, 0x7c, 0x28, 0x31, 0x5b, 0x30, 0x2d, 0x31, 0x5d, 0x5b, 0x30, 0x2d,
+  0x39, 0x5d, 0x29, 0x7c, 0x28, 0x31, 0x32, 0x5b, 0x30, 0x2d, 0x38, 0x5d,
+  0x29, 0x29, 0x29, 0x27, 0x3b, 0x70, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e,
+  0x20, 0x27, 0x28, 0x28, 0x5b, 0x5e, 0x3a, 0x5d, 0x2b, 0x3a, 0x29, 0x7b,
+  0x36, 0x7d, 0x28, 0x28, 0x5b, 0x5e, 0x3a, 0x5d, 0x2b, 0x3a, 0x5b, 0x5e,
+  0x3a, 0x5d, 0x2b, 0x29, 0x7c, 0x28, 0x2e, 0x2a, 0x5c, 0x2e, 0x2e, 0x2a,
+  0x29, 0x29, 0x29, 0x7c, 0x28, 0x28, 0x28, 0x5b, 0x5e, 0x3a, 0x5d, 0x2b,
+  0x3a, 0x29, 0x2a, 0x5b, 0x5e, 0x3a, 0x5d, 0x2b, 0x29, 0x3f, 0x3a, 0x3a,
+  0x28, 0x28, 0x5b, 0x5e, 0x3a, 0x5d, 0x2b, 0x3a, 0x29, 0x2a, 0x5b, 0x5e,
+  0x3a, 0x5d, 0x2b, 0x29, 0x3f, 0x29, 0x28, 0x2f, 0x2e, 0x2b, 0x29, 0x27,
+  0x3b, 0x7d, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f,
+  0x6e, 0x0a, 0x22, 0x54, 0x68, 0x65, 0x20, 0x69, 0x70, 0x76, 0x36, 0x2d,
+  0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20,
+  0x72, 0x65, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x61,
+  0x6e, 0x20, 0x49, 0x50, 0x76, 0x36, 0x20, 0x61, 0x64, 0x64, 0x72, 0x65,
+  0x73, 0x73, 0x20, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x2e, 0x0a, 0x54,
+  0x68, 0x65, 0x20, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, 0x6c, 0x65,
+  0x6e, 0x67, 0x74, 0x68, 0x20, 0x69, 0x73, 0x20, 0x67, 0x69, 0x76, 0x65,
+  0x6e, 0x20, 0x62, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6e, 0x75, 0x6d,
+  0x62, 0x65, 0x72, 0x20, 0x66, 0x6f, 0x6c, 0x6c, 0x6f, 0x77, 0x69, 0x6e,
+  0x67, 0x20, 0x74, 0x68, 0x65, 0x0a, 0x73, 0x6c, 0x61, 0x73, 0x68, 0x20,
+  0x63, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x20, 0x61, 0x6e,
+  0x64, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x6c, 0x65,
+  0x73, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65,
+  0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x31, 0x32, 0x38, 0x2e,
+  0x0a, 0x0a, 0x41, 0x20, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, 0x6c,
+  0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20,
+  0x6f, 0x66, 0x20, 0x6e, 0x20, 0x63, 0x6f, 0x72, 0x72, 0x65, 0x73, 0x70,
+  0x6f, 0x6e, 0x64, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x20, 0x49,
+  0x50, 0x20, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x0a, 0x6d, 0x61,
+  0x73, 0x6b, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x68, 0x61, 0x73, 0x20,
+  0x6e, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x69, 0x67, 0x75, 0x6f, 0x75, 0x73,
+  0x20, 0x31, 0x2d, 0x62, 0x69, 0x74, 0x73, 0x20, 0x66, 0x72, 0x6f, 0x6d,
+  0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x6f, 0x73, 0x74, 0x0a, 0x73, 0x69,
+  0x67, 0x6e, 0x69, 0x66, 0x69, 0x63, 0x61, 0x6e, 0x74, 0x20, 0x62, 0x69,
+  0x74, 0x20, 0x28, 0x4d, 0x53, 0x42, 0x29, 0x20, 0x61, 0x6e, 0x64, 0x20,
+  0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x62, 0x69,
+  0x74, 0x73, 0x20, 0x73, 0x65, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x30, 0x2e,
+  0x0a, 0x0a, 0x54, 0x68, 0x65, 0x20, 0x49, 0x50, 0x76, 0x36, 0x20, 0x61,
+  0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x20, 0x73, 0x68, 0x6f, 0x75, 0x6c,
+  0x64, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x62,
+  0x69, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x64, 0x6f, 0x20,
+  0x6e, 0x6f, 0x74, 0x20, 0x62, 0x65, 0x6c, 0x6f, 0x6e, 0x67, 0x0a, 0x74,
+  0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78,
+  0x20, 0x73, 0x65, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x7a, 0x65, 0x72, 0x6f,
+  0x2e, 0x0a, 0x0a, 0x54, 0x68, 0x65, 0x20, 0x63, 0x61, 0x6e, 0x6f, 0x6e,
+  0x69, 0x63, 0x61, 0x6c, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x20,
+  0x6f, 0x66, 0x20, 0x61, 0x6e, 0x20, 0x49, 0x50, 0x76, 0x36, 0x20, 0x70,
+  0x72, 0x65, 0x66, 0x69, 0x78, 0x20, 0x68, 0x61, 0x73, 0x20, 0x61, 0x6c,
+  0x6c, 0x20, 0x62, 0x69, 0x74, 0x73, 0x20, 0x6f, 0x66, 0x0a, 0x74, 0x68,
+  0x65, 0x20, 0x49, 0x50, 0x76, 0x36, 0x20, 0x61, 0x64, 0x64, 0x72, 0x65,
+  0x73, 0x73, 0x20, 0x73, 0x65, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x7a, 0x65,
+  0x72, 0x6f, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x61, 0x72, 0x65, 0x20,
+  0x6e, 0x6f, 0x74, 0x20, 0x70, 0x61, 0x72, 0x74, 0x20, 0x6f, 0x66, 0x20,
+  0x74, 0x68, 0x65, 0x0a, 0x49, 0x50, 0x76, 0x36, 0x20, 0x70, 0x72, 0x65,
+  0x66, 0x69, 0x78, 0x2e, 0x20, 0x20, 0x46, 0x75, 0x72, 0x74, 0x68, 0x65,
+  0x72, 0x6d, 0x6f, 0x72, 0x65, 0x2c, 0x20, 0x74, 0x68, 0x65, 0x20, 0x49,
+  0x50, 0x76, 0x36, 0x20, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x20,
+  0x69, 0x73, 0x20, 0x72, 0x65, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74,
+  0x65, 0x64, 0x0a, 0x61, 0x73, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65,
+  0x64, 0x20, 0x69, 0x6e, 0x20, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e,
+  0x20, 0x34, 0x20, 0x6f, 0x66, 0x20, 0x52, 0x46, 0x43, 0x20, 0x35, 0x39,
+  0x35, 0x32, 0x2e, 0x22, 0x3b, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e,
+  0x63, 0x65, 0x0a, 0x22, 0x52, 0x46, 0x43, 0x20, 0x35, 0x39, 0x35, 0x32,
+  0x3a, 0x20, 0x41, 0x20, 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e,
+  0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x49,
+  0x50, 0x76, 0x36, 0x20, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x20,
+  0x54, 0x65, 0x78, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+  0x20, 0x20, 0x20, 0x20, 0x52, 0x65, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e,
+  0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3b, 0x7d, 0x74, 0x79, 0x70,
+  0x65, 0x64, 0x65, 0x66, 0x20, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2d,
+  0x6e, 0x61, 0x6d, 0x65, 0x20, 0x7b, 0x74, 0x79, 0x70, 0x65, 0x20, 0x73,
+  0x74, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x7b, 0x6c, 0x65, 0x6e, 0x67, 0x74,
+  0x68, 0x20, 0x22, 0x31, 0x2e, 0x2e, 0x32, 0x35, 0x33, 0x22, 0x3b, 0x70,
+  0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x20, 0x27, 0x28, 0x28, 0x28, 0x5b,
+  0x61, 0x2d, 0x7a, 0x41, 0x2d, 0x5a, 0x30, 0x2d, 0x39, 0x5f, 0x5d, 0x28,
+  0x5b, 0x61, 0x2d, 0x7a, 0x41, 0x2d, 0x5a, 0x30, 0x2d, 0x39, 0x5c, 0x2d,
+  0x5f, 0x5d, 0x29, 0x7b, 0x30, 0x2c, 0x36, 0x31, 0x7d, 0x29, 0x3f, 0x5b,
+  0x61, 0x2d, 0x7a, 0x41, 0x2d, 0x5a, 0x30, 0x2d, 0x39, 0x5d, 0x5c, 0x2e,
+  0x29, 0x2a, 0x28, 0x5b, 0x61, 0x2d, 0x7a, 0x41, 0x2d, 0x5a, 0x30, 0x2d,
+  0x39, 0x5f, 0x5d, 0x28, 0x5b, 0x61, 0x2d, 0x7a, 0x41, 0x2d, 0x5a, 0x30,
+  0x2d, 0x39, 0x5c, 0x2d, 0x5f, 0x5d, 0x29, 0x7b, 0x30, 0x2c, 0x36, 0x31,
+  0x7d, 0x29, 0x3f, 0x5b, 0x61, 0x2d, 0x7a, 0x41, 0x2d, 0x5a, 0x30, 0x2d,
+  0x39, 0x5d, 0x5c, 0x2e, 0x3f, 0x29, 0x7c, 0x5c, 0x2e, 0x27, 0x3b, 0x7d,
+  0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x0a,
+  0x22, 0x54, 0x68, 0x65, 0x20, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2d,
+  0x6e, 0x61, 0x6d, 0x65, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x72, 0x65,
+  0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x61, 0x20, 0x44,
+  0x4e, 0x53, 0x20, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x6e, 0x61,
+  0x6d, 0x65, 0x2e, 0x20, 0x20, 0x54, 0x68, 0x65, 0x0a, 0x6e, 0x61, 0x6d,
+  0x65, 0x20, 0x53, 0x48, 0x4f, 0x55, 0x4c, 0x44, 0x20, 0x62, 0x65, 0x20,
+  0x66, 0x75, 0x6c, 0x6c, 0x79, 0x20, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x66,
+  0x69, 0x65, 0x64, 0x20, 0x77, 0x68, 0x65, 0x6e, 0x65, 0x76, 0x65, 0x72,
+  0x20, 0x70, 0x6f, 0x73, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x2e, 0x0a, 0x0a,
+  0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x20, 0x64, 0x6f, 0x6d,
+  0x61, 0x69, 0x6e, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x20, 0x61, 0x72,
+  0x65, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x6c, 0x6f, 0x6f, 0x73, 0x65,
+  0x6c, 0x79, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64,
+  0x2e, 0x20, 0x20, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x33,
+  0x2e, 0x35, 0x20, 0x6f, 0x66, 0x20, 0x52, 0x46, 0x43, 0x20, 0x31, 0x30,
+  0x33, 0x34, 0x20, 0x72, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64,
+  0x73, 0x20, 0x61, 0x20, 0x73, 0x79, 0x6e, 0x74, 0x61, 0x78, 0x20, 0x28,
+  0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20,
+  0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x32, 0x2e, 0x31, 0x20,
+  0x6f, 0x66, 0x20, 0x52, 0x46, 0x43, 0x20, 0x31, 0x31, 0x32, 0x33, 0x29,
+  0x2e, 0x20, 0x20, 0x54, 0x68, 0x65, 0x20, 0x70, 0x61, 0x74, 0x74, 0x65,
+  0x72, 0x6e, 0x20, 0x61, 0x62, 0x6f, 0x76, 0x65, 0x20, 0x69, 0x73, 0x20,
+  0x69, 0x6e, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20,
+  0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x0a, 0x66, 0x6f, 0x72, 0x20, 0x63, 0x75,
+  0x72, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x70, 0x72, 0x61, 0x63, 0x74, 0x69,
+  0x63, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e,
+  0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x75, 0x73, 0x65, 0x2c, 0x20, 0x61,
+  0x6e, 0x64, 0x20, 0x73, 0x6f, 0x6d, 0x65, 0x20, 0x70, 0x6f, 0x73, 0x73,
+  0x69, 0x62, 0x6c, 0x65, 0x0a, 0x66, 0x75, 0x74, 0x75, 0x72, 0x65, 0x20,
+  0x65, 0x78, 0x70, 0x61, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x20, 0x20,
+  0x49, 0x74, 0x20, 0x69, 0x73, 0x20, 0x64, 0x65, 0x73, 0x69, 0x67, 0x6e,
+  0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x68, 0x6f, 0x6c, 0x64, 0x20, 0x76,
+  0x61, 0x72, 0x69, 0x6f, 0x75, 0x73, 0x20, 0x74, 0x79, 0x70, 0x65, 0x73,
+  0x20, 0x6f, 0x66, 0x0a, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x6e,
+  0x61, 0x6d, 0x65, 0x73, 0x2c, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64,
+  0x69, 0x6e, 0x67, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x20, 0x75, 0x73,
+  0x65, 0x64, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x41, 0x20, 0x6f, 0x72, 0x20,
+  0x41, 0x41, 0x41, 0x41, 0x20, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73,
+  0x0a, 0x28, 0x68, 0x6f, 0x73, 0x74, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x73,
+  0x29, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20,
+  0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x2c, 0x20, 0x73, 0x75, 0x63,
+  0x68, 0x20, 0x61, 0x73, 0x20, 0x53, 0x52, 0x56, 0x20, 0x72, 0x65, 0x63,
+  0x6f, 0x72, 0x64, 0x73, 0x2e, 0x20, 0x20, 0x4e, 0x6f, 0x74, 0x65, 0x0a,
+  0x74, 0x68, 0x61, 0x74, 0x20, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x65,
+  0x74, 0x20, 0x68, 0x6f, 0x73, 0x74, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x73,
+  0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x61, 0x20, 0x73, 0x74, 0x72, 0x69,
+  0x63, 0x74, 0x65, 0x72, 0x20, 0x73, 0x79, 0x6e, 0x74, 0x61, 0x78, 0x20,
+  0x28, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x64, 0x0a, 0x69,
+  0x6e, 0x20, 0x52, 0x46, 0x43, 0x20, 0x39, 0x35, 0x32, 0x29, 0x20, 0x74,
+  0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x44, 0x4e, 0x53, 0x20,
+  0x72, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x61, 0x74, 0x69,
+  0x6f, 0x6e, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x52, 0x46, 0x43, 0x73, 0x20,
+  0x31, 0x30, 0x33, 0x34, 0x20, 0x61, 0x6e, 0x64, 0x0a, 0x31, 0x31, 0x32,
+  0x33, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20,
+  0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74,
+  0x20, 0x77, 0x61, 0x6e, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x74, 0x6f,
+  0x72, 0x65, 0x20, 0x68, 0x6f, 0x73, 0x74, 0x20, 0x6e, 0x61, 0x6d, 0x65,
+  0x73, 0x20, 0x69, 0x6e, 0x0a, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x20,
+  0x6e, 0x6f, 0x64, 0x65, 0x73, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20,
+  0x74, 0x68, 0x65, 0x20, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2d, 0x6e,
+  0x61, 0x6d, 0x65, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x61, 0x72, 0x65,
+  0x20, 0x72, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x65, 0x64,
+  0x20, 0x74, 0x6f, 0x0a, 0x61, 0x64, 0x68, 0x65, 0x72, 0x65, 0x20, 0x74,
+  0x6f, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x73, 0x74, 0x72, 0x69, 0x63,
+  0x74, 0x65, 0x72, 0x20, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64,
+  0x20, 0x74, 0x6f, 0x20, 0x65, 0x6e, 0x73, 0x75, 0x72, 0x65, 0x20, 0x69,
+  0x6e, 0x74, 0x65, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x62, 0x69, 0x6c,
+  0x69, 0x74, 0x79, 0x2e, 0x0a, 0x0a, 0x54, 0x68, 0x65, 0x20, 0x65, 0x6e,
+  0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x66, 0x20, 0x44, 0x4e,
+  0x53, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74,
+  0x68, 0x65, 0x20, 0x44, 0x4e, 0x53, 0x20, 0x70, 0x72, 0x6f, 0x74, 0x6f,
+  0x63, 0x6f, 0x6c, 0x20, 0x69, 0x73, 0x20, 0x6c, 0x69, 0x6d, 0x69, 0x74,
+  0x65, 0x64, 0x0a, 0x74, 0x6f, 0x20, 0x32, 0x35, 0x35, 0x20, 0x63, 0x68,
+  0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x73, 0x2e, 0x20, 0x20, 0x53,
+  0x69, 0x6e, 0x63, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, 0x6e, 0x63,
+  0x6f, 0x64, 0x69, 0x6e, 0x67, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73,
+  0x74, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73,
+  0x0a, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, 0x64, 0x20, 0x62, 0x79,
+  0x20, 0x61, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x62, 0x79,
+  0x74, 0x65, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, 0x72,
+  0x65, 0x20, 0x69, 0x73, 0x20, 0x61, 0x20, 0x74, 0x72, 0x61, 0x69, 0x6c,
+  0x69, 0x6e, 0x67, 0x20, 0x4e, 0x55, 0x4c, 0x4c, 0x0a, 0x62, 0x79, 0x74,
+  0x65, 0x2c, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x32, 0x35, 0x33, 0x20,
+  0x63, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x73, 0x20, 0x63,
+  0x61, 0x6e, 0x20, 0x61, 0x70, 0x70, 0x65, 0x61, 0x72, 0x20, 0x69, 0x6e,
+  0x20, 0x74, 0x68, 0x65, 0x20, 0x74, 0x65, 0x78, 0x74, 0x75, 0x61, 0x6c,
+  0x20, 0x64, 0x6f, 0x74, 0x74, 0x65, 0x64, 0x0a, 0x6e, 0x6f, 0x74, 0x61,
+  0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x0a, 0x0a, 0x54, 0x68, 0x65, 0x20, 0x64,
+  0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63,
+  0x6c, 0x61, 0x75, 0x73, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x63, 0x68,
+  0x65, 0x6d, 0x61, 0x20, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x20, 0x75, 0x73,
+  0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65, 0x20, 0x64, 0x6f, 0x6d, 0x61,
+  0x69, 0x6e, 0x2d, 0x6e, 0x61, 0x6d, 0x65, 0x0a, 0x74, 0x79, 0x70, 0x65,
+  0x20, 0x4d, 0x55, 0x53, 0x54, 0x20, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69,
+  0x62, 0x65, 0x20, 0x77, 0x68, 0x65, 0x6e, 0x20, 0x61, 0x6e, 0x64, 0x20,
+  0x68, 0x6f, 0x77, 0x20, 0x74, 0x68, 0x65, 0x73, 0x65, 0x20, 0x6e, 0x61,
+  0x6d, 0x65, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x72, 0x65, 0x73, 0x6f,
+  0x6c, 0x76, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x0a, 0x49, 0x50, 0x20, 0x61,
+  0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x2e, 0x20, 0x20, 0x4e,
+  0x6f, 0x74, 0x65, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x74, 0x68, 0x65,
+  0x20, 0x72, 0x65, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x20,
+  0x6f, 0x66, 0x20, 0x61, 0x20, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2d,
+  0x6e, 0x61, 0x6d, 0x65, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x0a, 0x6d,
+  0x61, 0x79, 0x20, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x20, 0x74,
+  0x6f, 0x20, 0x71, 0x75, 0x65, 0x72, 0x79, 0x20, 0x6d, 0x75, 0x6c, 0x74,
+  0x69, 0x70, 0x6c, 0x65, 0x20, 0x44, 0x4e, 0x53, 0x20, 0x72, 0x65, 0x63,
+  0x6f, 0x72, 0x64, 0x73, 0x20, 0x28, 0x65, 0x2e, 0x67, 0x2e, 0x2c, 0x20,
+  0x41, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x49, 0x50, 0x76, 0x34, 0x0a, 0x61,
+  0x6e, 0x64, 0x20, 0x41, 0x41, 0x41, 0x41, 0x20, 0x66, 0x6f, 0x72, 0x20,
+  0x49, 0x50, 0x76, 0x36, 0x29, 0x2e, 0x20, 0x20, 0x54, 0x68, 0x65, 0x20,
+  0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65,
+  0x20, 0x72, 0x65, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x20,
+  0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x0a,
+  0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x44, 0x4e, 0x53, 0x20, 0x72, 0x65,
+  0x63, 0x6f, 0x72, 0x64, 0x20, 0x74, 0x61, 0x6b, 0x65, 0x73, 0x20, 0x70,
+  0x72, 0x65, 0x63, 0x65, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x63, 0x61,
+  0x6e, 0x20, 0x65, 0x69, 0x74, 0x68, 0x65, 0x72, 0x20, 0x62, 0x65, 0x20,
+  0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x0a, 0x65, 0x78, 0x70, 0x6c,
+  0x69, 0x63, 0x69, 0x74, 0x6c, 0x79, 0x20, 0x6f, 0x72, 0x20, 0x6d, 0x61,
+  0x79, 0x20, 0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x20, 0x6f, 0x6e, 0x20,
+  0x74, 0x68, 0x65, 0x20, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72,
+  0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65,
+  0x0a, 0x72, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x72, 0x2e, 0x0a, 0x0a,
+  0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2d, 0x6e, 0x61, 0x6d, 0x65, 0x20,
+  0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x20, 0x75, 0x73, 0x65, 0x20, 0x74,
+  0x68, 0x65, 0x20, 0x55, 0x53, 0x2d, 0x41, 0x53, 0x43, 0x49, 0x49, 0x20,
+  0x65, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x2e, 0x20, 0x20, 0x54,
+  0x68, 0x65, 0x69, 0x72, 0x20, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63,
+  0x61, 0x6c, 0x0a, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x20, 0x75, 0x73,
+  0x65, 0x73, 0x20, 0x6c, 0x6f, 0x77, 0x65, 0x72, 0x63, 0x61, 0x73, 0x65,
+  0x20, 0x55, 0x53, 0x2d, 0x41, 0x53, 0x43, 0x49, 0x49, 0x20, 0x63, 0x68,
+  0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x73, 0x2e, 0x20, 0x20, 0x49,
+  0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c,
+  0x69, 0x7a, 0x65, 0x64, 0x0a, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x20,
+  0x6e, 0x61, 0x6d, 0x65, 0x73, 0x20, 0x4d, 0x55, 0x53, 0x54, 0x20, 0x62,
+  0x65, 0x20, 0x41, 0x2d, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x20, 0x61,
+  0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x52, 0x46, 0x43, 0x20, 0x35, 0x38,
+  0x39, 0x30, 0x2e, 0x22, 0x3b, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e,
+  0x63, 0x65, 0x0a, 0x22, 0x52, 0x46, 0x43, 0x20, 0x20, 0x39, 0x35, 0x32,
+  0x3a, 0x20, 0x44, 0x6f, 0x44, 0x20, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e,
+  0x65, 0x74, 0x20, 0x48, 0x6f, 0x73, 0x74, 0x20, 0x54, 0x61, 0x62, 0x6c,
+  0x65, 0x20, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74,
+  0x69, 0x6f, 0x6e, 0x0a, 0x52, 0x46, 0x43, 0x20, 0x31, 0x30, 0x33, 0x34,
+  0x3a, 0x20, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x4e, 0x61, 0x6d,
+  0x65, 0x73, 0x20, 0x2d, 0x20, 0x43, 0x6f, 0x6e, 0x63, 0x65, 0x70, 0x74,
+  0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x46, 0x61, 0x63, 0x69, 0x6c, 0x69,
+  0x74, 0x69, 0x65, 0x73, 0x0a, 0x52, 0x46, 0x43, 0x20, 0x31, 0x31, 0x32,
+  0x33, 0x3a, 0x20, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x6d, 0x65,
+  0x6e, 0x74, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x49, 0x6e, 0x74, 0x65,
+  0x72, 0x6e, 0x65, 0x74, 0x20, 0x48, 0x6f, 0x73, 0x74, 0x73, 0x20, 0x2d,
+  0x2d, 0x20, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+  0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+  0x20, 0x61, 0x6e, 0x64, 0x20, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74,
+  0x0a, 0x52, 0x46, 0x43, 0x20, 0x32, 0x37, 0x38, 0x32, 0x3a, 0x20, 0x41,
+  0x20, 0x44, 0x4e, 0x53, 0x20, 0x52, 0x52, 0x20, 0x66, 0x6f, 0x72, 0x20,
+  0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x79, 0x69, 0x6e, 0x67, 0x20, 0x74,
+  0x68, 0x65, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20,
+  0x6f, 0x66, 0x20, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x0a,
+  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x28,
+  0x44, 0x4e, 0x53, 0x20, 0x53, 0x52, 0x56, 0x29, 0x0a, 0x52, 0x46, 0x43,
+  0x20, 0x35, 0x38, 0x39, 0x30, 0x3a, 0x20, 0x49, 0x6e, 0x74, 0x65, 0x72,
+  0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64,
+  0x20, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x4e, 0x61, 0x6d, 0x65,
+  0x73, 0x20, 0x69, 0x6e, 0x20, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61,
+  0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+  0x20, 0x20, 0x20, 0x20, 0x20, 0x28, 0x49, 0x44, 0x4e, 0x41, 0x29, 0x3a,
+  0x20, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73,
+  0x20, 0x61, 0x6e, 0x64, 0x20, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e,
+  0x74, 0x20, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x77, 0x6f, 0x72, 0x6b, 0x22,
+  0x3b, 0x7d, 0x74, 0x79, 0x70, 0x65, 0x64, 0x65, 0x66, 0x20, 0x68, 0x6f,
+  0x73, 0x74, 0x20, 0x7b, 0x74, 0x79, 0x70, 0x65, 0x20, 0x75, 0x6e, 0x69,
+  0x6f, 0x6e, 0x20, 0x7b, 0x74, 0x79, 0x70, 0x65, 0x20, 0x69, 0x6e, 0x65,
+  0x74, 0x3a, 0x69, 0x70, 0x2d, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73,
+  0x3b, 0x74, 0x79, 0x70, 0x65, 0x20, 0x69, 0x6e, 0x65, 0x74, 0x3a, 0x64,
+  0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2d, 0x6e, 0x61, 0x6d, 0x65, 0x3b, 0x7d,
+  0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x0a,
+  0x22, 0x54, 0x68, 0x65, 0x20, 0x68, 0x6f, 0x73, 0x74, 0x20, 0x74, 0x79,
+  0x70, 0x65, 0x20, 0x72, 0x65, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74,
+  0x73, 0x20, 0x65, 0x69, 0x74, 0x68, 0x65, 0x72, 0x20, 0x61, 0x6e, 0x20,
+  0x49, 0x50, 0x20, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x20, 0x6f,
+  0x72, 0x20, 0x61, 0x20, 0x44, 0x4e, 0x53, 0x0a, 0x64, 0x6f, 0x6d, 0x61,
+  0x69, 0x6e, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x2e, 0x22, 0x3b, 0x7d, 0x74,
+  0x79, 0x70, 0x65, 0x64, 0x65, 0x66, 0x20, 0x75, 0x72, 0x69, 0x20, 0x7b,
+  0x74, 0x79, 0x70, 0x65, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3b,
+  0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x0a,
+  0x22, 0x54, 0x68, 0x65, 0x20, 0x75, 0x72, 0x69, 0x20, 0x74, 0x79, 0x70,
+  0x65, 0x20, 0x72, 0x65, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x73,
+  0x20, 0x61, 0x20, 0x55, 0x6e, 0x69, 0x66, 0x6f, 0x72, 0x6d, 0x20, 0x52,
+  0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x20, 0x49, 0x64, 0x65, 0x6e,
+  0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x0a, 0x28, 0x55, 0x52, 0x49, 0x29,
+  0x20, 0x61, 0x73, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x20,
+  0x62, 0x79, 0x20, 0x53, 0x54, 0x44, 0x20, 0x36, 0x36, 0x2e, 0x0a, 0x0a,
+  0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x20, 0x75, 0x73, 0x69, 0x6e,
+  0x67, 0x20, 0x74, 0x68, 0x65, 0x20, 0x75, 0x72, 0x69, 0x20, 0x74, 0x79,
+  0x70, 0x65, 0x20, 0x4d, 0x55, 0x53, 0x54, 0x20, 0x62, 0x65, 0x20, 0x69,
+  0x6e, 0x20, 0x55, 0x53, 0x2d, 0x41, 0x53, 0x43, 0x49, 0x49, 0x20, 0x65,
+  0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x2c, 0x0a, 0x61, 0x6e, 0x64,
+  0x20, 0x4d, 0x55, 0x53, 0x54, 0x20, 0x62, 0x65, 0x20, 0x6e, 0x6f, 0x72,
+  0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x61, 0x73, 0x20, 0x64,
+  0x65, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20,
+  0x52, 0x46, 0x43, 0x20, 0x33, 0x39, 0x38, 0x36, 0x20, 0x53, 0x65, 0x63,
+  0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x36, 0x2e, 0x32, 0x2e, 0x31, 0x2c,
+  0x20, 0x36, 0x2e, 0x32, 0x2e, 0x32, 0x2e, 0x31, 0x2c, 0x20, 0x61, 0x6e,
+  0x64, 0x20, 0x36, 0x2e, 0x32, 0x2e, 0x32, 0x2e, 0x32, 0x2e, 0x20, 0x20,
+  0x41, 0x6c, 0x6c, 0x20, 0x75, 0x6e, 0x6e, 0x65, 0x63, 0x65, 0x73, 0x73,
+  0x61, 0x72, 0x79, 0x0a, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x2d,
+  0x65, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x20, 0x69, 0x73, 0x20,
+  0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x64, 0x2c, 0x20, 0x61, 0x6e, 0x64,
+  0x20, 0x61, 0x6c, 0x6c, 0x20, 0x63, 0x61, 0x73, 0x65, 0x2d, 0x69, 0x6e,
+  0x73, 0x65, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x0a, 0x63, 0x68,
+  0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x73, 0x20, 0x61, 0x72, 0x65,
+  0x20, 0x73, 0x65, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x6c, 0x6f, 0x77, 0x65,
+  0x72, 0x63, 0x61, 0x73, 0x65, 0x20, 0x65, 0x78, 0x63, 0x65, 0x70, 0x74,
+  0x20, 0x66, 0x6f, 0x72, 0x20, 0x68, 0x65, 0x78, 0x61, 0x64, 0x65, 0x63,
+  0x69, 0x6d, 0x61, 0x6c, 0x0a, 0x64, 0x69, 0x67, 0x69, 0x74, 0x73, 0x2c,
+  0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6e,
+  0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x74, 0x6f,
+  0x20, 0x75, 0x70, 0x70, 0x65, 0x72, 0x63, 0x61, 0x73, 0x65, 0x20, 0x61,
+  0x73, 0x20, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x64, 0x20,
+  0x69, 0x6e, 0x0a, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x36,
+  0x2e, 0x32, 0x2e, 0x32, 0x2e, 0x31, 0x2e, 0x0a, 0x0a, 0x54, 0x68, 0x65,
+  0x20, 0x70, 0x75, 0x72, 0x70, 0x6f, 0x73, 0x65, 0x20, 0x6f, 0x66, 0x20,
+  0x74, 0x68, 0x69, 0x73, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69,
+  0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x73, 0x20, 0x74, 0x6f,
+  0x20, 0x68, 0x65, 0x6c, 0x70, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64,
+  0x65, 0x0a, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, 0x55, 0x52, 0x49,
+  0x73, 0x2e, 0x20, 0x20, 0x4e, 0x6f, 0x74, 0x65, 0x20, 0x74, 0x68, 0x61,
+  0x74, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61,
+  0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x73, 0x20,
+  0x6e, 0x6f, 0x74, 0x0a, 0x73, 0x75, 0x66, 0x66, 0x69, 0x63, 0x69, 0x65,
+  0x6e, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64,
+  0x65, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x6e, 0x65, 0x73, 0x73,
+  0x2e, 0x20, 0x20, 0x54, 0x77, 0x6f, 0x20, 0x55, 0x52, 0x49, 0x73, 0x20,
+  0x74, 0x68, 0x61, 0x74, 0x20, 0x61, 0x72, 0x65, 0x0a, 0x74, 0x65, 0x78,
+  0x74, 0x75, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x64, 0x69, 0x73, 0x74, 0x69,
+  0x6e, 0x63, 0x74, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68,
+  0x69, 0x73, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x61,
+  0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6d, 0x61, 0x79, 0x20, 0x73, 0x74, 0x69,
+  0x6c, 0x6c, 0x20, 0x62, 0x65, 0x0a, 0x65, 0x71, 0x75, 0x69, 0x76, 0x61,
+  0x6c, 0x65, 0x6e, 0x74, 0x2e, 0x0a, 0x0a, 0x4f, 0x62, 0x6a, 0x65, 0x63,
+  0x74, 0x73, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65,
+  0x20, 0x75, 0x72, 0x69, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6d, 0x61,
+  0x79, 0x20, 0x72, 0x65, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x20, 0x74,
+  0x68, 0x65, 0x20, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x65, 0x73, 0x20, 0x74,
+  0x68, 0x61, 0x74, 0x0a, 0x74, 0x68, 0x65, 0x79, 0x20, 0x70, 0x65, 0x72,
+  0x6d, 0x69, 0x74, 0x2e, 0x20, 0x20, 0x46, 0x6f, 0x72, 0x20, 0x65, 0x78,
+  0x61, 0x6d, 0x70, 0x6c, 0x65, 0x2c, 0x20, 0x27, 0x64, 0x61, 0x74, 0x61,
+  0x3a, 0x27, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x27, 0x75, 0x72, 0x6e, 0x3a,
+  0x27, 0x20, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x65, 0x73, 0x0a, 0x6d, 0x69,
+  0x67, 0x68, 0x74, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x62, 0x65, 0x20, 0x61,
+  0x70, 0x70, 0x72, 0x6f, 0x70, 0x72, 0x69, 0x61, 0x74, 0x65, 0x2e, 0x0a,
+  0x0a, 0x41, 0x20, 0x7a, 0x65, 0x72, 0x6f, 0x2d, 0x6c, 0x65, 0x6e, 0x67,
+  0x74, 0x68, 0x20, 0x55, 0x52, 0x49, 0x20, 0x69, 0x73, 0x20, 0x6e, 0x6f,
+  0x74, 0x20, 0x61, 0x20, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x20, 0x55, 0x52,
+  0x49, 0x2e, 0x20, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x63, 0x61, 0x6e,
+  0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x0a,
+  0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x20, 0x27, 0x55, 0x52, 0x49,
+  0x20, 0x61, 0x62, 0x73, 0x65, 0x6e, 0x74, 0x27, 0x20, 0x77, 0x68, 0x65,
+  0x72, 0x65, 0x20, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x2e,
+  0x0a, 0x0a, 0x49, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x76, 0x61, 0x6c,
+  0x75, 0x65, 0x20, 0x73, 0x65, 0x74, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x69,
+  0x74, 0x73, 0x20, 0x73, 0x65, 0x6d, 0x61, 0x6e, 0x74, 0x69, 0x63, 0x73,
+  0x2c, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20,
+  0x69, 0x73, 0x20, 0x65, 0x71, 0x75, 0x69, 0x76, 0x61, 0x6c, 0x65, 0x6e,
+  0x74, 0x0a, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x55, 0x72, 0x69,
+  0x20, 0x53, 0x4d, 0x49, 0x76, 0x32, 0x20, 0x74, 0x65, 0x78, 0x74, 0x75,
+  0x61, 0x6c, 0x20, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x69, 0x6f,
+  0x6e, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x20, 0x69, 0x6e,
+  0x20, 0x52, 0x46, 0x43, 0x20, 0x35, 0x30, 0x31, 0x37, 0x2e, 0x22, 0x3b,
+  0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x0a, 0x22, 0x52,
+  0x46, 0x43, 0x20, 0x33, 0x39, 0x38, 0x36, 0x3a, 0x20, 0x55, 0x6e, 0x69,
+  0x66, 0x6f, 0x72, 0x6d, 0x20, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63,
+  0x65, 0x20, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72,
+  0x20, 0x28, 0x55, 0x52, 0x49, 0x29, 0x3a, 0x20, 0x47, 0x65, 0x6e, 0x65,
+  0x72, 0x69, 0x63, 0x20, 0x53, 0x79, 0x6e, 0x74, 0x61, 0x78, 0x0a, 0x52,
+  0x46, 0x43, 0x20, 0x33, 0x33, 0x30, 0x35, 0x3a, 0x20, 0x52, 0x65, 0x70,
+  0x6f, 0x72, 0x74, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65,
+  0x20, 0x4a, 0x6f, 0x69, 0x6e, 0x74, 0x20, 0x57, 0x33, 0x43, 0x2f, 0x49,
+  0x45, 0x54, 0x46, 0x20, 0x55, 0x52, 0x49, 0x20, 0x50, 0x6c, 0x61, 0x6e,
+  0x6e, 0x69, 0x6e, 0x67, 0x20, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x65, 0x73,
+  0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+  0x20, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x3a, 0x20, 0x55, 0x6e, 0x69, 0x66,
+  0x6f, 0x72, 0x6d, 0x20, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65,
+  0x20, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x73,
+  0x20, 0x28, 0x55, 0x52, 0x49, 0x73, 0x29, 0x2c, 0x20, 0x55, 0x52, 0x4c,
+  0x73, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+  0x20, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x55, 0x6e, 0x69, 0x66, 0x6f, 0x72,
+  0x6d, 0x20, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x20, 0x4e,
+  0x61, 0x6d, 0x65, 0x73, 0x20, 0x28, 0x55, 0x52, 0x4e, 0x73, 0x29, 0x3a,
+  0x20, 0x43, 0x6c, 0x61, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69,
+  0x6f, 0x6e, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+  0x20, 0x20, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x52, 0x65, 0x63, 0x6f, 0x6d,
+  0x6d, 0x65, 0x6e, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x52,
+  0x46, 0x43, 0x20, 0x35, 0x30, 0x31, 0x37, 0x3a, 0x20, 0x4d, 0x49, 0x42,
+  0x20, 0x54, 0x65, 0x78, 0x74, 0x75, 0x61, 0x6c, 0x20, 0x43, 0x6f, 0x6e,
+  0x76, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x66, 0x6f, 0x72,
+  0x20, 0x55, 0x6e, 0x69, 0x66, 0x6f, 0x72, 0x6d, 0x20, 0x52, 0x65, 0x73,
+  0x6f, 0x75, 0x72, 0x63, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+  0x20, 0x20, 0x20, 0x20, 0x20, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66,
+  0x69, 0x65, 0x72, 0x73, 0x20, 0x28, 0x55, 0x52, 0x49, 0x73, 0x29, 0x22,
+  0x3b, 0x7d, 0x7d, 0x00
+};
diff --git a/models/ietf-inet-types@2013-07-15.yang b/models/ietf-inet-types@2013-07-15.yang
new file mode 100644
index 0000000..2f14270
--- /dev/null
+++ b/models/ietf-inet-types@2013-07-15.yang
@@ -0,0 +1,457 @@
+module ietf-inet-types {
+
+  namespace "urn:ietf:params:xml:ns:yang:ietf-inet-types";
+  prefix "inet";
+
+  organization
+   "IETF NETMOD (NETCONF Data Modeling Language) Working Group";
+
+  contact
+   "WG Web:   <http://tools.ietf.org/wg/netmod/>
+    WG List:  <mailto:netmod@ietf.org>
+
+    WG Chair: David Kessens
+              <mailto:david.kessens@nsn.com>
+
+    WG Chair: Juergen Schoenwaelder
+              <mailto:j.schoenwaelder@jacobs-university.de>
+
+    Editor:   Juergen Schoenwaelder
+              <mailto:j.schoenwaelder@jacobs-university.de>";
+
+  description
+   "This module contains a collection of generally useful derived
+    YANG data types for Internet addresses and related things.
+
+    Copyright (c) 2013 IETF Trust and the persons identified as
+    authors of the code.  All rights reserved.
+
+    Redistribution and use in source and binary forms, with or
+    without modification, is permitted pursuant to, and subject
+    to the license terms contained in, the Simplified BSD License
+    set forth in Section 4.c of the IETF Trust's Legal Provisions
+    Relating to IETF Documents
+    (http://trustee.ietf.org/license-info).
+
+    This version of this YANG module is part of RFC 6991; see
+    the RFC itself for full legal notices.";
+
+  revision 2013-07-15 {
+    description
+     "This revision adds the following new data types:
+      - ip-address-no-zone
+      - ipv4-address-no-zone
+      - ipv6-address-no-zone";
+    reference
+     "RFC 6991: Common YANG Data Types";
+  }
+
+  revision 2010-09-24 {
+    description
+     "Initial revision.";
+    reference
+     "RFC 6021: Common YANG Data Types";
+  }
+
+  /*** collection of types related to protocol fields ***/
+
+  typedef ip-version {
+    type enumeration {
+      enum unknown {
+        value "0";
+        description
+         "An unknown or unspecified version of the Internet
+          protocol.";
+      }
+      enum ipv4 {
+        value "1";
+        description
+         "The IPv4 protocol as defined in RFC 791.";
+      }
+      enum ipv6 {
+        value "2";
+        description
+         "The IPv6 protocol as defined in RFC 2460.";
+      }
+    }
+    description
+     "This value represents the version of the IP protocol.
+
+      In the value set and its semantics, this type is equivalent
+      to the InetVersion textual convention of the SMIv2.";
+    reference
+     "RFC  791: Internet Protocol
+      RFC 2460: Internet Protocol, Version 6 (IPv6) Specification
+      RFC 4001: Textual Conventions for Internet Network Addresses";
+  }
+
+  typedef dscp {
+    type uint8 {
+      range "0..63";
+    }
+    description
+     "The dscp type represents a Differentiated Services Code Point
+      that may be used for marking packets in a traffic stream.
+      In the value set and its semantics, this type is equivalent
+      to the Dscp textual convention of the SMIv2.";
+    reference
+     "RFC 3289: Management Information Base for the Differentiated
+                Services Architecture
+      RFC 2474: Definition of the Differentiated Services Field
+                (DS Field) in the IPv4 and IPv6 Headers
+      RFC 2780: IANA Allocation Guidelines For Values In
+                the Internet Protocol and Related Headers";
+  }
+
+  typedef ipv6-flow-label {
+    type uint32 {
+      range "0..1048575";
+    }
+    description
+     "The ipv6-flow-label type represents the flow identifier or Flow
+      Label in an IPv6 packet header that may be used to
+      discriminate traffic flows.
+
+      In the value set and its semantics, this type is equivalent
+      to the IPv6FlowLabel textual convention of the SMIv2.";
+    reference
+     "RFC 3595: Textual Conventions for IPv6 Flow Label
+      RFC 2460: Internet Protocol, Version 6 (IPv6) Specification";
+  }
+
+  typedef port-number {
+    type uint16 {
+      range "0..65535";
+    }
+    description
+     "The port-number type represents a 16-bit port number of an
+      Internet transport-layer protocol such as UDP, TCP, DCCP, or
+      SCTP.  Port numbers are assigned by IANA.  A current list of
+      all assignments is available from <http://www.iana.org/>.
+
+      Note that the port number value zero is reserved by IANA.  In
+      situations where the value zero does not make sense, it can
+      be excluded by subtyping the port-number type.
+      In the value set and its semantics, this type is equivalent
+      to the InetPortNumber textual convention of the SMIv2.";
+    reference
+     "RFC  768: User Datagram Protocol
+      RFC  793: Transmission Control Protocol
+      RFC 4960: Stream Control Transmission Protocol
+      RFC 4340: Datagram Congestion Control Protocol (DCCP)
+      RFC 4001: Textual Conventions for Internet Network Addresses";
+  }
+
+  /*** collection of types related to autonomous systems ***/
+
+  typedef as-number {
+    type uint32;
+    description
+     "The as-number type represents autonomous system numbers
+      which identify an Autonomous System (AS).  An AS is a set
+      of routers under a single technical administration, using
+      an interior gateway protocol and common metrics to route
+      packets within the AS, and using an exterior gateway
+      protocol to route packets to other ASes.  IANA maintains
+      the AS number space and has delegated large parts to the
+      regional registries.
+
+      Autonomous system numbers were originally limited to 16
+      bits.  BGP extensions have enlarged the autonomous system
+      number space to 32 bits.  This type therefore uses an uint32
+      base type without a range restriction in order to support
+      a larger autonomous system number space.
+
+      In the value set and its semantics, this type is equivalent
+      to the InetAutonomousSystemNumber textual convention of
+      the SMIv2.";
+    reference
+     "RFC 1930: Guidelines for creation, selection, and registration
+                of an Autonomous System (AS)
+      RFC 4271: A Border Gateway Protocol 4 (BGP-4)
+      RFC 4001: Textual Conventions for Internet Network Addresses
+      RFC 6793: BGP Support for Four-Octet Autonomous System (AS)
+                Number Space";
+  }
+
+  /*** collection of types related to IP addresses and hostnames ***/
+
+  typedef ip-address {
+    type union {
+      type inet:ipv4-address;
+      type inet:ipv6-address;
+    }
+    description
+     "The ip-address type represents an IP address and is IP
+      version neutral.  The format of the textual representation
+      implies the IP version.  This type supports scoped addresses
+      by allowing zone identifiers in the address format.";
+    reference
+     "RFC 4007: IPv6 Scoped Address Architecture";
+  }
+
+  typedef ipv4-address {
+    type string {
+      pattern
+        '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}'
+      +  '([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])'
+      + '(%[\p{N}\p{L}]+)?';
+    }
+    description
+      "The ipv4-address type represents an IPv4 address in
+       dotted-quad notation.  The IPv4 address may include a zone
+       index, separated by a % sign.
+
+       The zone index is used to disambiguate identical address
+       values.  For link-local addresses, the zone index will
+       typically be the interface index number or the name of an
+       interface.  If the zone index is not present, the default
+       zone of the device will be used.
+
+       The canonical format for the zone index is the numerical
+       format";
+  }
+
+  typedef ipv6-address {
+    type string {
+      pattern '((:|[0-9a-fA-F]{0,4}):)([0-9a-fA-F]{0,4}:){0,5}'
+            + '((([0-9a-fA-F]{0,4}:)?(:|[0-9a-fA-F]{0,4}))|'
+            + '(((25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])\.){3}'
+            + '(25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])))'
+            + '(%[\p{N}\p{L}]+)?';
+      pattern '(([^:]+:){6}(([^:]+:[^:]+)|(.*\..*)))|'
+            + '((([^:]+:)*[^:]+)?::(([^:]+:)*[^:]+)?)'
+            + '(%.+)?';
+    }
+    description
+     "The ipv6-address type represents an IPv6 address in full,
+      mixed, shortened, and shortened-mixed notation.  The IPv6
+      address may include a zone index, separated by a % sign.
+
+      The zone index is used to disambiguate identical address
+      values.  For link-local addresses, the zone index will
+      typically be the interface index number or the name of an
+      interface.  If the zone index is not present, the default
+      zone of the device will be used.
+
+      The canonical format of IPv6 addresses uses the textual
+      representation defined in Section 4 of RFC 5952.  The
+      canonical format for the zone index is the numerical
+      format as described in Section 11.2 of RFC 4007.";
+    reference
+     "RFC 4291: IP Version 6 Addressing Architecture
+      RFC 4007: IPv6 Scoped Address Architecture
+      RFC 5952: A Recommendation for IPv6 Address Text
+                Representation";
+  }
+
+  typedef ip-address-no-zone {
+    type union {
+      type inet:ipv4-address-no-zone;
+      type inet:ipv6-address-no-zone;
+    }
+    description
+     "The ip-address-no-zone type represents an IP address and is
+      IP version neutral.  The format of the textual representation
+      implies the IP version.  This type does not support scoped
+      addresses since it does not allow zone identifiers in the
+      address format.";
+    reference
+     "RFC 4007: IPv6 Scoped Address Architecture";
+  }
+
+  typedef ipv4-address-no-zone {
+    type inet:ipv4-address {
+      pattern '[0-9\.]*';
+    }
+    description
+      "An IPv4 address without a zone index.  This type, derived from
+       ipv4-address, may be used in situations where the zone is
+       known from the context and hence no zone index is needed.";
+  }
+
+  typedef ipv6-address-no-zone {
+    type inet:ipv6-address {
+      pattern '[0-9a-fA-F:\.]*';
+    }
+    description
+      "An IPv6 address without a zone index.  This type, derived from
+       ipv6-address, may be used in situations where the zone is
+       known from the context and hence no zone index is needed.";
+    reference
+     "RFC 4291: IP Version 6 Addressing Architecture
+      RFC 4007: IPv6 Scoped Address Architecture
+      RFC 5952: A Recommendation for IPv6 Address Text
+                Representation";
+  }
+
+  typedef ip-prefix {
+    type union {
+      type inet:ipv4-prefix;
+      type inet:ipv6-prefix;
+    }
+    description
+     "The ip-prefix type represents an IP prefix and is IP
+      version neutral.  The format of the textual representations
+      implies the IP version.";
+  }
+
+  typedef ipv4-prefix {
+    type string {
+      pattern
+         '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}'
+       +  '([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])'
+       + '/(([0-9])|([1-2][0-9])|(3[0-2]))';
+    }
+    description
+     "The ipv4-prefix type represents an IPv4 address prefix.
+      The prefix length is given by the number following the
+      slash character and must be less than or equal to 32.
+
+      A prefix length value of n corresponds to an IP address
+      mask that has n contiguous 1-bits from the most
+      significant bit (MSB) and all other bits set to 0.
+
+      The canonical format of an IPv4 prefix has all bits of
+      the IPv4 address set to zero that are not part of the
+      IPv4 prefix.";
+  }
+
+  typedef ipv6-prefix {
+    type string {
+      pattern '((:|[0-9a-fA-F]{0,4}):)([0-9a-fA-F]{0,4}:){0,5}'
+            + '((([0-9a-fA-F]{0,4}:)?(:|[0-9a-fA-F]{0,4}))|'
+            + '(((25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])\.){3}'
+            + '(25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])))'
+            + '(/(([0-9])|([0-9]{2})|(1[0-1][0-9])|(12[0-8])))';
+      pattern '(([^:]+:){6}(([^:]+:[^:]+)|(.*\..*)))|'
+            + '((([^:]+:)*[^:]+)?::(([^:]+:)*[^:]+)?)'
+            + '(/.+)';
+    }
+    description
+     "The ipv6-prefix type represents an IPv6 address prefix.
+      The prefix length is given by the number following the
+      slash character and must be less than or equal to 128.
+
+      A prefix length value of n corresponds to an IP address
+      mask that has n contiguous 1-bits from the most
+      significant bit (MSB) and all other bits set to 0.
+
+      The IPv6 address should have all bits that do not belong
+      to the prefix set to zero.
+
+      The canonical format of an IPv6 prefix has all bits of
+      the IPv6 address set to zero that are not part of the
+      IPv6 prefix.  Furthermore, the IPv6 address is represented
+      as defined in Section 4 of RFC 5952.";
+    reference
+     "RFC 5952: A Recommendation for IPv6 Address Text
+                Representation";
+  }
+
+  /*** collection of domain name and URI types ***/
+
+  typedef domain-name {
+    type string {
+      length "1..253";
+      pattern
+        '((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*'
+      + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)'
+      + '|\.';
+    }
+    description
+     "The domain-name type represents a DNS domain name.  The
+      name SHOULD be fully qualified whenever possible.
+
+      Internet domain names are only loosely specified.  Section
+      3.5 of RFC 1034 recommends a syntax (modified in Section
+      2.1 of RFC 1123).  The pattern above is intended to allow
+      for current practice in domain name use, and some possible
+      future expansion.  It is designed to hold various types of
+      domain names, including names used for A or AAAA records
+      (host names) and other records, such as SRV records.  Note
+      that Internet host names have a stricter syntax (described
+      in RFC 952) than the DNS recommendations in RFCs 1034 and
+      1123, and that systems that want to store host names in
+      schema nodes using the domain-name type are recommended to
+      adhere to this stricter standard to ensure interoperability.
+
+      The encoding of DNS names in the DNS protocol is limited
+      to 255 characters.  Since the encoding consists of labels
+      prefixed by a length bytes and there is a trailing NULL
+      byte, only 253 characters can appear in the textual dotted
+      notation.
+
+      The description clause of schema nodes using the domain-name
+      type MUST describe when and how these names are resolved to
+      IP addresses.  Note that the resolution of a domain-name value
+      may require to query multiple DNS records (e.g., A for IPv4
+      and AAAA for IPv6).  The order of the resolution process and
+      which DNS record takes precedence can either be defined
+      explicitly or may depend on the configuration of the
+      resolver.
+
+      Domain-name values use the US-ASCII encoding.  Their canonical
+      format uses lowercase US-ASCII characters.  Internationalized
+      domain names MUST be A-labels as per RFC 5890.";
+    reference
+     "RFC  952: DoD Internet Host Table Specification
+      RFC 1034: Domain Names - Concepts and Facilities
+      RFC 1123: Requirements for Internet Hosts -- Application
+                and Support
+      RFC 2782: A DNS RR for specifying the location of services
+                (DNS SRV)
+      RFC 5890: Internationalized Domain Names in Applications
+                (IDNA): Definitions and Document Framework";
+  }
+
+  typedef host {
+    type union {
+      type inet:ip-address;
+      type inet:domain-name;
+    }
+    description
+     "The host type represents either an IP address or a DNS
+      domain name.";
+  }
+
+  typedef uri {
+    type string;
+    description
+     "The uri type represents a Uniform Resource Identifier
+      (URI) as defined by STD 66.
+
+      Objects using the uri type MUST be in US-ASCII encoding,
+      and MUST be normalized as described by RFC 3986 Sections
+      6.2.1, 6.2.2.1, and 6.2.2.2.  All unnecessary
+      percent-encoding is removed, and all case-insensitive
+      characters are set to lowercase except for hexadecimal
+      digits, which are normalized to uppercase as described in
+      Section 6.2.2.1.
+
+      The purpose of this normalization is to help provide
+      unique URIs.  Note that this normalization is not
+      sufficient to provide uniqueness.  Two URIs that are
+      textually distinct after this normalization may still be
+      equivalent.
+
+      Objects using the uri type may restrict the schemes that
+      they permit.  For example, 'data:' and 'urn:' schemes
+      might not be appropriate.
+
+      A zero-length URI is not a valid URI.  This can be used to
+      express 'URI absent' where required.
+
+      In the value set and its semantics, this type is equivalent
+      to the Uri SMIv2 textual convention defined in RFC 5017.";
+    reference
+     "RFC 3986: Uniform Resource Identifier (URI): Generic Syntax
+      RFC 3305: Report from the Joint W3C/IETF URI Planning Interest
+                Group: Uniform Resource Identifiers (URIs), URLs,
+                and Uniform Resource Names (URNs): Clarifications
+                and Recommendations
+      RFC 5017: MIB Textual Conventions for Uniform Resource
+                Identifiers (URIs)";
+  }
+
+}
diff --git a/models/ietf-yang-library@2018-01-17.h b/models/ietf-yang-library@2018-01-17.h
new file mode 100644
index 0000000..dacd5ad
--- /dev/null
+++ b/models/ietf-yang-library@2018-01-17.h
@@ -0,0 +1,1000 @@
+unsigned char ietf_yang_library_2018_01_17_yang[] = {
+  0x20, 0x20, 0x20, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x20, 0x69, 0x65,
+  0x74, 0x66, 0x2d, 0x79, 0x61, 0x6e, 0x67, 0x2d, 0x6c, 0x69, 0x62, 0x72,
+  0x61, 0x72, 0x79, 0x20, 0x7b, 0x79, 0x61, 0x6e, 0x67, 0x2d, 0x76, 0x65,
+  0x72, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x31, 0x2e, 0x31, 0x3b, 0x6e, 0x61,
+  0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x20, 0x22, 0x75, 0x72, 0x6e,
+  0x3a, 0x69, 0x65, 0x74, 0x66, 0x3a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73,
+  0x3a, 0x78, 0x6d, 0x6c, 0x3a, 0x6e, 0x73, 0x3a, 0x79, 0x61, 0x6e, 0x67,
+  0x3a, 0x69, 0x65, 0x74, 0x66, 0x2d, 0x79, 0x61, 0x6e, 0x67, 0x2d, 0x6c,
+  0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x22, 0x3b, 0x70, 0x72, 0x65, 0x66,
+  0x69, 0x78, 0x20, 0x22, 0x79, 0x61, 0x6e, 0x67, 0x6c, 0x69, 0x62, 0x22,
+  0x3b, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x69, 0x65, 0x74, 0x66,
+  0x2d, 0x79, 0x61, 0x6e, 0x67, 0x2d, 0x74, 0x79, 0x70, 0x65, 0x73, 0x20,
+  0x7b, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, 0x79, 0x61, 0x6e, 0x67,
+  0x3b, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x22,
+  0x52, 0x46, 0x43, 0x20, 0x36, 0x39, 0x39, 0x31, 0x3a, 0x20, 0x43, 0x6f,
+  0x6d, 0x6d, 0x6f, 0x6e, 0x20, 0x59, 0x41, 0x4e, 0x47, 0x20, 0x44, 0x61,
+  0x74, 0x61, 0x20, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x22, 0x3b, 0x7d,
+  0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x69, 0x65, 0x74, 0x66, 0x2d,
+  0x69, 0x6e, 0x65, 0x74, 0x2d, 0x74, 0x79, 0x70, 0x65, 0x73, 0x20, 0x7b,
+  0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, 0x69, 0x6e, 0x65, 0x74, 0x3b,
+  0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x22, 0x52,
+  0x46, 0x43, 0x20, 0x36, 0x39, 0x39, 0x31, 0x3a, 0x20, 0x43, 0x6f, 0x6d,
+  0x6d, 0x6f, 0x6e, 0x20, 0x59, 0x41, 0x4e, 0x47, 0x20, 0x44, 0x61, 0x74,
+  0x61, 0x20, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x22, 0x3b, 0x7d, 0x69,
+  0x6d, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x69, 0x65, 0x74, 0x66, 0x2d, 0x64,
+  0x61, 0x74, 0x61, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x20, 0x7b, 0x70,
+  0x72, 0x65, 0x66, 0x69, 0x78, 0x20, 0x64, 0x73, 0x3b, 0x72, 0x65, 0x66,
+  0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x22, 0x49, 0x2d, 0x44, 0x2e,
+  0x69, 0x65, 0x74, 0x66, 0x2d, 0x72, 0x65, 0x76, 0x69, 0x73, 0x65, 0x64,
+  0x2d, 0x64, 0x61, 0x74, 0x61, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x3a,
+  0x0a, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x20, 0x4d, 0x61, 0x6e,
+  0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x44, 0x61, 0x74, 0x61,
+  0x73, 0x74, 0x6f, 0x72, 0x65, 0x20, 0x41, 0x72, 0x63, 0x68, 0x69, 0x74,
+  0x65, 0x63, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x22, 0x3b, 0x7d, 0x6f, 0x72,
+  0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x22,
+  0x49, 0x45, 0x54, 0x46, 0x20, 0x4e, 0x45, 0x54, 0x43, 0x4f, 0x4e, 0x46,
+  0x20, 0x28, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x20, 0x43, 0x6f,
+  0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x29,
+  0x20, 0x57, 0x6f, 0x72, 0x6b, 0x69, 0x6e, 0x67, 0x20, 0x47, 0x72, 0x6f,
+  0x75, 0x70, 0x22, 0x3b, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x0a,
+  0x22, 0x57, 0x47, 0x20, 0x57, 0x65, 0x62, 0x3a, 0x20, 0x20, 0x20, 0x3c,
+  0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x74, 0x6f, 0x6f, 0x6c, 0x73,
+  0x2e, 0x69, 0x65, 0x74, 0x66, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x77, 0x67,
+  0x2f, 0x6e, 0x65, 0x74, 0x63, 0x6f, 0x6e, 0x66, 0x2f, 0x3e, 0x0a, 0x57,
+  0x47, 0x20, 0x4c, 0x69, 0x73, 0x74, 0x3a, 0x20, 0x20, 0x3c, 0x6d, 0x61,
+  0x69, 0x6c, 0x74, 0x6f, 0x3a, 0x6e, 0x65, 0x74, 0x63, 0x6f, 0x6e, 0x66,
+  0x40, 0x69, 0x65, 0x74, 0x66, 0x2e, 0x6f, 0x72, 0x67, 0x3e, 0x0a, 0x0a,
+  0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x3a, 0x20, 0x20, 0x20, 0x41, 0x6e,
+  0x64, 0x79, 0x20, 0x42, 0x69, 0x65, 0x72, 0x6d, 0x61, 0x6e, 0x0a, 0x20,
+  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x6d,
+  0x61, 0x69, 0x6c, 0x74, 0x6f, 0x3a, 0x61, 0x6e, 0x64, 0x79, 0x40, 0x79,
+  0x75, 0x6d, 0x61, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x2e, 0x63, 0x6f, 0x6d,
+  0x3e, 0x0a, 0x0a, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x3a, 0x20, 0x20,
+  0x20, 0x4d, 0x61, 0x72, 0x74, 0x69, 0x6e, 0x20, 0x42, 0x6a, 0x6f, 0x72,
+  0x6b, 0x6c, 0x75, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+  0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x6d, 0x61, 0x69, 0x6c, 0x74, 0x6f,
+  0x3a, 0x6d, 0x62, 0x6a, 0x40, 0x74, 0x61, 0x69, 0x6c, 0x2d, 0x66, 0x2e,
+  0x63, 0x6f, 0x6d, 0x3e, 0x0a, 0x0a, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72,
+  0x3a, 0x20, 0x20, 0x20, 0x4a, 0x75, 0x65, 0x72, 0x67, 0x65, 0x6e, 0x20,
+  0x53, 0x63, 0x68, 0x6f, 0x65, 0x6e, 0x77, 0x61, 0x65, 0x6c, 0x64, 0x65,
+  0x72, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+  0x20, 0x3c, 0x6d, 0x61, 0x69, 0x6c, 0x74, 0x6f, 0x3a, 0x6a, 0x2e, 0x73,
+  0x63, 0x68, 0x6f, 0x65, 0x6e, 0x77, 0x61, 0x65, 0x6c, 0x64, 0x65, 0x72,
+  0x40, 0x6a, 0x61, 0x63, 0x6f, 0x62, 0x73, 0x2d, 0x75, 0x6e, 0x69, 0x76,
+  0x65, 0x72, 0x73, 0x69, 0x74, 0x79, 0x2e, 0x64, 0x65, 0x3e, 0x0a, 0x0a,
+  0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x3a, 0x20, 0x20, 0x20, 0x4b, 0x65,
+  0x6e, 0x74, 0x20, 0x57, 0x61, 0x74, 0x73, 0x65, 0x6e, 0x0a, 0x20, 0x20,
+  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x6d, 0x61,
+  0x69, 0x6c, 0x74, 0x6f, 0x3a, 0x6b, 0x77, 0x61, 0x74, 0x73, 0x65, 0x6e,
+  0x40, 0x6a, 0x75, 0x6e, 0x69, 0x70, 0x65, 0x72, 0x2e, 0x6e, 0x65, 0x74,
+  0x3e, 0x0a, 0x0a, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x3a, 0x20, 0x20,
+  0x20, 0x52, 0x6f, 0x62, 0x20, 0x57, 0x69, 0x6c, 0x74, 0x6f, 0x6e, 0x0a,
+  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c,
+  0x72, 0x77, 0x69, 0x6c, 0x74, 0x6f, 0x6e, 0x40, 0x63, 0x69, 0x73, 0x63,
+  0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x3e, 0x22, 0x3b, 0x64, 0x65, 0x73, 0x63,
+  0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x22, 0x54, 0x68, 0x69,
+  0x73, 0x20, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x20, 0x63, 0x6f, 0x6e,
+  0x74, 0x61, 0x69, 0x6e, 0x73, 0x20, 0x69, 0x6e, 0x66, 0x6f, 0x72, 0x6d,
+  0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x61, 0x62, 0x6f, 0x75, 0x74, 0x20,
+  0x74, 0x68, 0x65, 0x20, 0x59, 0x41, 0x4e, 0x47, 0x20, 0x73, 0x65, 0x72,
+  0x76, 0x65, 0x72, 0x20, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65,
+  0x2c, 0x0a, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x69, 0x6e, 0x67, 0x20,
+  0x74, 0x68, 0x65, 0x20, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x73, 0x20,
+  0x61, 0x6e, 0x64, 0x20, 0x64, 0x61, 0x74, 0x61, 0x73, 0x74, 0x6f, 0x72,
+  0x65, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x72, 0x76, 0x65,
+  0x72, 0x20, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2c, 0x20,
+  0x61, 0x6e, 0x64, 0x0a, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x6d, 0x6f,
+  0x64, 0x75, 0x6c, 0x65, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x70, 0x72,
+  0x65, 0x73, 0x65, 0x6e, 0x74, 0x20, 0x69, 0x6e, 0x20, 0x77, 0x68, 0x69,
+  0x63, 0x68, 0x20, 0x64, 0x61, 0x74, 0x61, 0x73, 0x74, 0x6f, 0x72, 0x65,
+  0x73, 0x2e, 0x0a, 0x0a, 0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68,
+  0x74, 0x20, 0x28, 0x63, 0x29, 0x20, 0x32, 0x30, 0x31, 0x38, 0x20, 0x49,
+  0x45, 0x54, 0x46, 0x20, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x61, 0x6e,
+  0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e,
+  0x73, 0x20, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x64,
+  0x20, 0x61, 0x73, 0x0a, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x73, 0x20,
+  0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x6f, 0x64, 0x65, 0x2e,
+  0x20, 0x20, 0x41, 0x6c, 0x6c, 0x20, 0x72, 0x69, 0x67, 0x68, 0x74, 0x73,
+  0x20, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x2e, 0x0a, 0x0a,
+  0x52, 0x65, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69,
+  0x6f, 0x6e, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x75, 0x73, 0x65, 0x20, 0x69,
+  0x6e, 0x20, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x20, 0x61, 0x6e, 0x64,
+  0x20, 0x62, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x20, 0x66, 0x6f, 0x72, 0x6d,
+  0x73, 0x2c, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x6f, 0x72, 0x0a, 0x77,
+  0x69, 0x74, 0x68, 0x6f, 0x75, 0x74, 0x20, 0x6d, 0x6f, 0x64, 0x69, 0x66,
+  0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x69, 0x73, 0x20,
+  0x70, 0x65, 0x72, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x64, 0x20, 0x70, 0x75,
+  0x72, 0x73, 0x75, 0x61, 0x6e, 0x74, 0x20, 0x74, 0x6f, 0x2c, 0x20, 0x61,
+  0x6e, 0x64, 0x20, 0x73, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x0a, 0x74,
+  0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73,
+  0x65, 0x20, 0x74, 0x65, 0x72, 0x6d, 0x73, 0x20, 0x63, 0x6f, 0x6e, 0x74,
+  0x61, 0x69, 0x6e, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x2c, 0x20, 0x74, 0x68,
+  0x65, 0x20, 0x53, 0x69, 0x6d, 0x70, 0x6c, 0x69, 0x66, 0x69, 0x65, 0x64,
+  0x20, 0x42, 0x53, 0x44, 0x20, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65,
+  0x0a, 0x73, 0x65, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x74, 0x68, 0x20, 0x69,
+  0x6e, 0x20, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x34, 0x2e,
+  0x63, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x49, 0x45, 0x54,
+  0x46, 0x20, 0x54, 0x72, 0x75, 0x73, 0x74, 0x27, 0x73, 0x20, 0x4c, 0x65,
+  0x67, 0x61, 0x6c, 0x20, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f,
+  0x6e, 0x73, 0x0a, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x20,
+  0x74, 0x6f, 0x20, 0x49, 0x45, 0x54, 0x46, 0x20, 0x44, 0x6f, 0x63, 0x75,
+  0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x28, 0x68, 0x74, 0x74, 0x70, 0x3a,
+  0x2f, 0x2f, 0x74, 0x72, 0x75, 0x73, 0x74, 0x65, 0x65, 0x2e, 0x69, 0x65,
+  0x74, 0x66, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x6c, 0x69, 0x63, 0x65, 0x6e,
+  0x73, 0x65, 0x2d, 0x69, 0x6e, 0x66, 0x6f, 0x29, 0x2e, 0x0a, 0x0a, 0x54,
+  0x68, 0x69, 0x73, 0x20, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x20,
+  0x6f, 0x66, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x59, 0x41, 0x4e, 0x47,
+  0x20, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x20, 0x69, 0x73, 0x20, 0x70,
+  0x61, 0x72, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x52, 0x46, 0x43, 0x20, 0x58,
+  0x58, 0x58, 0x58, 0x3b, 0x20, 0x73, 0x65, 0x65, 0x0a, 0x74, 0x68, 0x65,
+  0x20, 0x52, 0x46, 0x43, 0x20, 0x69, 0x74, 0x73, 0x65, 0x6c, 0x66, 0x20,
+  0x66, 0x6f, 0x72, 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x20, 0x6c, 0x65, 0x67,
+  0x61, 0x6c, 0x20, 0x6e, 0x6f, 0x74, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x22,
+  0x3b, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x32, 0x30,
+  0x31, 0x38, 0x2d, 0x30, 0x31, 0x2d, 0x31, 0x37, 0x20, 0x7b, 0x64, 0x65,
+  0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x22, 0x41,
+  0x64, 0x64, 0x65, 0x64, 0x20, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74,
+  0x20, 0x66, 0x6f, 0x72, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c,
+  0x65, 0x20, 0x64, 0x61, 0x74, 0x61, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x73,
+  0x2e, 0x22, 0x3b, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65,
+  0x20, 0x22, 0x52, 0x46, 0x43, 0x20, 0x58, 0x58, 0x58, 0x58, 0x3a, 0x20,
+  0x59, 0x41, 0x4e, 0x47, 0x20, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79,
+  0x2e, 0x22, 0x3b, 0x7d, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e,
+  0x20, 0x32, 0x30, 0x31, 0x36, 0x2d, 0x30, 0x34, 0x2d, 0x30, 0x39, 0x20,
+  0x7b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e,
+  0x20, 0x22, 0x49, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x20, 0x72, 0x65,
+  0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x22, 0x3b, 0x72, 0x65, 0x66,
+  0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x22, 0x52, 0x46, 0x43, 0x20,
+  0x37, 0x38, 0x39, 0x35, 0x3a, 0x20, 0x59, 0x41, 0x4e, 0x47, 0x20, 0x4d,
+  0x6f, 0x64, 0x75, 0x6c, 0x65, 0x20, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72,
+  0x79, 0x2e, 0x22, 0x3b, 0x7d, 0x74, 0x79, 0x70, 0x65, 0x64, 0x65, 0x66,
+  0x20, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2d, 0x69, 0x64,
+  0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x20, 0x7b, 0x74, 0x79,
+  0x70, 0x65, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x7b, 0x70,
+  0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x20, 0x27, 0x5c, 0x64, 0x7b, 0x34,
+  0x7d, 0x2d, 0x5c, 0x64, 0x7b, 0x32, 0x7d, 0x2d, 0x5c, 0x64, 0x7b, 0x32,
+  0x7d, 0x27, 0x3b, 0x7d, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74,
+  0x69, 0x6f, 0x6e, 0x20, 0x22, 0x52, 0x65, 0x70, 0x72, 0x65, 0x73, 0x65,
+  0x6e, 0x74, 0x73, 0x20, 0x61, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66,
+  0x69, 0x63, 0x20, 0x64, 0x61, 0x74, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x59,
+  0x59, 0x59, 0x59, 0x2d, 0x4d, 0x4d, 0x2d, 0x44, 0x44, 0x20, 0x66, 0x6f,
+  0x72, 0x6d, 0x61, 0x74, 0x2e, 0x22, 0x3b, 0x7d, 0x67, 0x72, 0x6f, 0x75,
+  0x70, 0x69, 0x6e, 0x67, 0x20, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x2d,
+  0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69,
+  0x6f, 0x6e, 0x2d, 0x6c, 0x65, 0x61, 0x66, 0x73, 0x20, 0x7b, 0x64, 0x65,
+  0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x22, 0x50,
+  0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x20, 0x66, 0x6f,
+  0x72, 0x20, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x69, 0x6e,
+  0x67, 0x20, 0x59, 0x41, 0x4e, 0x47, 0x20, 0x6d, 0x6f, 0x64, 0x75, 0x6c,
+  0x65, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x73, 0x75, 0x62, 0x6d, 0x6f,
+  0x64, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x22, 0x3b, 0x6c, 0x65, 0x61, 0x66,
+  0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x7b, 0x74, 0x79, 0x70, 0x65, 0x20,
+  0x79, 0x61, 0x6e, 0x67, 0x3a, 0x79, 0x61, 0x6e, 0x67, 0x2d, 0x69, 0x64,
+  0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x3b, 0x6d, 0x61, 0x6e,
+  0x64, 0x61, 0x74, 0x6f, 0x72, 0x79, 0x20, 0x74, 0x72, 0x75, 0x65, 0x3b,
+  0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x20,
+  0x22, 0x54, 0x68, 0x65, 0x20, 0x59, 0x41, 0x4e, 0x47, 0x20, 0x6d, 0x6f,
+  0x64, 0x75, 0x6c, 0x65, 0x20, 0x6f, 0x72, 0x20, 0x73, 0x75, 0x62, 0x6d,
+  0x6f, 0x64, 0x75, 0x6c, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x2e, 0x22,
+  0x3b, 0x7d, 0x6c, 0x65, 0x61, 0x66, 0x20, 0x72, 0x65, 0x76, 0x69, 0x73,
+  0x69, 0x6f, 0x6e, 0x20, 0x7b, 0x74, 0x79, 0x70, 0x65, 0x20, 0x72, 0x65,
+  0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2d, 0x69, 0x64, 0x65, 0x6e, 0x74,
+  0x69, 0x66, 0x69, 0x65, 0x72, 0x3b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69,
+  0x70, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x22, 0x54, 0x68, 0x65, 0x20, 0x59,
+  0x41, 0x4e, 0x47, 0x20, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x20, 0x6f,
+  0x72, 0x20, 0x73, 0x75, 0x62, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x20,
+  0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x64, 0x61, 0x74,
+  0x65, 0x2e, 0x20, 0x20, 0x49, 0x66, 0x20, 0x6e, 0x6f, 0x20, 0x72, 0x65,
+  0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x65,
+  0x6d, 0x65, 0x6e, 0x74, 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x65, 0x73,
+  0x65, 0x6e, 0x74, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x59,
+  0x41, 0x4e, 0x47, 0x20, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x20, 0x6f,
+  0x72, 0x20, 0x73, 0x75, 0x62, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x2c,
+  0x20, 0x74, 0x68, 0x69, 0x73, 0x0a, 0x6c, 0x65, 0x61, 0x66, 0x20, 0x69,
+  0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e,
+  0x74, 0x69, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x22, 0x3b, 0x7d, 0x7d, 0x67,
+  0x72, 0x6f, 0x75, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x6c, 0x6f, 0x63, 0x61,
+  0x74, 0x69, 0x6f, 0x6e, 0x2d, 0x6c, 0x65, 0x61, 0x66, 0x2d, 0x6c, 0x69,
+  0x73, 0x74, 0x20, 0x7b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74,
+  0x69, 0x6f, 0x6e, 0x0a, 0x22, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x20,
+  0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6c, 0x65, 0x61,
+  0x66, 0x20, 0x6c, 0x69, 0x73, 0x74, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d,
+  0x65, 0x74, 0x65, 0x72, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6d, 0x6f, 0x64,
+  0x75, 0x6c, 0x65, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x0a, 0x73, 0x75, 0x62,
+  0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x22, 0x3b, 0x6c, 0x65,
+  0x61, 0x66, 0x2d, 0x6c, 0x69, 0x73, 0x74, 0x20, 0x6c, 0x6f, 0x63, 0x61,
+  0x74, 0x69, 0x6f, 0x6e, 0x20, 0x7b, 0x74, 0x79, 0x70, 0x65, 0x20, 0x69,
+  0x6e, 0x65, 0x74, 0x3a, 0x75, 0x72, 0x69, 0x3b, 0x64, 0x65, 0x73, 0x63,
+  0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x22, 0x43, 0x6f, 0x6e,
+  0x74, 0x61, 0x69, 0x6e, 0x73, 0x20, 0x61, 0x20, 0x55, 0x52, 0x4c, 0x20,
+  0x74, 0x68, 0x61, 0x74, 0x20, 0x72, 0x65, 0x70, 0x72, 0x65, 0x73, 0x65,
+  0x6e, 0x74, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x59, 0x41, 0x4e, 0x47,
+  0x20, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x0a, 0x72, 0x65, 0x73, 0x6f,
+  0x75, 0x72, 0x63, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x69,
+  0x73, 0x20, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x20, 0x6f, 0x72, 0x20,
+  0x73, 0x75, 0x62, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x2e, 0x0a, 0x0a,
+  0x54, 0x68, 0x69, 0x73, 0x20, 0x6c, 0x65, 0x61, 0x66, 0x20, 0x77, 0x69,
+  0x6c, 0x6c, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x62, 0x65, 0x20, 0x70,
+  0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x20, 0x69, 0x66, 0x20, 0x74, 0x68,
+  0x65, 0x72, 0x65, 0x20, 0x69, 0x73, 0x20, 0x61, 0x20, 0x55, 0x52, 0x4c,
+  0x0a, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x66,
+  0x6f, 0x72, 0x20, 0x72, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x61, 0x6c,
+  0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x63, 0x68, 0x65,
+  0x6d, 0x61, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20,
+  0x65, 0x6e, 0x74, 0x72, 0x79, 0x2e, 0x22, 0x3b, 0x7d, 0x7d, 0x67, 0x72,
+  0x6f, 0x75, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x69, 0x6d, 0x70, 0x6c, 0x65,
+  0x6d, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2d, 0x70, 0x61,
+  0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x20, 0x7b, 0x64, 0x65,
+  0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x22, 0x50,
+  0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x20, 0x66, 0x6f,
+  0x72, 0x20, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, 0x69, 0x6e, 0x67,
+  0x20, 0x74, 0x68, 0x65, 0x20, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x6d, 0x65,
+  0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x61,
+  0x20, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x2e, 0x22, 0x3b, 0x6c, 0x69,
+  0x73, 0x74, 0x20, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x20, 0x7b,
+  0x6b, 0x65, 0x79, 0x20, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3b, 0x64,
+  0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x22,
+  0x4c, 0x69, 0x73, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x59, 0x41, 0x4e, 0x47,
+  0x20, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x20, 0x6e, 0x61, 0x6d,
+  0x65, 0x73, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x69, 0x73,
+  0x20, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x20, 0x74, 0x68, 0x61, 0x74,
+  0x20, 0x61, 0x72, 0x65, 0x0a, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74,
+  0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65,
+  0x72, 0x76, 0x65, 0x72, 0x2c, 0x20, 0x72, 0x65, 0x67, 0x61, 0x72, 0x64,
+  0x6c, 0x65, 0x73, 0x73, 0x20, 0x77, 0x68, 0x65, 0x74, 0x68, 0x65, 0x72,
+  0x20, 0x74, 0x68, 0x65, 0x79, 0x20, 0x61, 0x72, 0x65, 0x20, 0x64, 0x65,
+  0x66, 0x69, 0x6e, 0x65, 0x64, 0x0a, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65,
+  0x20, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x20, 0x6f, 0x72, 0x20, 0x61,
+  0x6e, 0x79, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x64, 0x20,
+  0x73, 0x75, 0x62, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x2e, 0x22, 0x3b,
+  0x6c, 0x65, 0x61, 0x66, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x7b, 0x74,
+  0x79, 0x70, 0x65, 0x20, 0x79, 0x61, 0x6e, 0x67, 0x3a, 0x79, 0x61, 0x6e,
+  0x67, 0x2d, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72,
+  0x3b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e,
+  0x20, 0x22, 0x41, 0x20, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x20,
+  0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x62, 0x79,
+  0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e,
+  0x22, 0x3b, 0x7d, 0x7d, 0x6c, 0x69, 0x73, 0x74, 0x20, 0x64, 0x65, 0x76,
+  0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x7b, 0x6b, 0x65, 0x79, 0x20,
+  0x22, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x22, 0x3b, 0x64, 0x65, 0x73,
+  0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x22, 0x4c, 0x69,
+  0x73, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x59, 0x41, 0x4e, 0x47, 0x20, 0x64,
+  0x65, 0x76, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6d, 0x6f, 0x64,
+  0x75, 0x6c, 0x65, 0x73, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x62, 0x79,
+  0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72,
+  0x20, 0x74, 0x6f, 0x20, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x0a, 0x74,
+  0x68, 0x65, 0x20, 0x63, 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e,
+  0x63, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x6f,
+  0x64, 0x75, 0x6c, 0x65, 0x20, 0x61, 0x73, 0x73, 0x6f, 0x63, 0x69, 0x61,
+  0x74, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x69,
+  0x73, 0x20, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x2e, 0x0a, 0x4e, 0x6f, 0x74,
+  0x65, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73,
+  0x61, 0x6d, 0x65, 0x20, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x20, 0x63,
+  0x61, 0x6e, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x66,
+  0x6f, 0x72, 0x20, 0x64, 0x65, 0x76, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+  0x73, 0x20, 0x66, 0x6f, 0x72, 0x0a, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70,
+  0x6c, 0x65, 0x20, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x73, 0x2c, 0x20,
+  0x73, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20,
+  0x65, 0x6e, 0x74, 0x72, 0x79, 0x20, 0x4d, 0x41, 0x59, 0x20, 0x61, 0x70,
+  0x70, 0x65, 0x61, 0x72, 0x20, 0x77, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x0a,
+  0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x20, 0x27, 0x6d, 0x6f,
+  0x64, 0x75, 0x6c, 0x65, 0x27, 0x20, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65,
+  0x73, 0x2e, 0x22, 0x3b, 0x6c, 0x65, 0x61, 0x66, 0x20, 0x6d, 0x6f, 0x64,
+  0x75, 0x6c, 0x65, 0x20, 0x7b, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6c, 0x65,
+  0x61, 0x66, 0x72, 0x65, 0x66, 0x20, 0x7b, 0x70, 0x61, 0x74, 0x68, 0x20,
+  0x22, 0x2e, 0x2e, 0x2f, 0x2e, 0x2e, 0x2f, 0x2e, 0x2e, 0x2f, 0x6d, 0x6f,
+  0x64, 0x75, 0x6c, 0x65, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3b, 0x7d,
+  0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x0a,
+  0x22, 0x41, 0x20, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x20, 0x74, 0x68,
+  0x61, 0x74, 0x20, 0x64, 0x65, 0x76, 0x69, 0x61, 0x74, 0x65, 0x73, 0x20,
+  0x74, 0x68, 0x65, 0x20, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x20, 0x61,
+  0x73, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x65, 0x64, 0x20, 0x77, 0x69,
+  0x74, 0x68, 0x20, 0x74, 0x68, 0x69, 0x73, 0x0a, 0x65, 0x6e, 0x74, 0x72,
+  0x79, 0x2e, 0x22, 0x3b, 0x7d, 0x7d, 0x7d, 0x67, 0x72, 0x6f, 0x75, 0x70,
+  0x69, 0x6e, 0x67, 0x20, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x2d, 0x73,
+  0x65, 0x74, 0x2d, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72,
+  0x73, 0x20, 0x7b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69,
+  0x6f, 0x6e, 0x20, 0x22, 0x41, 0x20, 0x73, 0x65, 0x74, 0x20, 0x6f, 0x66,
+  0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x20,
+  0x74, 0x68, 0x61, 0x74, 0x20, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x62,
+  0x65, 0x20, 0x61, 0x20, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x20, 0x73,
+  0x65, 0x74, 0x2e, 0x22, 0x3b, 0x6c, 0x65, 0x61, 0x66, 0x20, 0x6e, 0x61,
+  0x6d, 0x65, 0x20, 0x7b, 0x74, 0x79, 0x70, 0x65, 0x20, 0x73, 0x74, 0x72,
+  0x69, 0x6e, 0x67, 0x3b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74,
+  0x69, 0x6f, 0x6e, 0x20, 0x22, 0x41, 0x6e, 0x20, 0x61, 0x72, 0x62, 0x69,
+  0x74, 0x72, 0x61, 0x72, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x6f,
+  0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65,
+  0x20, 0x73, 0x65, 0x74, 0x2e, 0x22, 0x3b, 0x7d, 0x6c, 0x65, 0x61, 0x66,
+  0x20, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x20, 0x7b, 0x74,
+  0x79, 0x70, 0x65, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3b, 0x63,
+  0x6f, 0x6e, 0x66, 0x69, 0x67, 0x20, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x3b,
+  0x6d, 0x61, 0x6e, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x79, 0x20, 0x74, 0x72,
+  0x75, 0x65, 0x3b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69,
+  0x6f, 0x6e, 0x0a, 0x22, 0x41, 0x20, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72,
+  0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x20, 0x63,
+  0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x74,
+  0x68, 0x65, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x20,
+  0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x6f, 0x64, 0x75, 0x6c,
+  0x65, 0x0a, 0x73, 0x65, 0x74, 0x2e, 0x20, 0x20, 0x54, 0x68, 0x65, 0x20,
+  0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x20, 0x4d, 0x55, 0x53, 0x54, 0x20,
+  0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x76,
+  0x61, 0x6c, 0x75, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x69, 0x73,
+  0x20, 0x6c, 0x65, 0x61, 0x66, 0x20, 0x69, 0x66, 0x20, 0x74, 0x68, 0x65,
+  0x0a, 0x69, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+  0x20, 0x72, 0x65, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x65, 0x64,
+  0x20, 0x62, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x6f, 0x64, 0x75,
+  0x6c, 0x65, 0x20, 0x73, 0x65, 0x74, 0x2c, 0x20, 0x65, 0x78, 0x63, 0x65,
+  0x70, 0x74, 0x0a, 0x27, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d,
+  0x27, 0x2c, 0x20, 0x68, 0x61, 0x73, 0x20, 0x63, 0x68, 0x61, 0x6e, 0x67,
+  0x65, 0x64, 0x2e, 0x22, 0x3b, 0x7d, 0x6c, 0x69, 0x73, 0x74, 0x20, 0x6d,
+  0x6f, 0x64, 0x75, 0x6c, 0x65, 0x20, 0x7b, 0x6b, 0x65, 0x79, 0x20, 0x22,
+  0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69,
+  0x70, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x22, 0x41, 0x6e, 0x20, 0x65, 0x6e,
+  0x74, 0x72, 0x79, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20,
+  0x6c, 0x69, 0x73, 0x74, 0x20, 0x72, 0x65, 0x70, 0x72, 0x65, 0x73, 0x65,
+  0x6e, 0x74, 0x73, 0x20, 0x61, 0x20, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65,
+  0x20, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x65, 0x64,
+  0x20, 0x62, 0x79, 0x20, 0x74, 0x68, 0x65, 0x0a, 0x73, 0x65, 0x72, 0x76,
+  0x65, 0x72, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x61, 0x20, 0x70, 0x61,
+  0x72, 0x74, 0x69, 0x63, 0x75, 0x6c, 0x61, 0x72, 0x20, 0x73, 0x65, 0x74,
+  0x20, 0x6f, 0x66, 0x20, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65,
+  0x64, 0x20, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x20, 0x61,
+  0x6e, 0x64, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+  0x73, 0x2e, 0x0a, 0x0a, 0x54, 0x68, 0x65, 0x20, 0x73, 0x65, 0x72, 0x76,
+  0x65, 0x72, 0x20, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74,
+  0x73, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6f, 0x72, 0x20, 0x6d, 0x6f, 0x72,
+  0x65, 0x20, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2d, 0x61,
+  0x63, 0x63, 0x65, 0x73, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x0a, 0x6f, 0x62,
+  0x6a, 0x65, 0x63, 0x74, 0x73, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65,
+  0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x59, 0x41, 0x4e,
+  0x47, 0x20, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x20, 0x69, 0x64, 0x65,
+  0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74,
+  0x68, 0x69, 0x73, 0x20, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x2e, 0x0a, 0x54,
+  0x68, 0x69, 0x73, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x73,
+  0x20, 0x64, 0x65, 0x76, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x73,
+  0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x64, 0x65,
+  0x66, 0x69, 0x6e, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65,
+  0x20, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x2e, 0x22, 0x3b, 0x75, 0x73,
+  0x65, 0x73, 0x20, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x2d, 0x69, 0x64,
+  0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+  0x2d, 0x6c, 0x65, 0x61, 0x66, 0x73, 0x3b, 0x6c, 0x65, 0x61, 0x66, 0x20,
+  0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x20, 0x7b, 0x74,
+  0x79, 0x70, 0x65, 0x20, 0x69, 0x6e, 0x65, 0x74, 0x3a, 0x75, 0x72, 0x69,
+  0x3b, 0x6d, 0x61, 0x6e, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x79, 0x20, 0x74,
+  0x72, 0x75, 0x65, 0x3b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74,
+  0x69, 0x6f, 0x6e, 0x20, 0x22, 0x54, 0x68, 0x65, 0x20, 0x58, 0x4d, 0x4c,
+  0x20, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x20, 0x69,
+  0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x20, 0x66, 0x6f,
+  0x72, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x6d, 0x6f, 0x64, 0x75, 0x6c,
+  0x65, 0x2e, 0x22, 0x3b, 0x7d, 0x75, 0x73, 0x65, 0x73, 0x20, 0x6c, 0x6f,
+  0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2d, 0x6c, 0x65, 0x61, 0x66, 0x2d,
+  0x6c, 0x69, 0x73, 0x74, 0x3b, 0x6c, 0x69, 0x73, 0x74, 0x20, 0x73, 0x75,
+  0x62, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x20, 0x7b, 0x6b, 0x65, 0x79,
+  0x20, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3b, 0x64, 0x65, 0x73, 0x63,
+  0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x22, 0x45, 0x61, 0x63,
+  0x68, 0x20, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x20, 0x72, 0x65, 0x70, 0x72,
+  0x65, 0x73, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x73,
+  0x75, 0x62, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x20, 0x77, 0x69, 0x74,
+  0x68, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x0a, 0x70, 0x61, 0x72, 0x65,
+  0x6e, 0x74, 0x20, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x2e, 0x22, 0x3b,
+  0x75, 0x73, 0x65, 0x73, 0x20, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x2d,
+  0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69,
+  0x6f, 0x6e, 0x2d, 0x6c, 0x65, 0x61, 0x66, 0x73, 0x3b, 0x75, 0x73, 0x65,
+  0x73, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2d, 0x6c,
+  0x65, 0x61, 0x66, 0x2d, 0x6c, 0x69, 0x73, 0x74, 0x3b, 0x7d, 0x75, 0x73,
+  0x65, 0x73, 0x20, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74,
+  0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2d, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65,
+  0x74, 0x65, 0x72, 0x73, 0x3b, 0x7d, 0x6c, 0x69, 0x73, 0x74, 0x20, 0x69,
+  0x6d, 0x70, 0x6f, 0x72, 0x74, 0x2d, 0x6f, 0x6e, 0x6c, 0x79, 0x2d, 0x6d,
+  0x6f, 0x64, 0x75, 0x6c, 0x65, 0x20, 0x7b, 0x6b, 0x65, 0x79, 0x20, 0x22,
+  0x6e, 0x61, 0x6d, 0x65, 0x20, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f,
+  0x6e, 0x22, 0x3b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69,
+  0x6f, 0x6e, 0x0a, 0x22, 0x41, 0x6e, 0x20, 0x65, 0x6e, 0x74, 0x72, 0x79,
+  0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x6c, 0x69, 0x73,
+  0x74, 0x20, 0x69, 0x6e, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x20,
+  0x74, 0x68, 0x61, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x72,
+  0x76, 0x65, 0x72, 0x20, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x0a,
+  0x72, 0x65, 0x75, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x64, 0x65, 0x66,
+  0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x66, 0x72, 0x6f,
+  0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66,
+  0x69, 0x65, 0x64, 0x20, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e,
+  0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x0a, 0x6d, 0x6f, 0x64, 0x75,
+  0x6c, 0x65, 0x2c, 0x20, 0x62, 0x75, 0x74, 0x20, 0x64, 0x6f, 0x65, 0x73,
+  0x20, 0x6e, 0x6f, 0x74, 0x20, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x6d, 0x65,
+  0x6e, 0x74, 0x20, 0x61, 0x6e, 0x79, 0x20, 0x70, 0x72, 0x6f, 0x74, 0x6f,
+  0x63, 0x6f, 0x6c, 0x20, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x69, 0x62,
+  0x6c, 0x65, 0x0a, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x20, 0x66,
+  0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x72, 0x65, 0x76,
+  0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x0a, 0x0a, 0x4d, 0x75, 0x6c, 0x74,
+  0x69, 0x70, 0x6c, 0x65, 0x20, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73,
+  0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d,
+  0x65, 0x20, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x20, 0x6e, 0x61, 0x6d,
+  0x65, 0x20, 0x4d, 0x41, 0x59, 0x20, 0x65, 0x78, 0x69, 0x73, 0x74, 0x2e,
+  0x20, 0x20, 0x54, 0x68, 0x69, 0x73, 0x0a, 0x63, 0x61, 0x6e, 0x20, 0x6f,
+  0x63, 0x63, 0x75, 0x72, 0x20, 0x69, 0x66, 0x20, 0x6d, 0x75, 0x6c, 0x74,
+  0x69, 0x70, 0x6c, 0x65, 0x20, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x73,
+  0x20, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20,
+  0x73, 0x61, 0x6d, 0x65, 0x20, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x2c,
+  0x20, 0x62, 0x75, 0x74, 0x0a, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x79,
+  0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x72,
+  0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2d, 0x64, 0x61, 0x74, 0x65,
+  0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x69, 0x6d, 0x70,
+  0x6f, 0x72, 0x74, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e,
+  0x74, 0x73, 0x2e, 0x22, 0x3b, 0x6c, 0x65, 0x61, 0x66, 0x20, 0x6e, 0x61,
+  0x6d, 0x65, 0x20, 0x7b, 0x74, 0x79, 0x70, 0x65, 0x20, 0x79, 0x61, 0x6e,
+  0x67, 0x3a, 0x79, 0x61, 0x6e, 0x67, 0x2d, 0x69, 0x64, 0x65, 0x6e, 0x74,
+  0x69, 0x66, 0x69, 0x65, 0x72, 0x3b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69,
+  0x70, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x22, 0x54, 0x68, 0x65, 0x20, 0x59,
+  0x41, 0x4e, 0x47, 0x20, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x20, 0x6e,
+  0x61, 0x6d, 0x65, 0x2e, 0x22, 0x3b, 0x7d, 0x6c, 0x65, 0x61, 0x66, 0x20,
+  0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x7b, 0x74, 0x79,
+  0x70, 0x65, 0x20, 0x75, 0x6e, 0x69, 0x6f, 0x6e, 0x20, 0x7b, 0x74, 0x79,
+  0x70, 0x65, 0x20, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2d,
+  0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x3b, 0x74,
+  0x79, 0x70, 0x65, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x7b,
+  0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x30, 0x3b, 0x7d, 0x7d, 0x64,
+  0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x22,
+  0x54, 0x68, 0x65, 0x20, 0x59, 0x41, 0x4e, 0x47, 0x20, 0x6d, 0x6f, 0x64,
+  0x75, 0x6c, 0x65, 0x20, 0x6f, 0x72, 0x20, 0x72, 0x65, 0x76, 0x69, 0x73,
+  0x69, 0x6f, 0x6e, 0x20, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x0a, 0x41, 0x20,
+  0x7a, 0x65, 0x72, 0x6f, 0x2d, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20,
+  0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x69, 0x73, 0x20, 0x75, 0x73,
+  0x65, 0x64, 0x20, 0x69, 0x66, 0x20, 0x6e, 0x6f, 0x20, 0x72, 0x65, 0x76,
+  0x69, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x6d,
+  0x65, 0x6e, 0x74, 0x0a, 0x69, 0x73, 0x20, 0x70, 0x72, 0x65, 0x73, 0x65,
+  0x6e, 0x74, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x59, 0x41,
+  0x4e, 0x47, 0x20, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x2e, 0x22, 0x3b,
+  0x7d, 0x6c, 0x65, 0x61, 0x66, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70,
+  0x61, 0x63, 0x65, 0x20, 0x7b, 0x74, 0x79, 0x70, 0x65, 0x20, 0x69, 0x6e,
+  0x65, 0x74, 0x3a, 0x75, 0x72, 0x69, 0x3b, 0x6d, 0x61, 0x6e, 0x64, 0x61,
+  0x74, 0x6f, 0x72, 0x79, 0x20, 0x74, 0x72, 0x75, 0x65, 0x3b, 0x64, 0x65,
+  0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x22, 0x54,
+  0x68, 0x65, 0x20, 0x58, 0x4d, 0x4c, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x73,
+  0x70, 0x61, 0x63, 0x65, 0x20, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66,
+  0x69, 0x65, 0x72, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x69, 0x73,
+  0x20, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x2e, 0x22, 0x3b, 0x7d, 0x75,
+  0x73, 0x65, 0x73, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+  0x2d, 0x6c, 0x65, 0x61, 0x66, 0x2d, 0x6c, 0x69, 0x73, 0x74, 0x3b, 0x6c,
+  0x69, 0x73, 0x74, 0x20, 0x73, 0x75, 0x62, 0x6d, 0x6f, 0x64, 0x75, 0x6c,
+  0x65, 0x20, 0x7b, 0x6b, 0x65, 0x79, 0x20, 0x22, 0x6e, 0x61, 0x6d, 0x65,
+  0x22, 0x3b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f,
+  0x6e, 0x0a, 0x22, 0x45, 0x61, 0x63, 0x68, 0x20, 0x65, 0x6e, 0x74, 0x72,
+  0x79, 0x20, 0x72, 0x65, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x73,
+  0x20, 0x6f, 0x6e, 0x65, 0x20, 0x73, 0x75, 0x62, 0x6d, 0x6f, 0x64, 0x75,
+  0x6c, 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x20, 0x74, 0x68,
+  0x65, 0x0a, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x6d, 0x6f, 0x64,
+  0x75, 0x6c, 0x65, 0x2e, 0x22, 0x3b, 0x75, 0x73, 0x65, 0x73, 0x20, 0x6d,
+  0x6f, 0x64, 0x75, 0x6c, 0x65, 0x2d, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69,
+  0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2d, 0x6c, 0x65, 0x61,
+  0x66, 0x73, 0x3b, 0x75, 0x73, 0x65, 0x73, 0x20, 0x6c, 0x6f, 0x63, 0x61,
+  0x74, 0x69, 0x6f, 0x6e, 0x2d, 0x6c, 0x65, 0x61, 0x66, 0x2d, 0x6c, 0x69,
+  0x73, 0x74, 0x3b, 0x7d, 0x7d, 0x7d, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x69,
+  0x6e, 0x67, 0x20, 0x79, 0x61, 0x6e, 0x67, 0x2d, 0x6c, 0x69, 0x62, 0x72,
+  0x61, 0x72, 0x79, 0x2d, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65,
+  0x72, 0x73, 0x20, 0x7b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74,
+  0x69, 0x6f, 0x6e, 0x0a, 0x22, 0x54, 0x68, 0x65, 0x20, 0x59, 0x41, 0x4e,
+  0x47, 0x20, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x20, 0x64, 0x61,
+  0x74, 0x61, 0x20, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65,
+  0x20, 0x69, 0x73, 0x20, 0x72, 0x65, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e,
+  0x74, 0x65, 0x64, 0x20, 0x61, 0x73, 0x20, 0x61, 0x20, 0x67, 0x72, 0x6f,
+  0x75, 0x70, 0x69, 0x6e, 0x67, 0x0a, 0x73, 0x6f, 0x20, 0x69, 0x74, 0x20,
+  0x63, 0x61, 0x6e, 0x20, 0x62, 0x65, 0x20, 0x72, 0x65, 0x75, 0x73, 0x65,
+  0x64, 0x20, 0x69, 0x6e, 0x20, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75,
+  0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x61, 0x6e,
+  0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f,
+  0x72, 0x69, 0x6e, 0x67, 0x0a, 0x64, 0x61, 0x74, 0x61, 0x20, 0x73, 0x74,
+  0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x22, 0x3b, 0x6c, 0x69,
+  0x73, 0x74, 0x20, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x2d, 0x73, 0x65,
+  0x74, 0x20, 0x7b, 0x6b, 0x65, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3b,
+  0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x20,
+  0x22, 0x41, 0x20, 0x73, 0x65, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x6f,
+  0x64, 0x75, 0x6c, 0x65, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d,
+  0x61, 0x79, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x62,
+  0x79, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6f, 0x72, 0x20, 0x6d, 0x6f, 0x72,
+  0x65, 0x20, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x73, 0x2e, 0x22, 0x3b,
+  0x75, 0x73, 0x65, 0x73, 0x20, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x2d,
+  0x73, 0x65, 0x74, 0x2d, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65,
+  0x72, 0x73, 0x3b, 0x7d, 0x6c, 0x69, 0x73, 0x74, 0x20, 0x73, 0x63, 0x68,
+  0x65, 0x6d, 0x61, 0x20, 0x7b, 0x6b, 0x65, 0x79, 0x20, 0x22, 0x6e, 0x61,
+  0x6d, 0x65, 0x22, 0x3b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74,
+  0x69, 0x6f, 0x6e, 0x0a, 0x22, 0x41, 0x20, 0x64, 0x61, 0x74, 0x61, 0x73,
+  0x74, 0x6f, 0x72, 0x65, 0x20, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x20,
+  0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, 0x61, 0x79, 0x20, 0x62, 0x65, 0x20,
+  0x75, 0x73, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x6f, 0x6e, 0x65, 0x20,
+  0x6f, 0x72, 0x20, 0x6d, 0x6f, 0x72, 0x65, 0x0a, 0x64, 0x61, 0x74, 0x61,
+  0x73, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x2e, 0x22, 0x3b, 0x6c, 0x65, 0x61,
+  0x66, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x7b, 0x74, 0x79, 0x70, 0x65,
+  0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3b, 0x64, 0x65, 0x73, 0x63,
+  0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x22, 0x41, 0x6e, 0x20,
+  0x61, 0x72, 0x62, 0x69, 0x74, 0x72, 0x61, 0x72, 0x79, 0x20, 0x6e, 0x61,
+  0x6d, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x63,
+  0x68, 0x65, 0x6d, 0x61, 0x2e, 0x22, 0x3b, 0x7d, 0x6c, 0x65, 0x61, 0x66,
+  0x20, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x20, 0x7b, 0x74,
+  0x79, 0x70, 0x65, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3b, 0x63,
+  0x6f, 0x6e, 0x66, 0x69, 0x67, 0x20, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x3b,
+  0x6d, 0x61, 0x6e, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x79, 0x20, 0x74, 0x72,
+  0x75, 0x65, 0x3b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69,
+  0x6f, 0x6e, 0x0a, 0x22, 0x41, 0x20, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72,
+  0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x20, 0x63,
+  0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x74,
+  0x68, 0x65, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x20,
+  0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x63, 0x68, 0x65, 0x6d,
+  0x61, 0x2e, 0x0a, 0x54, 0x68, 0x65, 0x20, 0x73, 0x65, 0x72, 0x76, 0x65,
+  0x72, 0x20, 0x4d, 0x55, 0x53, 0x54, 0x20, 0x63, 0x68, 0x61, 0x6e, 0x67,
+  0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20,
+  0x6f, 0x66, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x6c, 0x65, 0x61, 0x66,
+  0x20, 0x69, 0x66, 0x20, 0x74, 0x68, 0x65, 0x0a, 0x69, 0x6e, 0x66, 0x6f,
+  0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x72, 0x65, 0x70, 0x72,
+  0x65, 0x73, 0x65, 0x6e, 0x74, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x74,
+  0x68, 0x65, 0x20, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2c, 0x20, 0x65,
+  0x78, 0x63, 0x65, 0x70, 0x74, 0x20, 0x27, 0x63, 0x68, 0x65, 0x63, 0x6b,
+  0x73, 0x75, 0x6d, 0x27, 0x2c, 0x0a, 0x68, 0x61, 0x73, 0x20, 0x63, 0x68,
+  0x61, 0x6e, 0x67, 0x65, 0x64, 0x2e, 0x22, 0x3b, 0x7d, 0x6c, 0x65, 0x61,
+  0x66, 0x2d, 0x6c, 0x69, 0x73, 0x74, 0x20, 0x6d, 0x6f, 0x64, 0x75, 0x6c,
+  0x65, 0x2d, 0x73, 0x65, 0x74, 0x20, 0x7b, 0x74, 0x79, 0x70, 0x65, 0x20,
+  0x6c, 0x65, 0x61, 0x66, 0x72, 0x65, 0x66, 0x20, 0x7b, 0x70, 0x61, 0x74,
+  0x68, 0x20, 0x22, 0x2e, 0x2e, 0x2f, 0x2e, 0x2e, 0x2f, 0x6d, 0x6f, 0x64,
+  0x75, 0x6c, 0x65, 0x2d, 0x73, 0x65, 0x74, 0x2f, 0x6e, 0x61, 0x6d, 0x65,
+  0x22, 0x3b, 0x7d, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69,
+  0x6f, 0x6e, 0x20, 0x22, 0x41, 0x20, 0x73, 0x65, 0x74, 0x20, 0x6f, 0x66,
+  0x20, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x2d, 0x73, 0x65, 0x74, 0x73,
+  0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x61, 0x72, 0x65, 0x20, 0x69, 0x6e,
+  0x63, 0x6c, 0x75, 0x64, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68,
+  0x69, 0x73, 0x20, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x22, 0x3b,
+  0x7d, 0x7d, 0x6c, 0x69, 0x73, 0x74, 0x20, 0x64, 0x61, 0x74, 0x61, 0x73,
+  0x74, 0x6f, 0x72, 0x65, 0x20, 0x7b, 0x6b, 0x65, 0x79, 0x20, 0x22, 0x6e,
+  0x61, 0x6d, 0x65, 0x22, 0x3b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70,
+  0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x22, 0x41, 0x20, 0x64, 0x61, 0x74, 0x61,
+  0x73, 0x74, 0x6f, 0x72, 0x65, 0x20, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72,
+  0x74, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20,
+  0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x0a, 0x0a, 0x45, 0x61, 0x63,
+  0x68, 0x20, 0x64, 0x61, 0x74, 0x61, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x20,
+  0x69, 0x6e, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x20, 0x77, 0x68,
+  0x69, 0x63, 0x68, 0x20, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x20, 0x69,
+  0x74, 0x20, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x0a,
+  0x0a, 0x54, 0x68, 0x65, 0x20, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x20,
+  0x4d, 0x55, 0x53, 0x54, 0x20, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74,
+  0x69, 0x61, 0x74, 0x65, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x65, 0x6e, 0x74,
+  0x72, 0x79, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x6c,
+  0x69, 0x73, 0x74, 0x20, 0x70, 0x65, 0x72, 0x0a, 0x73, 0x70, 0x65, 0x63,
+  0x69, 0x66, 0x69, 0x63, 0x20, 0x64, 0x61, 0x74, 0x61, 0x73, 0x74, 0x6f,
+  0x72, 0x65, 0x20, 0x69, 0x74, 0x20, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72,
+  0x74, 0x73, 0x2e, 0x0a, 0x0a, 0x45, 0x61, 0x63, 0x68, 0x20, 0x64, 0x61,
+  0x74, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x20, 0x65, 0x6e, 0x74, 0x72, 0x79,
+  0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61,
+  0x6d, 0x65, 0x20, 0x64, 0x61, 0x74, 0x61, 0x73, 0x74, 0x6f, 0x72, 0x65,
+  0x20, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x20, 0x53, 0x48, 0x4f, 0x55,
+  0x4c, 0x44, 0x0a, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65,
+  0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x73, 0x63,
+  0x68, 0x65, 0x6d, 0x61, 0x2e, 0x22, 0x3b, 0x6c, 0x65, 0x61, 0x66, 0x20,
+  0x6e, 0x61, 0x6d, 0x65, 0x20, 0x7b, 0x74, 0x79, 0x70, 0x65, 0x20, 0x69,
+  0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x72, 0x65, 0x66, 0x20, 0x7b,
+  0x62, 0x61, 0x73, 0x65, 0x20, 0x64, 0x73, 0x3a, 0x64, 0x61, 0x74, 0x61,
+  0x73, 0x74, 0x6f, 0x72, 0x65, 0x3b, 0x7d, 0x64, 0x65, 0x73, 0x63, 0x72,
+  0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x22, 0x54, 0x68, 0x65, 0x20,
+  0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x20, 0x6f, 0x66, 0x20,
+  0x74, 0x68, 0x65, 0x20, 0x64, 0x61, 0x74, 0x61, 0x73, 0x74, 0x6f, 0x72,
+  0x65, 0x2e, 0x22, 0x3b, 0x7d, 0x6c, 0x65, 0x61, 0x66, 0x20, 0x73, 0x63,
+  0x68, 0x65, 0x6d, 0x61, 0x20, 0x7b, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6c,
+  0x65, 0x61, 0x66, 0x72, 0x65, 0x66, 0x20, 0x7b, 0x70, 0x61, 0x74, 0x68,
+  0x20, 0x22, 0x2e, 0x2e, 0x2f, 0x2e, 0x2e, 0x2f, 0x73, 0x63, 0x68, 0x65,
+  0x6d, 0x61, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3b, 0x7d, 0x6d, 0x61,
+  0x6e, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x79, 0x20, 0x74, 0x72, 0x75, 0x65,
+  0x3b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e,
+  0x20, 0x22, 0x41, 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63,
+  0x65, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x63, 0x68,
+  0x65, 0x6d, 0x61, 0x20, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65,
+  0x64, 0x20, 0x62, 0x79, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x64, 0x61,
+  0x74, 0x61, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x22, 0x3b, 0x7d, 0x7d,
+  0x7d, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x20, 0x79,
+  0x61, 0x6e, 0x67, 0x2d, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x20,
+  0x7b, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x20, 0x66, 0x61, 0x6c, 0x73,
+  0x65, 0x3b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f,
+  0x6e, 0x0a, 0x22, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72,
+  0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x69, 0x6e, 0x67, 0x20, 0x61,
+  0x6c, 0x6c, 0x20, 0x74, 0x68, 0x65, 0x20, 0x59, 0x41, 0x4e, 0x47, 0x20,
+  0x6d, 0x65, 0x74, 0x61, 0x20, 0x69, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61,
+  0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x0a, 0x73, 0x65, 0x72,
+  0x76, 0x65, 0x72, 0x20, 0x70, 0x6f, 0x73, 0x73, 0x65, 0x73, 0x73, 0x65,
+  0x73, 0x2e, 0x22, 0x3b, 0x75, 0x73, 0x65, 0x73, 0x20, 0x79, 0x61, 0x6e,
+  0x67, 0x2d, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x2d, 0x70, 0x61,
+  0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x3b, 0x6c, 0x65, 0x61,
+  0x66, 0x20, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x20, 0x7b,
+  0x74, 0x79, 0x70, 0x65, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3b,
+  0x6d, 0x61, 0x6e, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x79, 0x20, 0x74, 0x72,
+  0x75, 0x65, 0x3b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69,
+  0x6f, 0x6e, 0x0a, 0x22, 0x41, 0x20, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72,
+  0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x20, 0x63,
+  0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x74,
+  0x68, 0x65, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x20,
+  0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x0a, 0x27, 0x79, 0x61, 0x6e, 0x67,
+  0x2d, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x27, 0x20, 0x74, 0x72,
+  0x65, 0x65, 0x2e, 0x20, 0x20, 0x54, 0x68, 0x65, 0x20, 0x73, 0x65, 0x72,
+  0x76, 0x65, 0x72, 0x20, 0x4d, 0x55, 0x53, 0x54, 0x20, 0x63, 0x68, 0x61,
+  0x6e, 0x67, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x76, 0x61, 0x6c, 0x75,
+  0x65, 0x20, 0x6f, 0x66, 0x0a, 0x74, 0x68, 0x69, 0x73, 0x20, 0x6c, 0x65,
+  0x61, 0x66, 0x20, 0x69, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x69, 0x6e,
+  0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x72, 0x65,
+  0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x65, 0x64, 0x20, 0x62, 0x79,
+  0x20, 0x74, 0x68, 0x65, 0x0a, 0x27, 0x79, 0x61, 0x6e, 0x67, 0x2d, 0x6c,
+  0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x27, 0x20, 0x74, 0x72, 0x65, 0x65,
+  0x2c, 0x20, 0x65, 0x78, 0x63, 0x65, 0x70, 0x74, 0x20, 0x27, 0x79, 0x61,
+  0x6e, 0x67, 0x2d, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x2f, 0x63,
+  0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x27, 0x2c, 0x20, 0x68, 0x61,
+  0x73, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x2e, 0x22, 0x3b,
+  0x7d, 0x7d, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69,
+  0x6f, 0x6e, 0x20, 0x79, 0x61, 0x6e, 0x67, 0x2d, 0x6c, 0x69, 0x62, 0x72,
+  0x61, 0x72, 0x79, 0x2d, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x20, 0x7b,
+  0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x0a,
+  0x22, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x20, 0x77,
+  0x68, 0x65, 0x6e, 0x20, 0x61, 0x6e, 0x79, 0x20, 0x59, 0x41, 0x4e, 0x47,
+  0x20, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x20, 0x69, 0x6e, 0x66,
+  0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x6e, 0x20,
+  0x74, 0x68, 0x65, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x20, 0x68,
+  0x61, 0x73, 0x20, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x2e, 0x22,
+  0x3b, 0x7d, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x6d,
+  0x6f, 0x64, 0x75, 0x6c, 0x65, 0x2d, 0x6c, 0x69, 0x73, 0x74, 0x20, 0x7b,
+  0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x20, 0x64, 0x65, 0x70, 0x72, 0x65,
+  0x63, 0x61, 0x74, 0x65, 0x64, 0x3b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69,
+  0x70, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x22, 0x54, 0x68, 0x65, 0x20, 0x6d,
+  0x6f, 0x64, 0x75, 0x6c, 0x65, 0x20, 0x64, 0x61, 0x74, 0x61, 0x20, 0x73,
+  0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x20, 0x69, 0x73, 0x20,
+  0x72, 0x65, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x65, 0x64, 0x20,
+  0x61, 0x73, 0x20, 0x61, 0x20, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x69, 0x6e,
+  0x67, 0x0a, 0x73, 0x6f, 0x20, 0x69, 0x74, 0x20, 0x63, 0x61, 0x6e, 0x20,
+  0x62, 0x65, 0x20, 0x72, 0x65, 0x75, 0x73, 0x65, 0x64, 0x20, 0x69, 0x6e,
+  0x20, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69,
+  0x6f, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x61, 0x6e, 0x6f, 0x74, 0x68, 0x65,
+  0x72, 0x20, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67,
+  0x0a, 0x64, 0x61, 0x74, 0x61, 0x20, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74,
+  0x75, 0x72, 0x65, 0x2e, 0x22, 0x3b, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x69,
+  0x6e, 0x67, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2d, 0x6c, 0x65,
+  0x61, 0x66, 0x73, 0x20, 0x7b, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x20,
+  0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x3b, 0x64,
+  0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x22,
+  0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d,
+  0x65, 0x74, 0x65, 0x72, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x59, 0x41,
+  0x4e, 0x47, 0x20, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x73, 0x20, 0x61,
+  0x6e, 0x64, 0x20, 0x73, 0x75, 0x62, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65,
+  0x73, 0x2e, 0x22, 0x3b, 0x6c, 0x65, 0x61, 0x66, 0x20, 0x6e, 0x61, 0x6d,
+  0x65, 0x20, 0x7b, 0x74, 0x79, 0x70, 0x65, 0x20, 0x79, 0x61, 0x6e, 0x67,
+  0x3a, 0x79, 0x61, 0x6e, 0x67, 0x2d, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69,
+  0x66, 0x69, 0x65, 0x72, 0x3b, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x20,
+  0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x3b, 0x64,
+  0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x22,
+  0x54, 0x68, 0x65, 0x20, 0x59, 0x41, 0x4e, 0x47, 0x20, 0x6d, 0x6f, 0x64,
+  0x75, 0x6c, 0x65, 0x20, 0x6f, 0x72, 0x20, 0x73, 0x75, 0x62, 0x6d, 0x6f,
+  0x64, 0x75, 0x6c, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x2e, 0x22, 0x3b,
+  0x7d, 0x6c, 0x65, 0x61, 0x66, 0x20, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69,
+  0x6f, 0x6e, 0x20, 0x7b, 0x74, 0x79, 0x70, 0x65, 0x20, 0x75, 0x6e, 0x69,
+  0x6f, 0x6e, 0x20, 0x7b, 0x74, 0x79, 0x70, 0x65, 0x20, 0x72, 0x65, 0x76,
+  0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2d, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69,
+  0x66, 0x69, 0x65, 0x72, 0x3b, 0x74, 0x79, 0x70, 0x65, 0x20, 0x73, 0x74,
+  0x72, 0x69, 0x6e, 0x67, 0x20, 0x7b, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68,
+  0x20, 0x30, 0x3b, 0x7d, 0x7d, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x20,
+  0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x3b, 0x64,
+  0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x22,
+  0x54, 0x68, 0x65, 0x20, 0x59, 0x41, 0x4e, 0x47, 0x20, 0x6d, 0x6f, 0x64,
+  0x75, 0x6c, 0x65, 0x20, 0x6f, 0x72, 0x20, 0x73, 0x75, 0x62, 0x6d, 0x6f,
+  0x64, 0x75, 0x6c, 0x65, 0x20, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f,
+  0x6e, 0x20, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x0a, 0x41, 0x20, 0x7a, 0x65,
+  0x72, 0x6f, 0x2d, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x73, 0x74,
+  0x72, 0x69, 0x6e, 0x67, 0x20, 0x69, 0x73, 0x20, 0x75, 0x73, 0x65, 0x64,
+  0x20, 0x69, 0x66, 0x20, 0x6e, 0x6f, 0x20, 0x72, 0x65, 0x76, 0x69, 0x73,
+  0x69, 0x6f, 0x6e, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e,
+  0x74, 0x0a, 0x69, 0x73, 0x20, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74,
+  0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x59, 0x41, 0x4e, 0x47,
+  0x20, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x20, 0x6f, 0x72, 0x20, 0x73,
+  0x75, 0x62, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x2e, 0x22, 0x3b, 0x7d,
+  0x7d, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x73, 0x63,
+  0x68, 0x65, 0x6d, 0x61, 0x2d, 0x6c, 0x65, 0x61, 0x66, 0x20, 0x7b, 0x73,
+  0x74, 0x61, 0x74, 0x75, 0x73, 0x20, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63,
+  0x61, 0x74, 0x65, 0x64, 0x3b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70,
+  0x74, 0x69, 0x6f, 0x6e, 0x20, 0x22, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e,
+  0x20, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x20, 0x6c, 0x65, 0x61, 0x66,
+  0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x20, 0x66,
+  0x6f, 0x72, 0x20, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x73, 0x20, 0x61,
+  0x6e, 0x64, 0x20, 0x73, 0x75, 0x62, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65,
+  0x73, 0x2e, 0x22, 0x3b, 0x6c, 0x65, 0x61, 0x66, 0x20, 0x73, 0x63, 0x68,
+  0x65, 0x6d, 0x61, 0x20, 0x7b, 0x74, 0x79, 0x70, 0x65, 0x20, 0x69, 0x6e,
+  0x65, 0x74, 0x3a, 0x75, 0x72, 0x69, 0x3b, 0x73, 0x74, 0x61, 0x74, 0x75,
+  0x73, 0x20, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64,
+  0x3b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e,
+  0x0a, 0x22, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x73, 0x20, 0x61,
+  0x20, 0x55, 0x52, 0x4c, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x72, 0x65,
+  0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x68, 0x65,
+  0x20, 0x59, 0x41, 0x4e, 0x47, 0x20, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61,
+  0x0a, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x20, 0x66, 0x6f,
+  0x72, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x6d, 0x6f, 0x64, 0x75, 0x6c,
+  0x65, 0x20, 0x6f, 0x72, 0x20, 0x73, 0x75, 0x62, 0x6d, 0x6f, 0x64, 0x75,
+  0x6c, 0x65, 0x2e, 0x0a, 0x0a, 0x54, 0x68, 0x69, 0x73, 0x20, 0x6c, 0x65,
+  0x61, 0x66, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x6f, 0x6e, 0x6c, 0x79,
+  0x20, 0x62, 0x65, 0x20, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x20,
+  0x69, 0x66, 0x20, 0x74, 0x68, 0x65, 0x72, 0x65, 0x20, 0x69, 0x73, 0x20,
+  0x61, 0x20, 0x55, 0x52, 0x4c, 0x0a, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61,
+  0x62, 0x6c, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x72, 0x65, 0x74, 0x72,
+  0x69, 0x65, 0x76, 0x61, 0x6c, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65,
+  0x20, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x20, 0x66, 0x6f, 0x72, 0x20,
+  0x74, 0x68, 0x69, 0x73, 0x20, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x2e, 0x22,
+  0x3b, 0x7d, 0x7d, 0x6c, 0x69, 0x73, 0x74, 0x20, 0x6d, 0x6f, 0x64, 0x75,
+  0x6c, 0x65, 0x20, 0x7b, 0x6b, 0x65, 0x79, 0x20, 0x22, 0x6e, 0x61, 0x6d,
+  0x65, 0x20, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x3b,
+  0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x20, 0x64, 0x65, 0x70, 0x72, 0x65,
+  0x63, 0x61, 0x74, 0x65, 0x64, 0x3b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69,
+  0x70, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x22, 0x45, 0x61, 0x63, 0x68, 0x20,
+  0x65, 0x6e, 0x74, 0x72, 0x79, 0x20, 0x72, 0x65, 0x70, 0x72, 0x65, 0x73,
+  0x65, 0x6e, 0x74, 0x73, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x72, 0x65, 0x76,
+  0x69, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x6f, 0x6e, 0x65,
+  0x20, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x0a, 0x63, 0x75, 0x72, 0x72,
+  0x65, 0x6e, 0x74, 0x6c, 0x79, 0x20, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72,
+  0x74, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73,
+  0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x22, 0x3b, 0x75, 0x73, 0x65, 0x73,
+  0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2d, 0x6c, 0x65, 0x61, 0x66,
+  0x73, 0x20, 0x7b, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x20, 0x64, 0x65,
+  0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x3b, 0x7d, 0x75, 0x73,
+  0x65, 0x73, 0x20, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2d, 0x6c, 0x65,
+  0x61, 0x66, 0x20, 0x7b, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x20, 0x64,
+  0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x3b, 0x7d, 0x6c,
+  0x65, 0x61, 0x66, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63,
+  0x65, 0x20, 0x7b, 0x74, 0x79, 0x70, 0x65, 0x20, 0x69, 0x6e, 0x65, 0x74,
+  0x3a, 0x75, 0x72, 0x69, 0x3b, 0x6d, 0x61, 0x6e, 0x64, 0x61, 0x74, 0x6f,
+  0x72, 0x79, 0x20, 0x74, 0x72, 0x75, 0x65, 0x3b, 0x73, 0x74, 0x61, 0x74,
+  0x75, 0x73, 0x20, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65,
+  0x64, 0x3b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f,
+  0x6e, 0x20, 0x22, 0x54, 0x68, 0x65, 0x20, 0x58, 0x4d, 0x4c, 0x20, 0x6e,
+  0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x20, 0x69, 0x64, 0x65,
+  0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x20, 0x66, 0x6f, 0x72, 0x20,
+  0x74, 0x68, 0x69, 0x73, 0x20, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x2e,
+  0x22, 0x3b, 0x7d, 0x6c, 0x65, 0x61, 0x66, 0x2d, 0x6c, 0x69, 0x73, 0x74,
+  0x20, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x20, 0x7b, 0x74, 0x79,
+  0x70, 0x65, 0x20, 0x79, 0x61, 0x6e, 0x67, 0x3a, 0x79, 0x61, 0x6e, 0x67,
+  0x2d, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x3b,
+  0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x20, 0x64, 0x65, 0x70, 0x72, 0x65,
+  0x63, 0x61, 0x74, 0x65, 0x64, 0x3b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69,
+  0x70, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x22, 0x4c, 0x69, 0x73, 0x74, 0x20,
+  0x6f, 0x66, 0x20, 0x59, 0x41, 0x4e, 0x47, 0x20, 0x66, 0x65, 0x61, 0x74,
+  0x75, 0x72, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x20, 0x66, 0x72,
+  0x6f, 0x6d, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x6d, 0x6f, 0x64, 0x75,
+  0x6c, 0x65, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x61, 0x72, 0x65, 0x0a,
+  0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x62, 0x79,
+  0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2c,
+  0x20, 0x72, 0x65, 0x67, 0x61, 0x72, 0x64, 0x6c, 0x65, 0x73, 0x73, 0x20,
+  0x77, 0x68, 0x65, 0x74, 0x68, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x79,
+  0x20, 0x61, 0x72, 0x65, 0x0a, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64,
+  0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x6f, 0x64, 0x75,
+  0x6c, 0x65, 0x20, 0x6f, 0x72, 0x20, 0x61, 0x6e, 0x79, 0x20, 0x69, 0x6e,
+  0x63, 0x6c, 0x75, 0x64, 0x65, 0x64, 0x20, 0x73, 0x75, 0x62, 0x6d, 0x6f,
+  0x64, 0x75, 0x6c, 0x65, 0x2e, 0x22, 0x3b, 0x7d, 0x6c, 0x69, 0x73, 0x74,
+  0x20, 0x64, 0x65, 0x76, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x7b,
+  0x6b, 0x65, 0x79, 0x20, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x72, 0x65,
+  0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x3b, 0x73, 0x74, 0x61, 0x74,
+  0x75, 0x73, 0x20, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65,
+  0x64, 0x3b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f,
+  0x6e, 0x0a, 0x22, 0x4c, 0x69, 0x73, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x59,
+  0x41, 0x4e, 0x47, 0x20, 0x64, 0x65, 0x76, 0x69, 0x61, 0x74, 0x69, 0x6f,
+  0x6e, 0x20, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x20, 0x6e, 0x61, 0x6d,
+  0x65, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x76, 0x69, 0x73,
+  0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x75, 0x73, 0x65, 0x64, 0x20, 0x62, 0x79,
+  0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72,
+  0x20, 0x74, 0x6f, 0x20, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x20, 0x74,
+  0x68, 0x65, 0x20, 0x63, 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e,
+  0x63, 0x65, 0x20, 0x6f, 0x66, 0x0a, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x6f,
+  0x64, 0x75, 0x6c, 0x65, 0x20, 0x61, 0x73, 0x73, 0x6f, 0x63, 0x69, 0x61,
+  0x74, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x69,
+  0x73, 0x20, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x2e, 0x20, 0x20, 0x4e, 0x6f,
+  0x74, 0x65, 0x20, 0x74, 0x68, 0x61, 0x74, 0x0a, 0x74, 0x68, 0x65, 0x20,
+  0x73, 0x61, 0x6d, 0x65, 0x20, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x20,
+  0x63, 0x61, 0x6e, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20,
+  0x66, 0x6f, 0x72, 0x20, 0x64, 0x65, 0x76, 0x69, 0x61, 0x74, 0x69, 0x6f,
+  0x6e, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x0a, 0x6d, 0x75, 0x6c, 0x74, 0x69,
+  0x70, 0x6c, 0x65, 0x20, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x73, 0x2c,
+  0x20, 0x73, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65,
+  0x20, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x20, 0x4d, 0x41, 0x59, 0x20, 0x61,
+  0x70, 0x70, 0x65, 0x61, 0x72, 0x0a, 0x77, 0x69, 0x74, 0x68, 0x69, 0x6e,
+  0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x20, 0x27, 0x6d,
+  0x6f, 0x64, 0x75, 0x6c, 0x65, 0x27, 0x20, 0x65, 0x6e, 0x74, 0x72, 0x69,
+  0x65, 0x73, 0x2e, 0x0a, 0x0a, 0x54, 0x68, 0x65, 0x20, 0x64, 0x65, 0x76,
+  0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6d, 0x6f, 0x64, 0x75, 0x6c,
+  0x65, 0x20, 0x4d, 0x55, 0x53, 0x54, 0x20, 0x62, 0x65, 0x20, 0x70, 0x72,
+  0x65, 0x73, 0x65, 0x6e, 0x74, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65,
+  0x20, 0x27, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x27, 0x0a, 0x6c, 0x69,
+  0x73, 0x74, 0x2c, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x65,
+  0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x61,
+  0x6e, 0x64, 0x20, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x20,
+  0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x2e, 0x0a, 0x54, 0x68, 0x65, 0x20,
+  0x27, 0x63, 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65,
+  0x2d, 0x74, 0x79, 0x70, 0x65, 0x27, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65,
+  0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x27, 0x69, 0x6d,
+  0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x27, 0x20, 0x66, 0x6f, 0x72,
+  0x0a, 0x74, 0x68, 0x65, 0x20, 0x64, 0x65, 0x76, 0x69, 0x61, 0x74, 0x69,
+  0x6f, 0x6e, 0x20, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x2e, 0x22, 0x3b,
+  0x75, 0x73, 0x65, 0x73, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2d,
+  0x6c, 0x65, 0x61, 0x66, 0x73, 0x20, 0x7b, 0x73, 0x74, 0x61, 0x74, 0x75,
+  0x73, 0x20, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64,
+  0x3b, 0x7d, 0x7d, 0x6c, 0x65, 0x61, 0x66, 0x20, 0x63, 0x6f, 0x6e, 0x66,
+  0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x2d, 0x74, 0x79, 0x70, 0x65,
+  0x20, 0x7b, 0x74, 0x79, 0x70, 0x65, 0x20, 0x65, 0x6e, 0x75, 0x6d, 0x65,
+  0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x7b, 0x65, 0x6e, 0x75, 0x6d,
+  0x20, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x7b,
+  0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x0a,
+  0x22, 0x49, 0x6e, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x20, 0x74,
+  0x68, 0x61, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x72, 0x76,
+  0x65, 0x72, 0x20, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74,
+  0x73, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6f, 0x72, 0x20, 0x6d, 0x6f, 0x72,
+  0x65, 0x0a, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2d, 0x61,
+  0x63, 0x63, 0x65, 0x73, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x20, 0x6f, 0x62,
+  0x6a, 0x65, 0x63, 0x74, 0x73, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65,
+  0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x59, 0x41, 0x4e,
+  0x47, 0x20, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x0a, 0x69, 0x64, 0x65,
+  0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74,
+  0x68, 0x69, 0x73, 0x20, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x2e, 0x20, 0x20,
+  0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65,
+  0x73, 0x20, 0x64, 0x65, 0x76, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x0a,
+  0x73, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x64,
+  0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68,
+  0x65, 0x20, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x2e, 0x0a, 0x0a, 0x46,
+  0x6f, 0x72, 0x20, 0x59, 0x41, 0x4e, 0x47, 0x20, 0x76, 0x65, 0x72, 0x73,
+  0x69, 0x6f, 0x6e, 0x20, 0x31, 0x2e, 0x31, 0x20, 0x6d, 0x6f, 0x64, 0x75,
+  0x6c, 0x65, 0x73, 0x2c, 0x20, 0x74, 0x68, 0x65, 0x72, 0x65, 0x20, 0x69,
+  0x73, 0x20, 0x61, 0x74, 0x20, 0x6d, 0x6f, 0x73, 0x74, 0x20, 0x6f, 0x6e,
+  0x65, 0x0a, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x20, 0x65, 0x6e, 0x74,
+  0x72, 0x79, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x63, 0x6f, 0x6e, 0x66,
+  0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x74, 0x79, 0x70, 0x65,
+  0x20, 0x27, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x27,
+  0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x0a, 0x70, 0x61, 0x72, 0x74, 0x69,
+  0x63, 0x75, 0x6c, 0x61, 0x72, 0x20, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65,
+  0x20, 0x6e, 0x61, 0x6d, 0x65, 0x2c, 0x20, 0x73, 0x69, 0x6e, 0x63, 0x65,
+  0x20, 0x59, 0x41, 0x4e, 0x47, 0x20, 0x31, 0x2e, 0x31, 0x20, 0x72, 0x65,
+  0x71, 0x75, 0x69, 0x72, 0x65, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x0a,
+  0x61, 0x74, 0x20, 0x6d, 0x6f, 0x73, 0x74, 0x20, 0x6f, 0x6e, 0x65, 0x20,
+  0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20,
+  0x61, 0x20, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x20, 0x69, 0x73, 0x20,
+  0x69, 0x6d, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x65, 0x64, 0x2e,
+  0x0a, 0x0a, 0x46, 0x6f, 0x72, 0x20, 0x59, 0x41, 0x4e, 0x47, 0x20, 0x76,
+  0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x31, 0x20, 0x6d, 0x6f, 0x64,
+  0x75, 0x6c, 0x65, 0x73, 0x2c, 0x20, 0x74, 0x68, 0x65, 0x72, 0x65, 0x20,
+  0x53, 0x48, 0x4f, 0x55, 0x4c, 0x44, 0x20, 0x4e, 0x4f, 0x54, 0x20, 0x62,
+  0x65, 0x20, 0x6d, 0x6f, 0x72, 0x65, 0x0a, 0x74, 0x68, 0x61, 0x6e, 0x20,
+  0x6f, 0x6e, 0x65, 0x20, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x20, 0x65,
+  0x6e, 0x74, 0x72, 0x79, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x70,
+  0x61, 0x72, 0x74, 0x69, 0x63, 0x75, 0x6c, 0x61, 0x72, 0x20, 0x6d, 0x6f,
+  0x64, 0x75, 0x6c, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x2e, 0x22, 0x3b,
+  0x7d, 0x65, 0x6e, 0x75, 0x6d, 0x20, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74,
+  0x20, 0x7b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f,
+  0x6e, 0x0a, 0x22, 0x49, 0x6e, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73,
+  0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65,
+  0x72, 0x76, 0x65, 0x72, 0x20, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x73,
+  0x20, 0x72, 0x65, 0x75, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x64, 0x65,
+  0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x66, 0x72,
+  0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69,
+  0x66, 0x69, 0x65, 0x64, 0x20, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f,
+  0x6e, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x6f, 0x64,
+  0x75, 0x6c, 0x65, 0x2c, 0x20, 0x62, 0x75, 0x74, 0x20, 0x64, 0x6f, 0x65,
+  0x73, 0x0a, 0x6e, 0x6f, 0x74, 0x20, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x6d,
+  0x65, 0x6e, 0x74, 0x20, 0x61, 0x6e, 0x79, 0x20, 0x70, 0x72, 0x6f, 0x74,
+  0x6f, 0x63, 0x6f, 0x6c, 0x20, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x69,
+  0x62, 0x6c, 0x65, 0x20, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x20,
+  0x66, 0x72, 0x6f, 0x6d, 0x0a, 0x74, 0x68, 0x69, 0x73, 0x20, 0x72, 0x65,
+  0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x0a, 0x0a, 0x4d, 0x75, 0x6c,
+  0x74, 0x69, 0x70, 0x6c, 0x65, 0x20, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65,
+  0x20, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72,
+  0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x6d, 0x6f,
+  0x64, 0x75, 0x6c, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x4d, 0x41,
+  0x59, 0x0a, 0x65, 0x78, 0x69, 0x73, 0x74, 0x2e, 0x20, 0x54, 0x68, 0x69,
+  0x73, 0x20, 0x63, 0x61, 0x6e, 0x20, 0x6f, 0x63, 0x63, 0x75, 0x72, 0x20,
+  0x69, 0x66, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x20,
+  0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x73, 0x20, 0x69, 0x6d, 0x70, 0x6f,
+  0x72, 0x74, 0x20, 0x74, 0x68, 0x65, 0x0a, 0x73, 0x61, 0x6d, 0x65, 0x20,
+  0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x2c, 0x20, 0x62, 0x75, 0x74, 0x20,
+  0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x79, 0x20, 0x64, 0x69, 0x66, 0x66,
+  0x65, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69,
+  0x6f, 0x6e, 0x2d, 0x64, 0x61, 0x74, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x0a,
+  0x74, 0x68, 0x65, 0x20, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x73,
+  0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x22, 0x3b,
+  0x7d, 0x7d, 0x6d, 0x61, 0x6e, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x79, 0x20,
+  0x74, 0x72, 0x75, 0x65, 0x3b, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x20,
+  0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x3b, 0x64,
+  0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x22,
+  0x49, 0x6e, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x20, 0x74, 0x68,
+  0x65, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x6f,
+  0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x74, 0x68,
+  0x65, 0x20, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x20, 0x69, 0x73, 0x20,
+  0x63, 0x6c, 0x61, 0x69, 0x6d, 0x69, 0x6e, 0x67, 0x0a, 0x66, 0x6f, 0x72,
+  0x20, 0x74, 0x68, 0x65, 0x20, 0x59, 0x41, 0x4e, 0x47, 0x20, 0x6d, 0x6f,
+  0x64, 0x75, 0x6c, 0x65, 0x20, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66,
+  0x69, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20,
+  0x65, 0x6e, 0x74, 0x72, 0x79, 0x2e, 0x22, 0x3b, 0x7d, 0x6c, 0x69, 0x73,
+  0x74, 0x20, 0x73, 0x75, 0x62, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x20,
+  0x7b, 0x6b, 0x65, 0x79, 0x20, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x72,
+  0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x3b, 0x73, 0x74, 0x61,
+  0x74, 0x75, 0x73, 0x20, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74,
+  0x65, 0x64, 0x3b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69,
+  0x6f, 0x6e, 0x0a, 0x22, 0x45, 0x61, 0x63, 0x68, 0x20, 0x65, 0x6e, 0x74,
+  0x72, 0x79, 0x20, 0x72, 0x65, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74,
+  0x73, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x73, 0x75, 0x62, 0x6d, 0x6f, 0x64,
+  0x75, 0x6c, 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x20, 0x74,
+  0x68, 0x65, 0x0a, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x6d, 0x6f,
+  0x64, 0x75, 0x6c, 0x65, 0x2e, 0x22, 0x3b, 0x75, 0x73, 0x65, 0x73, 0x20,
+  0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2d, 0x6c, 0x65, 0x61, 0x66, 0x73,
+  0x20, 0x7b, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x20, 0x64, 0x65, 0x70,
+  0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x3b, 0x7d, 0x75, 0x73, 0x65,
+  0x73, 0x20, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2d, 0x6c, 0x65, 0x61,
+  0x66, 0x20, 0x7b, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x20, 0x64, 0x65,
+  0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x3b, 0x7d, 0x7d, 0x7d,
+  0x7d, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x20, 0x6d,
+  0x6f, 0x64, 0x75, 0x6c, 0x65, 0x73, 0x2d, 0x73, 0x74, 0x61, 0x74, 0x65,
+  0x20, 0x7b, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x20, 0x66, 0x61, 0x6c,
+  0x73, 0x65, 0x3b, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x20, 0x64, 0x65,
+  0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x3b, 0x64, 0x65, 0x73,
+  0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x22, 0x43, 0x6f,
+  0x6e, 0x74, 0x61, 0x69, 0x6e, 0x73, 0x20, 0x59, 0x41, 0x4e, 0x47, 0x20,
+  0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x20, 0x6d, 0x6f, 0x6e, 0x69, 0x74,
+  0x6f, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x69, 0x6e, 0x66, 0x6f, 0x72, 0x6d,
+  0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x22, 0x3b, 0x6c, 0x65, 0x61, 0x66,
+  0x20, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x2d, 0x73, 0x65, 0x74, 0x2d,
+  0x69, 0x64, 0x20, 0x7b, 0x74, 0x79, 0x70, 0x65, 0x20, 0x73, 0x74, 0x72,
+  0x69, 0x6e, 0x67, 0x3b, 0x6d, 0x61, 0x6e, 0x64, 0x61, 0x74, 0x6f, 0x72,
+  0x79, 0x20, 0x74, 0x72, 0x75, 0x65, 0x3b, 0x73, 0x74, 0x61, 0x74, 0x75,
+  0x73, 0x20, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64,
+  0x3b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e,
+  0x0a, 0x22, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x73, 0x20, 0x61,
+  0x20, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2d, 0x73, 0x70, 0x65, 0x63,
+  0x69, 0x66, 0x69, 0x63, 0x20, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66,
+  0x69, 0x65, 0x72, 0x20, 0x72, 0x65, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e,
+  0x74, 0x69, 0x6e, 0x67, 0x0a, 0x74, 0x68, 0x65, 0x20, 0x63, 0x75, 0x72,
+  0x72, 0x65, 0x6e, 0x74, 0x20, 0x73, 0x65, 0x74, 0x20, 0x6f, 0x66, 0x20,
+  0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20,
+  0x73, 0x75, 0x62, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x20,
+  0x20, 0x54, 0x68, 0x65, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x20,
+  0x4d, 0x55, 0x53, 0x54, 0x20, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x20,
+  0x74, 0x68, 0x65, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6f, 0x66,
+  0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x6c, 0x65, 0x61, 0x66, 0x20, 0x69,
+  0x66, 0x20, 0x74, 0x68, 0x65, 0x0a, 0x69, 0x6e, 0x66, 0x6f, 0x72, 0x6d,
+  0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x72, 0x65, 0x70, 0x72, 0x65, 0x73,
+  0x65, 0x6e, 0x74, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x74, 0x68, 0x65,
+  0x20, 0x27, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x27, 0x20, 0x6c, 0x69,
+  0x73, 0x74, 0x20, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73,
+  0x0a, 0x68, 0x61, 0x73, 0x20, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64,
+  0x2e, 0x22, 0x3b, 0x7d, 0x75, 0x73, 0x65, 0x73, 0x20, 0x6d, 0x6f, 0x64,
+  0x75, 0x6c, 0x65, 0x2d, 0x6c, 0x69, 0x73, 0x74, 0x20, 0x7b, 0x73, 0x74,
+  0x61, 0x74, 0x75, 0x73, 0x20, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61,
+  0x74, 0x65, 0x64, 0x3b, 0x7d, 0x7d, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69,
+  0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x79, 0x61, 0x6e, 0x67, 0x2d,
+  0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x2d, 0x63, 0x68, 0x61, 0x6e,
+  0x67, 0x65, 0x20, 0x7b, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x20, 0x64,
+  0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x3b, 0x64, 0x65,
+  0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x22, 0x47,
+  0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x20, 0x77, 0x68, 0x65,
+  0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x74, 0x20, 0x6f, 0x66,
+  0x20, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x73, 0x20, 0x61, 0x6e, 0x64,
+  0x20, 0x73, 0x75, 0x62, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x73, 0x20,
+  0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x0a, 0x62, 0x79,
+  0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x20,
+  0x68, 0x61, 0x73, 0x20, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x2e,
+  0x22, 0x3b, 0x6c, 0x65, 0x61, 0x66, 0x20, 0x6d, 0x6f, 0x64, 0x75, 0x6c,
+  0x65, 0x2d, 0x73, 0x65, 0x74, 0x2d, 0x69, 0x64, 0x20, 0x7b, 0x74, 0x79,
+  0x70, 0x65, 0x20, 0x6c, 0x65, 0x61, 0x66, 0x72, 0x65, 0x66, 0x20, 0x7b,
+  0x70, 0x61, 0x74, 0x68, 0x20, 0x22, 0x2f, 0x79, 0x61, 0x6e, 0x67, 0x6c,
+  0x69, 0x62, 0x3a, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x73, 0x2d, 0x73,
+  0x74, 0x61, 0x74, 0x65, 0x2f, 0x79, 0x61, 0x6e, 0x67, 0x6c, 0x69, 0x62,
+  0x3a, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x2d, 0x73, 0x65, 0x74, 0x2d,
+  0x69, 0x64, 0x22, 0x3b, 0x7d, 0x6d, 0x61, 0x6e, 0x64, 0x61, 0x74, 0x6f,
+  0x72, 0x79, 0x20, 0x74, 0x72, 0x75, 0x65, 0x3b, 0x73, 0x74, 0x61, 0x74,
+  0x75, 0x73, 0x20, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65,
+  0x64, 0x3b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f,
+  0x6e, 0x0a, 0x22, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x73, 0x20,
+  0x74, 0x68, 0x65, 0x20, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x2d, 0x73,
+  0x65, 0x74, 0x2d, 0x69, 0x64, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20,
+  0x72, 0x65, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x67,
+  0x20, 0x74, 0x68, 0x65, 0x0a, 0x73, 0x65, 0x74, 0x20, 0x6f, 0x66, 0x20,
+  0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20,
+  0x73, 0x75, 0x62, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x73, 0x20, 0x73,
+  0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x61, 0x74, 0x20,
+  0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x0a, 0x61,
+  0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x74, 0x69, 0x6d, 0x65, 0x20, 0x74,
+  0x68, 0x65, 0x20, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74,
+  0x69, 0x6f, 0x6e, 0x20, 0x69, 0x73, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72,
+  0x61, 0x74, 0x65, 0x64, 0x2e, 0x22, 0x3b, 0x7d, 0x7d, 0x7d, 0x00
+};
diff --git a/models/ietf-yang-library@2018-01-17.yang b/models/ietf-yang-library@2018-01-17.yang
new file mode 100644
index 0000000..58d95c1
--- /dev/null
+++ b/models/ietf-yang-library@2018-01-17.yang
@@ -0,0 +1,577 @@
+   module ietf-yang-library {
+     yang-version 1.1;
+     namespace "urn:ietf:params:xml:ns:yang:ietf-yang-library";
+     prefix "yanglib";
+
+     import ietf-yang-types {
+       prefix yang;
+       reference "RFC 6991: Common YANG Data Types.";
+     }
+     import ietf-inet-types {
+       prefix inet;
+       reference "RFC 6991: Common YANG Data Types.";
+     }
+     import ietf-datastores {
+       prefix ds;
+       reference "I-D.ietf-revised-datastores:
+                  Network Management Datastore Architecture.";
+     }
+
+     organization
+       "IETF NETCONF (Network Configuration) Working Group";
+
+     contact
+       "WG Web:   <http://tools.ietf.org/wg/netconf/>
+        WG List:  <mailto:netconf@ietf.org>
+
+        Author:   Andy Bierman
+                  <mailto:andy@yumaworks.com>
+
+        Author:   Martin Bjorklund
+                  <mailto:mbj@tail-f.com>
+
+        Author:   Juergen Schoenwaelder
+                  <mailto:j.schoenwaelder@jacobs-university.de>
+
+        Author:   Kent Watsen
+                  <mailto:kwatsen@juniper.net>
+
+        Author:   Rob Wilton
+                  <rwilton@cisco.com>";
+
+     description
+       "This module contains information about the YANG server instance,
+        including the modules and datastores the server supports, and
+        which modules are present in which datastores.
+
+        Copyright (c) 2018 IETF Trust and the persons identified as
+        authors of the code.  All rights reserved.
+
+        Redistribution and use in source and binary forms, with or
+        without modification, is permitted pursuant to, and subject
+        to the license terms contained in, the Simplified BSD License
+        set forth in Section 4.c of the IETF Trust's Legal Provisions
+        Relating to IETF Documents
+        (http://trustee.ietf.org/license-info).
+
+        This version of this YANG module is part of RFC XXXX; see
+        the RFC itself for full legal notices.";
+
+     // RFC Ed.: update the date below with the date of RFC publication
+     // and remove this note.
+     // RFC Ed.: replace XXXX with actual RFC number and remove this
+     // note.
+     revision 2018-01-17 {
+       description
+         "Added support for multiple datastores.";
+       reference
+         "RFC XXXX: YANG Library.";
+     }
+     revision 2016-04-09 {
+       description
+         "Initial revision.";
+       reference
+         "RFC 7895: YANG Module Library.";
+     }
+
+     /*
+      * Typedefs
+      */
+
+     typedef revision-identifier {
+       type string {
+         pattern '\d{4}-\d{2}-\d{2}';
+       }
+       description
+         "Represents a specific date in YYYY-MM-DD format.";
+     }
+
+     /*
+      * Groupings
+      */
+
+     grouping module-identification-leafs {
+       description
+         "Parameters for identifying YANG modules and submodules.";
+
+       leaf name {
+         type yang:yang-identifier;
+         mandatory true;
+         description
+           "The YANG module or submodule name.";
+       }
+       leaf revision {
+         type revision-identifier;
+         description
+           "The YANG module or submodule revision date.  If no revision
+            statement is present in the YANG module or submodule, this
+            leaf is not instantiated.";
+       }
+     }
+
+     grouping location-leaf-list {
+       description
+         "Common location leaf list parameter for modules and
+          submodules.";
+
+       leaf-list location {
+         type inet:uri;
+         description
+           "Contains a URL that represents the YANG schema
+            resource for this module or submodule.
+
+            This leaf will only be present if there is a URL
+            available for retrieval of the schema for this entry.";
+       }
+     }
+
+     grouping implementation-parameters {
+       description
+         "Parameters for describing the implementation of a module.";
+
+       list feature {
+         key "name";
+         description
+           "List of YANG feature names from this module that are
+            supported by the server, regardless whether they are defined
+            in the module or any included submodule.";
+         leaf name {
+           type yang:yang-identifier;
+           description
+             "A feature supported by the server.";
+         }
+       }
+       list deviation {
+         key "module";
+         description
+           "List of YANG deviation modules used by this server to modify
+            the conformance of the module associated with this entry.
+            Note that the same module can be used for deviations for
+            multiple modules, so the same entry MAY appear within
+            multiple 'module' entries.";
+
+         leaf module {
+           type leafref {
+             path "../../../module/name";
+           }
+           description
+             "A module that deviates the module associated with this
+              entry.";
+         }
+       }
+     }
+
+     grouping module-set-parameters {
+       description
+         "A set of parameters that describe a module set.";
+
+       leaf name {
+         type string;
+         description
+           "An arbitrary name of the module set.";
+       }
+       leaf checksum {
+         type string;
+         config false;
+         mandatory true;
+         description
+           "A server-generated checksum of the contents of the module
+            set.  The server MUST change the value of this leaf if the
+            information represented by the module set, except
+            'checksum', has changed.";
+       }
+       list module {
+         key "name";
+         description
+           "An entry in this list represents a module implemented by the
+            server with a particular set of supported features and
+            deviations.
+
+            The server implements one or more protocol-accessible
+            objects defined in the YANG module identified in this entry.
+            This includes deviation statements defined in the module.";
+
+         uses module-identification-leafs;
+
+         leaf namespace {
+           type inet:uri;
+           mandatory true;
+           description
+             "The XML namespace identifier for this module.";
+         }
+
+         uses location-leaf-list;
+
+         list submodule {
+           key "name";
+           description
+             "Each entry represents one submodule within the
+              parent module.";
+           uses module-identification-leafs;
+           uses location-leaf-list;
+         }
+
+         uses implementation-parameters;
+       }
+       list import-only-module {
+         key "name revision";
+         description
+           "An entry in this list indicates that the server imports
+            reusable definitions from the specified revision of the
+            module, but does not implement any protocol accessible
+            objects from this revision.
+
+            Multiple entries for the same module name MAY exist.  This
+            can occur if multiple modules import the same module, but
+            specify different revision-dates in the import statements.";
+
+         leaf name {
+           type yang:yang-identifier;
+           description
+             "The YANG module name.";
+         }
+         leaf revision {
+           type union {
+             type revision-identifier;
+             type string {
+               length 0;
+             }
+           }
+           description
+             "The YANG module or revision date.
+              A zero-length string is used if no revision statement
+              is present in the YANG module.";
+         }
+         leaf namespace {
+           type inet:uri;
+           mandatory true;
+           description
+             "The XML namespace identifier for this module.";
+         }
+
+         uses location-leaf-list;
+
+         list submodule {
+           key "name";
+           description
+             "Each entry represents one submodule within the
+              parent module.";
+
+           uses module-identification-leafs;
+           uses location-leaf-list;
+         }
+       }
+     }
+
+     grouping yang-library-parameters {
+       description
+         "The YANG library data structure is represented as a grouping
+          so it can be reused in configuration or another monitoring
+          data structure.";
+
+       list module-set {
+         key name;
+         description
+           "A set of modules that may be used by one or more schemas.";
+
+         uses module-set-parameters;
+       }
+
+       list schema {
+         key "name";
+         description
+           "A datastore schema that may be used by one or more
+            datastores.";
+
+         leaf name {
+           type string;
+           description
+             "An arbitrary name of the schema.";
+         }
+         leaf checksum {
+           type string;
+           config false;
+           mandatory true;
+           description
+             "A server-generated checksum of the contents of the schema.
+              The server MUST change the value of this leaf if the
+              information represented by the schema, except 'checksum',
+              has changed.";
+         }
+         leaf-list module-set {
+           type leafref {
+             path "../../module-set/name";
+           }
+           description
+             "A set of module-sets that are included in this schema.";
+         }
+       }
+
+       list datastore {
+         key "name";
+         description
+           "A datastore supported by this server.
+
+            Each datastore indicates which schema it supports.
+
+            The server MUST instantiate one entry in this list per
+            specific datastore it supports.
+
+            Each datstore entry with the same datastore schema SHOULD
+            reference the same schema.";
+
+         leaf name {
+           type identityref {
+             base ds:datastore;
+           }
+           description
+             "The identity of the datastore.";
+         }
+         leaf schema {
+           type leafref {
+             path "../../schema/name";
+           }
+           mandatory true;
+
+           description
+             "A reference to the schema supported by this datastore.";
+         }
+       }
+     }
+
+     /*
+      * Top-level container
+      */
+
+     container yang-library {
+       config false;
+       description
+         "Container providing all the YANG meta information the
+          server possesses.";
+
+       uses yang-library-parameters;
+
+       leaf checksum {
+         type string;
+         mandatory true;
+         description
+           "A server-generated checksum of the contents of the
+            'yang-library' tree.  The server MUST change the value of
+            this leaf if the information represented by the
+            'yang-library' tree, except 'yang-library/checksum', has
+            changed.";
+       }
+     }
+
+     /*
+      * Notifications
+      */
+
+     notification yang-library-update {
+       description
+         "Generated when any YANG library information on the
+          server has changed.";
+     }
+
+     /*
+      * Legacy groupings
+      */
+
+     grouping module-list {
+       status deprecated;
+       description
+         "The module data structure is represented as a grouping
+          so it can be reused in configuration or another monitoring
+          data structure.";
+
+       grouping common-leafs {
+         status deprecated;
+         description
+           "Common parameters for YANG modules and submodules.";
+
+         leaf name {
+           type yang:yang-identifier;
+           status deprecated;
+           description
+             "The YANG module or submodule name.";
+         }
+         leaf revision {
+           type union {
+             type revision-identifier;
+             type string {
+               length 0;
+             }
+           }
+           status deprecated;
+           description
+             "The YANG module or submodule revision date.
+              A zero-length string is used if no revision statement
+              is present in the YANG module or submodule.";
+         }
+       }
+       grouping schema-leaf {
+         status deprecated;
+         description
+           "Common schema leaf parameter for modules and submodules.";
+         leaf schema {
+           type inet:uri;
+           status deprecated;
+           description
+             "Contains a URL that represents the YANG schema
+              resource for this module or submodule.
+
+              This leaf will only be present if there is a URL
+              available for retrieval of the schema for this entry.";
+         }
+       }
+
+       list module {
+         key "name revision";
+         status deprecated;
+         description
+           "Each entry represents one revision of one module
+            currently supported by the server.";
+
+         uses common-leafs {
+           status deprecated;
+         }
+         uses schema-leaf {
+           status deprecated;
+         }
+
+         leaf namespace {
+           type inet:uri;
+           mandatory true;
+           status deprecated;
+           description
+             "The XML namespace identifier for this module.";
+         }
+         leaf-list feature {
+           type yang:yang-identifier;
+           status deprecated;
+           description
+             "List of YANG feature names from this module that are
+              supported by the server, regardless whether they are
+              defined in the module or any included submodule.";
+         }
+         list deviation {
+           key "name revision";
+           status deprecated;
+           description
+             "List of YANG deviation module names and revisions
+              used by this server to modify the conformance of
+              the module associated with this entry.  Note that
+              the same module can be used for deviations for
+              multiple modules, so the same entry MAY appear
+              within multiple 'module' entries.
+
+              The deviation module MUST be present in the 'module'
+              list, with the same name and revision values.
+              The 'conformance-type' value will be 'implement' for
+              the deviation module.";
+           uses common-leafs {
+             status deprecated;
+           }
+         }
+         leaf conformance-type {
+           type enumeration {
+             enum implement {
+               description
+                 "Indicates that the server implements one or more
+                  protocol-accessible objects defined in the YANG module
+                  identified in this entry.  This includes deviation
+                  statements defined in the module.
+
+                  For YANG version 1.1 modules, there is at most one
+                  module entry with conformance type 'implement' for a
+                  particular module name, since YANG 1.1 requires that
+                  at most one revision of a module is implemented.
+
+                  For YANG version 1 modules, there SHOULD NOT be more
+                  than one module entry for a particular module name.";
+             }
+             enum import {
+               description
+                 "Indicates that the server imports reusable definitions
+                  from the specified revision of the module, but does
+                  not implement any protocol accessible objects from
+                  this revision.
+
+                  Multiple module entries for the same module name MAY
+                  exist. This can occur if multiple modules import the
+                  same module, but specify different revision-dates in
+                  the import statements.";
+             }
+           }
+           mandatory true;
+           status deprecated;
+           description
+             "Indicates the type of conformance the server is claiming
+              for the YANG module identified by this entry.";
+         }
+         list submodule {
+           key "name revision";
+           status deprecated;
+           description
+             "Each entry represents one submodule within the
+              parent module.";
+           uses common-leafs {
+             status deprecated;
+           }
+           uses schema-leaf {
+             status deprecated;
+           }
+         }
+       }
+     }
+
+     /*
+      * Legacy operational state data nodes
+      */
+
+     container modules-state {
+       config false;
+       status deprecated;
+       description
+         "Contains YANG module monitoring information.";
+
+       leaf module-set-id {
+         type string;
+         mandatory true;
+         status deprecated;
+         description
+           "Contains a server-specific identifier representing
+            the current set of modules and submodules.  The
+            server MUST change the value of this leaf if the
+            information represented by the 'module' list instances
+            has changed.";
+       }
+
+       uses module-list {
+         status deprecated;
+       }
+     }
+
+     /*
+      * Legacy notifications
+      */
+
+     notification yang-library-change {
+       status deprecated;
+       description
+         "Generated when the set of modules and submodules supported
+          by the server has changed.";
+       leaf module-set-id {
+         type leafref {
+           path "/yanglib:modules-state/yanglib:module-set-id";
+         }
+         mandatory true;
+         status deprecated;
+         description
+           "Contains the module-set-id value representing the
+            set of modules and submodules supported at the server
+            at the time the notification is generated.";
+       }
+     }
+
+   }
diff --git a/models/ietf-yang-metadata@2016-08-05.h b/models/ietf-yang-metadata@2016-08-05.h
new file mode 100644
index 0000000..5b2665b
--- /dev/null
+++ b/models/ietf-yang-metadata@2016-08-05.h
@@ -0,0 +1,220 @@
+unsigned char ietf_yang_metadata_2016_08_05_yang[] = {
+  0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x20, 0x69, 0x65, 0x74, 0x66, 0x2d,
+  0x79, 0x61, 0x6e, 0x67, 0x2d, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74,
+  0x61, 0x20, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65,
+  0x20, 0x22, 0x75, 0x72, 0x6e, 0x3a, 0x69, 0x65, 0x74, 0x66, 0x3a, 0x70,
+  0x61, 0x72, 0x61, 0x6d, 0x73, 0x3a, 0x78, 0x6d, 0x6c, 0x3a, 0x6e, 0x73,
+  0x3a, 0x79, 0x61, 0x6e, 0x67, 0x3a, 0x69, 0x65, 0x74, 0x66, 0x2d, 0x79,
+  0x61, 0x6e, 0x67, 0x2d, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61,
+  0x22, 0x3b, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, 0x6d, 0x64, 0x3b,
+  0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+  0x20, 0x22, 0x49, 0x45, 0x54, 0x46, 0x20, 0x4e, 0x45, 0x54, 0x4d, 0x4f,
+  0x44, 0x20, 0x28, 0x4e, 0x45, 0x54, 0x43, 0x4f, 0x4e, 0x46, 0x20, 0x44,
+  0x61, 0x74, 0x61, 0x20, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x69, 0x6e, 0x67,
+  0x20, 0x4c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x29, 0x20, 0x57,
+  0x6f, 0x72, 0x6b, 0x69, 0x6e, 0x67, 0x20, 0x47, 0x72, 0x6f, 0x75, 0x70,
+  0x22, 0x3b, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x0a, 0x22, 0x57,
+  0x47, 0x20, 0x57, 0x65, 0x62, 0x3a, 0x20, 0x20, 0x20, 0x3c, 0x68, 0x74,
+  0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x74, 0x72,
+  0x61, 0x63, 0x6b, 0x65, 0x72, 0x2e, 0x69, 0x65, 0x74, 0x66, 0x2e, 0x6f,
+  0x72, 0x67, 0x2f, 0x77, 0x67, 0x2f, 0x6e, 0x65, 0x74, 0x6d, 0x6f, 0x64,
+  0x2f, 0x3e, 0x0a, 0x0a, 0x57, 0x47, 0x20, 0x4c, 0x69, 0x73, 0x74, 0x3a,
+  0x20, 0x20, 0x3c, 0x6d, 0x61, 0x69, 0x6c, 0x74, 0x6f, 0x3a, 0x6e, 0x65,
+  0x74, 0x6d, 0x6f, 0x64, 0x40, 0x69, 0x65, 0x74, 0x66, 0x2e, 0x6f, 0x72,
+  0x67, 0x3e, 0x0a, 0x0a, 0x57, 0x47, 0x20, 0x43, 0x68, 0x61, 0x69, 0x72,
+  0x3a, 0x20, 0x4c, 0x6f, 0x75, 0x20, 0x42, 0x65, 0x72, 0x67, 0x65, 0x72,
+  0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+  0x3c, 0x6d, 0x61, 0x69, 0x6c, 0x74, 0x6f, 0x3a, 0x6c, 0x62, 0x65, 0x72,
+  0x67, 0x65, 0x72, 0x40, 0x6c, 0x61, 0x62, 0x6e, 0x2e, 0x6e, 0x65, 0x74,
+  0x3e, 0x0a, 0x0a, 0x57, 0x47, 0x20, 0x43, 0x68, 0x61, 0x69, 0x72, 0x3a,
+  0x20, 0x4b, 0x65, 0x6e, 0x74, 0x20, 0x57, 0x61, 0x74, 0x73, 0x65, 0x6e,
+  0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+  0x3c, 0x6d, 0x61, 0x69, 0x6c, 0x74, 0x6f, 0x3a, 0x6b, 0x77, 0x61, 0x74,
+  0x73, 0x65, 0x6e, 0x40, 0x6a, 0x75, 0x6e, 0x69, 0x70, 0x65, 0x72, 0x2e,
+  0x6e, 0x65, 0x74, 0x3e, 0x0a, 0x0a, 0x45, 0x64, 0x69, 0x74, 0x6f, 0x72,
+  0x3a, 0x20, 0x20, 0x20, 0x4c, 0x61, 0x64, 0x69, 0x73, 0x6c, 0x61, 0x76,
+  0x20, 0x4c, 0x68, 0x6f, 0x74, 0x6b, 0x61, 0x0a, 0x20, 0x20, 0x20, 0x20,
+  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x6d, 0x61, 0x69, 0x6c,
+  0x74, 0x6f, 0x3a, 0x6c, 0x68, 0x6f, 0x74, 0x6b, 0x61, 0x40, 0x6e, 0x69,
+  0x63, 0x2e, 0x63, 0x7a, 0x3e, 0x22, 0x3b, 0x64, 0x65, 0x73, 0x63, 0x72,
+  0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x22, 0x54, 0x68, 0x69, 0x73,
+  0x20, 0x59, 0x41, 0x4e, 0x47, 0x20, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65,
+  0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x61, 0x6e, 0x20,
+  0x27, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x27, 0x20,
+  0x73, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x74, 0x68,
+  0x61, 0x74, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x73, 0x0a, 0x66, 0x6f,
+  0x72, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x20, 0x6d,
+  0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x20, 0x61, 0x6e, 0x6e, 0x6f,
+  0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x0a, 0x0a, 0x43, 0x6f,
+  0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 0x74, 0x20, 0x28, 0x63, 0x29, 0x20,
+  0x32, 0x30, 0x31, 0x36, 0x20, 0x49, 0x45, 0x54, 0x46, 0x20, 0x54, 0x72,
+  0x75, 0x73, 0x74, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20,
+  0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x73, 0x20, 0x69, 0x64, 0x65, 0x6e,
+  0x74, 0x69, 0x66, 0x69, 0x65, 0x64, 0x20, 0x61, 0x73, 0x0a, 0x61, 0x75,
+  0x74, 0x68, 0x6f, 0x72, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65,
+  0x20, 0x63, 0x6f, 0x64, 0x65, 0x2e, 0x20, 0x20, 0x41, 0x6c, 0x6c, 0x20,
+  0x72, 0x69, 0x67, 0x68, 0x74, 0x73, 0x20, 0x72, 0x65, 0x73, 0x65, 0x72,
+  0x76, 0x65, 0x64, 0x2e, 0x0a, 0x0a, 0x52, 0x65, 0x64, 0x69, 0x73, 0x74,
+  0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x61, 0x6e, 0x64,
+  0x20, 0x75, 0x73, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x73, 0x6f, 0x75, 0x72,
+  0x63, 0x65, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x62, 0x69, 0x6e, 0x61, 0x72,
+  0x79, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x73, 0x2c, 0x20, 0x77, 0x69, 0x74,
+  0x68, 0x20, 0x6f, 0x72, 0x0a, 0x77, 0x69, 0x74, 0x68, 0x6f, 0x75, 0x74,
+  0x20, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+  0x6e, 0x2c, 0x20, 0x69, 0x73, 0x20, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x74,
+  0x74, 0x65, 0x64, 0x20, 0x70, 0x75, 0x72, 0x73, 0x75, 0x61, 0x6e, 0x74,
+  0x20, 0x74, 0x6f, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x73, 0x75, 0x62,
+  0x6a, 0x65, 0x63, 0x74, 0x20, 0x74, 0x6f, 0x0a, 0x74, 0x68, 0x65, 0x20,
+  0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x20, 0x74, 0x65, 0x72, 0x6d,
+  0x73, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x64, 0x20,
+  0x69, 0x6e, 0x2c, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x69, 0x6d, 0x70,
+  0x6c, 0x69, 0x66, 0x69, 0x65, 0x64, 0x20, 0x42, 0x53, 0x44, 0x20, 0x4c,
+  0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x20, 0x73, 0x65, 0x74, 0x0a, 0x66,
+  0x6f, 0x72, 0x74, 0x68, 0x20, 0x69, 0x6e, 0x20, 0x53, 0x65, 0x63, 0x74,
+  0x69, 0x6f, 0x6e, 0x20, 0x34, 0x2e, 0x63, 0x20, 0x6f, 0x66, 0x20, 0x74,
+  0x68, 0x65, 0x20, 0x49, 0x45, 0x54, 0x46, 0x20, 0x54, 0x72, 0x75, 0x73,
+  0x74, 0x27, 0x73, 0x20, 0x4c, 0x65, 0x67, 0x61, 0x6c, 0x20, 0x50, 0x72,
+  0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x52, 0x65, 0x6c,
+  0x61, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x6f, 0x20, 0x49, 0x45, 0x54,
+  0x46, 0x20, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a,
+  0x28, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x74, 0x72, 0x75, 0x73,
+  0x74, 0x65, 0x65, 0x2e, 0x69, 0x65, 0x74, 0x66, 0x2e, 0x6f, 0x72, 0x67,
+  0x2f, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x2d, 0x69, 0x6e, 0x66,
+  0x6f, 0x29, 0x2e, 0x0a, 0x0a, 0x54, 0x68, 0x69, 0x73, 0x20, 0x76, 0x65,
+  0x72, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x69,
+  0x73, 0x20, 0x59, 0x41, 0x4e, 0x47, 0x20, 0x6d, 0x6f, 0x64, 0x75, 0x6c,
+  0x65, 0x20, 0x69, 0x73, 0x20, 0x70, 0x61, 0x72, 0x74, 0x20, 0x6f, 0x66,
+  0x20, 0x52, 0x46, 0x43, 0x20, 0x37, 0x39, 0x35, 0x32, 0x0a, 0x28, 0x68,
+  0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x72, 0x66,
+  0x63, 0x2d, 0x65, 0x64, 0x69, 0x74, 0x6f, 0x72, 0x2e, 0x6f, 0x72, 0x67,
+  0x2f, 0x69, 0x6e, 0x66, 0x6f, 0x2f, 0x72, 0x66, 0x63, 0x37, 0x39, 0x35,
+  0x32, 0x29, 0x3b, 0x20, 0x73, 0x65, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20,
+  0x52, 0x46, 0x43, 0x20, 0x69, 0x74, 0x73, 0x65, 0x6c, 0x66, 0x0a, 0x66,
+  0x6f, 0x72, 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x20, 0x6c, 0x65, 0x67, 0x61,
+  0x6c, 0x20, 0x6e, 0x6f, 0x74, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x22, 0x3b,
+  0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x32, 0x30, 0x31,
+  0x36, 0x2d, 0x30, 0x38, 0x2d, 0x30, 0x35, 0x20, 0x7b, 0x64, 0x65, 0x73,
+  0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x22, 0x49, 0x6e,
+  0x69, 0x74, 0x69, 0x61, 0x6c, 0x20, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69,
+  0x6f, 0x6e, 0x2e, 0x22, 0x3b, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e,
+  0x63, 0x65, 0x20, 0x22, 0x52, 0x46, 0x43, 0x20, 0x37, 0x39, 0x35, 0x32,
+  0x3a, 0x20, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x20, 0x61,
+  0x6e, 0x64, 0x20, 0x55, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x4d, 0x65, 0x74,
+  0x61, 0x64, 0x61, 0x74, 0x61, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x59,
+  0x41, 0x4e, 0x47, 0x22, 0x3b, 0x7d, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73,
+  0x69, 0x6f, 0x6e, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69,
+  0x6f, 0x6e, 0x20, 0x7b, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74,
+  0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69,
+  0x70, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x22, 0x54, 0x68, 0x69, 0x73, 0x20,
+  0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x61, 0x6c,
+  0x6c, 0x6f, 0x77, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x64, 0x65, 0x66,
+  0x69, 0x6e, 0x69, 0x6e, 0x67, 0x20, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61,
+  0x74, 0x61, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f,
+  0x6e, 0x73, 0x20, 0x69, 0x6e, 0x0a, 0x59, 0x41, 0x4e, 0x47, 0x20, 0x6d,
+  0x6f, 0x64, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x20, 0x20, 0x54, 0x68, 0x65,
+  0x20, 0x27, 0x6d, 0x64, 0x3a, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74,
+  0x69, 0x6f, 0x6e, 0x27, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65,
+  0x6e, 0x74, 0x20, 0x63, 0x61, 0x6e, 0x20, 0x61, 0x70, 0x70, 0x65, 0x61,
+  0x72, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x0a, 0x61, 0x74, 0x20, 0x74, 0x68,
+  0x65, 0x20, 0x74, 0x6f, 0x70, 0x20, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x20,
+  0x6f, 0x66, 0x20, 0x61, 0x20, 0x59, 0x41, 0x4e, 0x47, 0x20, 0x6d, 0x6f,
+  0x64, 0x75, 0x6c, 0x65, 0x20, 0x6f, 0x72, 0x20, 0x73, 0x75, 0x62, 0x6d,
+  0x6f, 0x64, 0x75, 0x6c, 0x65, 0x2c, 0x20, 0x69, 0x2e, 0x65, 0x2e, 0x2c,
+  0x20, 0x69, 0x74, 0x0a, 0x62, 0x65, 0x63, 0x6f, 0x6d, 0x65, 0x73, 0x20,
+  0x61, 0x20, 0x6e, 0x65, 0x77, 0x20, 0x61, 0x6c, 0x74, 0x65, 0x72, 0x6e,
+  0x61, 0x74, 0x69, 0x76, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65,
+  0x20, 0x41, 0x42, 0x4e, 0x46, 0x20, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63,
+  0x74, 0x69, 0x6f, 0x6e, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x20, 0x66, 0x6f,
+  0x72, 0x0a, 0x27, 0x62, 0x6f, 0x64, 0x79, 0x2d, 0x73, 0x74, 0x6d, 0x74,
+  0x73, 0x27, 0x20, 0x28, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20,
+  0x31, 0x34, 0x20, 0x69, 0x6e, 0x20, 0x52, 0x46, 0x43, 0x20, 0x37, 0x39,
+  0x35, 0x30, 0x29, 0x2e, 0x0a, 0x0a, 0x54, 0x68, 0x65, 0x20, 0x61, 0x72,
+  0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68,
+  0x65, 0x20, 0x27, 0x6d, 0x64, 0x3a, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61,
+  0x74, 0x69, 0x6f, 0x6e, 0x27, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x6d,
+  0x65, 0x6e, 0x74, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x73, 0x20,
+  0x74, 0x68, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x0a, 0x6f, 0x66, 0x20,
+  0x74, 0x68, 0x65, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69,
+  0x6f, 0x6e, 0x2e, 0x20, 0x20, 0x53, 0x79, 0x6e, 0x74, 0x61, 0x63, 0x74,
+  0x69, 0x63, 0x61, 0x6c, 0x6c, 0x79, 0x2c, 0x20, 0x69, 0x74, 0x20, 0x69,
+  0x73, 0x20, 0x61, 0x20, 0x59, 0x41, 0x4e, 0x47, 0x20, 0x69, 0x64, 0x65,
+  0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x20, 0x61, 0x73, 0x0a, 0x64,
+  0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x53, 0x65,
+  0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x36, 0x2e, 0x32, 0x20, 0x6f, 0x66,
+  0x20, 0x52, 0x46, 0x43, 0x20, 0x37, 0x39, 0x35, 0x30, 0x2e, 0x0a, 0x0a,
+  0x41, 0x6e, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f,
+  0x6e, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x20, 0x77, 0x69,
+  0x74, 0x68, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x27, 0x65, 0x78, 0x74,
+  0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x27, 0x20, 0x73, 0x74, 0x61, 0x74,
+  0x65, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x69, 0x6e, 0x68, 0x65, 0x72, 0x69,
+  0x74, 0x73, 0x0a, 0x74, 0x68, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x73,
+  0x70, 0x61, 0x63, 0x65, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x6f, 0x74, 0x68,
+  0x65, 0x72, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x20, 0x66,
+  0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x59, 0x41, 0x4e, 0x47,
+  0x20, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x77,
+  0x68, 0x69, 0x63, 0x68, 0x0a, 0x69, 0x74, 0x20, 0x69, 0x73, 0x20, 0x64,
+  0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x2e, 0x0a, 0x0a, 0x54, 0x68, 0x65,
+  0x20, 0x64, 0x61, 0x74, 0x61, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f,
+  0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61,
+  0x74, 0x69, 0x6f, 0x6e, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x69,
+  0x73, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x20,
+  0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x0a,
+  0x77, 0x61, 0x79, 0x20, 0x61, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61,
+  0x20, 0x6c, 0x65, 0x61, 0x66, 0x20, 0x64, 0x61, 0x74, 0x61, 0x20, 0x6e,
+  0x6f, 0x64, 0x65, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68,
+  0x65, 0x20, 0x27, 0x74, 0x79, 0x70, 0x65, 0x27, 0x20, 0x73, 0x74, 0x61,
+  0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x0a, 0x0a, 0x54, 0x68, 0x65,
+  0x20, 0x73, 0x65, 0x6d, 0x61, 0x6e, 0x74, 0x69, 0x63, 0x73, 0x20, 0x6f,
+  0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61,
+  0x74, 0x69, 0x6f, 0x6e, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x6f, 0x74, 0x68,
+  0x65, 0x72, 0x20, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x61,
+  0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x61, 0x6e, 0x20, 0x62, 0x65, 0x0a,
+  0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x20, 0x75, 0x73,
+  0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x6f, 0x6c, 0x6c,
+  0x6f, 0x77, 0x69, 0x6e, 0x67, 0x20, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61,
+  0x72, 0x64, 0x20, 0x59, 0x41, 0x4e, 0x47, 0x20, 0x73, 0x75, 0x62, 0x73,
+  0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x28, 0x61,
+  0x6c, 0x6c, 0x0a, 0x61, 0x72, 0x65, 0x20, 0x6f, 0x70, 0x74, 0x69, 0x6f,
+  0x6e, 0x61, 0x6c, 0x29, 0x3a, 0x20, 0x27, 0x64, 0x65, 0x73, 0x63, 0x72,
+  0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x27, 0x2c, 0x20, 0x27, 0x69, 0x66,
+  0x2d, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x27, 0x2c, 0x20, 0x27,
+  0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x27, 0x2c, 0x0a,
+  0x27, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x27, 0x2c, 0x20, 0x61, 0x6e,
+  0x64, 0x20, 0x27, 0x75, 0x6e, 0x69, 0x74, 0x73, 0x27, 0x2e, 0x0a, 0x0a,
+  0x41, 0x20, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x20, 0x61, 0x6e, 0x6e,
+  0x6f, 0x75, 0x6e, 0x63, 0x65, 0x73, 0x20, 0x73, 0x75, 0x70, 0x70, 0x6f,
+  0x72, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x70, 0x61, 0x72,
+  0x74, 0x69, 0x63, 0x75, 0x6c, 0x61, 0x72, 0x20, 0x61, 0x6e, 0x6e, 0x6f,
+  0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x62, 0x79, 0x0a, 0x69, 0x6e,
+  0x63, 0x6c, 0x75, 0x64, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65, 0x20,
+  0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x77, 0x68,
+  0x69, 0x63, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x6e, 0x6e, 0x6f,
+  0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x73, 0x20, 0x64, 0x65,
+  0x66, 0x69, 0x6e, 0x65, 0x64, 0x20, 0x61, 0x6d, 0x6f, 0x6e, 0x67, 0x0a,
+  0x74, 0x68, 0x65, 0x20, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73,
+  0x65, 0x64, 0x20, 0x59, 0x41, 0x4e, 0x47, 0x20, 0x6d, 0x6f, 0x64, 0x75,
+  0x6c, 0x65, 0x73, 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, 0x2c, 0x20, 0x69,
+  0x6e, 0x20, 0x61, 0x20, 0x4e, 0x45, 0x54, 0x43, 0x4f, 0x4e, 0x46, 0x20,
+  0x3c, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x3e, 0x0a, 0x6d, 0x65, 0x73, 0x73,
+  0x61, 0x67, 0x65, 0x20, 0x6f, 0x72, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68,
+  0x65, 0x20, 0x59, 0x41, 0x4e, 0x47, 0x20, 0x6c, 0x69, 0x62, 0x72, 0x61,
+  0x72, 0x79, 0x20, 0x28, 0x52, 0x46, 0x43, 0x20, 0x37, 0x39, 0x35, 0x30,
+  0x29, 0x2e, 0x20, 0x20, 0x54, 0x68, 0x65, 0x20, 0x61, 0x6e, 0x6e, 0x6f,
+  0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x61, 0x6e, 0x0a, 0x74,
+  0x68, 0x65, 0x6e, 0x20, 0x62, 0x65, 0x20, 0x61, 0x74, 0x74, 0x61, 0x63,
+  0x68, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x79, 0x20, 0x69,
+  0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x61,
+  0x20, 0x64, 0x61, 0x74, 0x61, 0x20, 0x6e, 0x6f, 0x64, 0x65, 0x20, 0x64,
+  0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x61, 0x6e,
+  0x79, 0x0a, 0x59, 0x41, 0x4e, 0x47, 0x20, 0x6d, 0x6f, 0x64, 0x75, 0x6c,
+  0x65, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x69, 0x73, 0x20, 0x61, 0x64,
+  0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20,
+  0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x0a,
+  0x0a, 0x58, 0x4d, 0x4c, 0x20, 0x65, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e,
+  0x67, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x4a, 0x53, 0x4f, 0x4e, 0x20, 0x65,
+  0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x66, 0x20, 0x61,
+  0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61,
+  0x72, 0x65, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x20, 0x69,
+  0x6e, 0x0a, 0x52, 0x46, 0x43, 0x20, 0x37, 0x39, 0x35, 0x32, 0x2e, 0x22,
+  0x3b, 0x7d, 0x7d, 0x00
+};
diff --git a/models/ietf-yang-metadata@2016-08-05.yang b/models/ietf-yang-metadata@2016-08-05.yang
new file mode 100644
index 0000000..f59426a
--- /dev/null
+++ b/models/ietf-yang-metadata@2016-08-05.yang
@@ -0,0 +1,80 @@
+module ietf-yang-metadata {
+  namespace "urn:ietf:params:xml:ns:yang:ietf-yang-metadata";
+  prefix md;
+
+  organization
+    "IETF NETMOD (NETCONF Data Modeling Language) Working Group";
+  contact
+    "WG Web:   <https://datatracker.ietf.org/wg/netmod/>
+
+     WG List:  <mailto:netmod@ietf.org>
+
+     WG Chair: Lou Berger
+               <mailto:lberger@labn.net>
+
+     WG Chair: Kent Watsen
+               <mailto:kwatsen@juniper.net>
+
+     Editor:   Ladislav Lhotka
+               <mailto:lhotka@nic.cz>";
+  description
+    "This YANG module defines an 'extension' statement that allows
+     for defining metadata annotations.
+
+     Copyright (c) 2016 IETF Trust and the persons identified as
+     authors of the code.  All rights reserved.
+
+     Redistribution and use in source and binary forms, with or
+     without modification, is permitted pursuant to, and subject to
+     the license terms contained in, the Simplified BSD License set
+     forth in Section 4.c of the IETF Trust's Legal Provisions
+     Relating to IETF Documents
+     (http://trustee.ietf.org/license-info).
+
+     This version of this YANG module is part of RFC 7952
+     (http://www.rfc-editor.org/info/rfc7952); see the RFC itself
+     for full legal notices.";
+
+  revision 2016-08-05 {
+    description
+      "Initial revision.";
+    reference
+      "RFC 7952: Defining and Using Metadata with YANG";
+  }
+
+  extension annotation {
+    argument name;
+    description
+      "This extension allows for defining metadata annotations in
+       YANG modules.  The 'md:annotation' statement can appear only
+       at the top level of a YANG module or submodule, i.e., it
+       becomes a new alternative in the ABNF production rule for
+       'body-stmts' (Section 14 in RFC 7950).
+
+       The argument of the 'md:annotation' statement defines the name
+       of the annotation.  Syntactically, it is a YANG identifier as
+       defined in Section 6.2 of RFC 7950.
+
+       An annotation defined with this 'extension' statement inherits
+       the namespace and other context from the YANG module in which
+       it is defined.
+
+       The data type of the annotation value is specified in the same
+       way as for a leaf data node using the 'type' statement.
+
+       The semantics of the annotation and other documentation can be
+       specified using the following standard YANG substatements (all
+       are optional): 'description', 'if-feature', 'reference',
+       'status', and 'units'.
+
+       A server announces support for a particular annotation by
+       including the module in which the annotation is defined among
+       the advertised YANG modules, e.g., in a NETCONF <hello>
+       message or in the YANG library (RFC 7950).  The annotation can
+       then be attached to any instance of a data node defined in any
+       YANG module that is advertised by the server.
+
+       XML encoding and JSON encoding of annotations are defined in
+       RFC 7952.";
+  }
+}
diff --git a/models/ietf-yang-types@2013-07-15.h b/models/ietf-yang-types@2013-07-15.h
new file mode 100644
index 0000000..45ce2d0
--- /dev/null
+++ b/models/ietf-yang-types@2013-07-15.h
@@ -0,0 +1,1292 @@
+unsigned char ietf_yang_types_2013_07_15_yang[] = {
+  0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x20, 0x69, 0x65, 0x74, 0x66, 0x2d,
+  0x79, 0x61, 0x6e, 0x67, 0x2d, 0x74, 0x79, 0x70, 0x65, 0x73, 0x20, 0x7b,
+  0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x20, 0x22, 0x75,
+  0x72, 0x6e, 0x3a, 0x69, 0x65, 0x74, 0x66, 0x3a, 0x70, 0x61, 0x72, 0x61,
+  0x6d, 0x73, 0x3a, 0x78, 0x6d, 0x6c, 0x3a, 0x6e, 0x73, 0x3a, 0x79, 0x61,
+  0x6e, 0x67, 0x3a, 0x69, 0x65, 0x74, 0x66, 0x2d, 0x79, 0x61, 0x6e, 0x67,
+  0x2d, 0x74, 0x79, 0x70, 0x65, 0x73, 0x22, 0x3b, 0x70, 0x72, 0x65, 0x66,
+  0x69, 0x78, 0x20, 0x22, 0x79, 0x61, 0x6e, 0x67, 0x22, 0x3b, 0x6f, 0x72,
+  0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x22,
+  0x49, 0x45, 0x54, 0x46, 0x20, 0x4e, 0x45, 0x54, 0x4d, 0x4f, 0x44, 0x20,
+  0x28, 0x4e, 0x45, 0x54, 0x43, 0x4f, 0x4e, 0x46, 0x20, 0x44, 0x61, 0x74,
+  0x61, 0x20, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x69, 0x6e, 0x67, 0x20, 0x4c,
+  0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x29, 0x20, 0x57, 0x6f, 0x72,
+  0x6b, 0x69, 0x6e, 0x67, 0x20, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x22, 0x3b,
+  0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x0a, 0x22, 0x57, 0x47, 0x20,
+  0x57, 0x65, 0x62, 0x3a, 0x20, 0x20, 0x20, 0x3c, 0x68, 0x74, 0x74, 0x70,
+  0x3a, 0x2f, 0x2f, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x69, 0x65, 0x74,
+  0x66, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x77, 0x67, 0x2f, 0x6e, 0x65, 0x74,
+  0x6d, 0x6f, 0x64, 0x2f, 0x3e, 0x0a, 0x57, 0x47, 0x20, 0x4c, 0x69, 0x73,
+  0x74, 0x3a, 0x20, 0x20, 0x3c, 0x6d, 0x61, 0x69, 0x6c, 0x74, 0x6f, 0x3a,
+  0x6e, 0x65, 0x74, 0x6d, 0x6f, 0x64, 0x40, 0x69, 0x65, 0x74, 0x66, 0x2e,
+  0x6f, 0x72, 0x67, 0x3e, 0x0a, 0x0a, 0x57, 0x47, 0x20, 0x43, 0x68, 0x61,
+  0x69, 0x72, 0x3a, 0x20, 0x44, 0x61, 0x76, 0x69, 0x64, 0x20, 0x4b, 0x65,
+  0x73, 0x73, 0x65, 0x6e, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+  0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x6d, 0x61, 0x69, 0x6c, 0x74, 0x6f,
+  0x3a, 0x64, 0x61, 0x76, 0x69, 0x64, 0x2e, 0x6b, 0x65, 0x73, 0x73, 0x65,
+  0x6e, 0x73, 0x40, 0x6e, 0x73, 0x6e, 0x2e, 0x63, 0x6f, 0x6d, 0x3e, 0x0a,
+  0x0a, 0x57, 0x47, 0x20, 0x43, 0x68, 0x61, 0x69, 0x72, 0x3a, 0x20, 0x4a,
+  0x75, 0x65, 0x72, 0x67, 0x65, 0x6e, 0x20, 0x53, 0x63, 0x68, 0x6f, 0x65,
+  0x6e, 0x77, 0x61, 0x65, 0x6c, 0x64, 0x65, 0x72, 0x0a, 0x20, 0x20, 0x20,
+  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x6d, 0x61, 0x69,
+  0x6c, 0x74, 0x6f, 0x3a, 0x6a, 0x2e, 0x73, 0x63, 0x68, 0x6f, 0x65, 0x6e,
+  0x77, 0x61, 0x65, 0x6c, 0x64, 0x65, 0x72, 0x40, 0x6a, 0x61, 0x63, 0x6f,
+  0x62, 0x73, 0x2d, 0x75, 0x6e, 0x69, 0x76, 0x65, 0x72, 0x73, 0x69, 0x74,
+  0x79, 0x2e, 0x64, 0x65, 0x3e, 0x0a, 0x0a, 0x45, 0x64, 0x69, 0x74, 0x6f,
+  0x72, 0x3a, 0x20, 0x20, 0x20, 0x4a, 0x75, 0x65, 0x72, 0x67, 0x65, 0x6e,
+  0x20, 0x53, 0x63, 0x68, 0x6f, 0x65, 0x6e, 0x77, 0x61, 0x65, 0x6c, 0x64,
+  0x65, 0x72, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+  0x20, 0x20, 0x3c, 0x6d, 0x61, 0x69, 0x6c, 0x74, 0x6f, 0x3a, 0x6a, 0x2e,
+  0x73, 0x63, 0x68, 0x6f, 0x65, 0x6e, 0x77, 0x61, 0x65, 0x6c, 0x64, 0x65,
+  0x72, 0x40, 0x6a, 0x61, 0x63, 0x6f, 0x62, 0x73, 0x2d, 0x75, 0x6e, 0x69,
+  0x76, 0x65, 0x72, 0x73, 0x69, 0x74, 0x79, 0x2e, 0x64, 0x65, 0x3e, 0x22,
+  0x3b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e,
+  0x0a, 0x22, 0x54, 0x68, 0x69, 0x73, 0x20, 0x6d, 0x6f, 0x64, 0x75, 0x6c,
+  0x65, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x73, 0x20, 0x61,
+  0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20,
+  0x6f, 0x66, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x6c, 0x79,
+  0x20, 0x75, 0x73, 0x65, 0x66, 0x75, 0x6c, 0x20, 0x64, 0x65, 0x72, 0x69,
+  0x76, 0x65, 0x64, 0x0a, 0x59, 0x41, 0x4e, 0x47, 0x20, 0x64, 0x61, 0x74,
+  0x61, 0x20, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x0a, 0x0a, 0x43, 0x6f,
+  0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 0x74, 0x20, 0x28, 0x63, 0x29, 0x20,
+  0x32, 0x30, 0x31, 0x33, 0x20, 0x49, 0x45, 0x54, 0x46, 0x20, 0x54, 0x72,
+  0x75, 0x73, 0x74, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20,
+  0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x73, 0x20, 0x69, 0x64, 0x65, 0x6e,
+  0x74, 0x69, 0x66, 0x69, 0x65, 0x64, 0x20, 0x61, 0x73, 0x0a, 0x61, 0x75,
+  0x74, 0x68, 0x6f, 0x72, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65,
+  0x20, 0x63, 0x6f, 0x64, 0x65, 0x2e, 0x20, 0x20, 0x41, 0x6c, 0x6c, 0x20,
+  0x72, 0x69, 0x67, 0x68, 0x74, 0x73, 0x20, 0x72, 0x65, 0x73, 0x65, 0x72,
+  0x76, 0x65, 0x64, 0x2e, 0x0a, 0x0a, 0x52, 0x65, 0x64, 0x69, 0x73, 0x74,
+  0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x61, 0x6e, 0x64,
+  0x20, 0x75, 0x73, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x73, 0x6f, 0x75, 0x72,
+  0x63, 0x65, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x62, 0x69, 0x6e, 0x61, 0x72,
+  0x79, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x73, 0x2c, 0x20, 0x77, 0x69, 0x74,
+  0x68, 0x20, 0x6f, 0x72, 0x0a, 0x77, 0x69, 0x74, 0x68, 0x6f, 0x75, 0x74,
+  0x20, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+  0x6e, 0x2c, 0x20, 0x69, 0x73, 0x20, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x74,
+  0x74, 0x65, 0x64, 0x20, 0x70, 0x75, 0x72, 0x73, 0x75, 0x61, 0x6e, 0x74,
+  0x20, 0x74, 0x6f, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x73, 0x75, 0x62,
+  0x6a, 0x65, 0x63, 0x74, 0x0a, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20,
+  0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x20, 0x74, 0x65, 0x72, 0x6d,
+  0x73, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x64, 0x20,
+  0x69, 0x6e, 0x2c, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x69, 0x6d, 0x70,
+  0x6c, 0x69, 0x66, 0x69, 0x65, 0x64, 0x20, 0x42, 0x53, 0x44, 0x20, 0x4c,
+  0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x0a, 0x73, 0x65, 0x74, 0x20, 0x66,
+  0x6f, 0x72, 0x74, 0x68, 0x20, 0x69, 0x6e, 0x20, 0x53, 0x65, 0x63, 0x74,
+  0x69, 0x6f, 0x6e, 0x20, 0x34, 0x2e, 0x63, 0x20, 0x6f, 0x66, 0x20, 0x74,
+  0x68, 0x65, 0x20, 0x49, 0x45, 0x54, 0x46, 0x20, 0x54, 0x72, 0x75, 0x73,
+  0x74, 0x27, 0x73, 0x20, 0x4c, 0x65, 0x67, 0x61, 0x6c, 0x20, 0x50, 0x72,
+  0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x52, 0x65, 0x6c,
+  0x61, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x6f, 0x20, 0x49, 0x45, 0x54,
+  0x46, 0x20, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a,
+  0x28, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x74, 0x72, 0x75, 0x73,
+  0x74, 0x65, 0x65, 0x2e, 0x69, 0x65, 0x74, 0x66, 0x2e, 0x6f, 0x72, 0x67,
+  0x2f, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x2d, 0x69, 0x6e, 0x66,
+  0x6f, 0x29, 0x2e, 0x0a, 0x0a, 0x54, 0x68, 0x69, 0x73, 0x20, 0x76, 0x65,
+  0x72, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x69,
+  0x73, 0x20, 0x59, 0x41, 0x4e, 0x47, 0x20, 0x6d, 0x6f, 0x64, 0x75, 0x6c,
+  0x65, 0x20, 0x69, 0x73, 0x20, 0x70, 0x61, 0x72, 0x74, 0x20, 0x6f, 0x66,
+  0x20, 0x52, 0x46, 0x43, 0x20, 0x36, 0x39, 0x39, 0x31, 0x3b, 0x20, 0x73,
+  0x65, 0x65, 0x0a, 0x74, 0x68, 0x65, 0x20, 0x52, 0x46, 0x43, 0x20, 0x69,
+  0x74, 0x73, 0x65, 0x6c, 0x66, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x66, 0x75,
+  0x6c, 0x6c, 0x20, 0x6c, 0x65, 0x67, 0x61, 0x6c, 0x20, 0x6e, 0x6f, 0x74,
+  0x69, 0x63, 0x65, 0x73, 0x2e, 0x22, 0x3b, 0x72, 0x65, 0x76, 0x69, 0x73,
+  0x69, 0x6f, 0x6e, 0x20, 0x32, 0x30, 0x31, 0x33, 0x2d, 0x30, 0x37, 0x2d,
+  0x31, 0x35, 0x20, 0x7b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74,
+  0x69, 0x6f, 0x6e, 0x0a, 0x22, 0x54, 0x68, 0x69, 0x73, 0x20, 0x72, 0x65,
+  0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x73, 0x20,
+  0x74, 0x68, 0x65, 0x20, 0x66, 0x6f, 0x6c, 0x6c, 0x6f, 0x77, 0x69, 0x6e,
+  0x67, 0x20, 0x6e, 0x65, 0x77, 0x20, 0x64, 0x61, 0x74, 0x61, 0x20, 0x74,
+  0x79, 0x70, 0x65, 0x73, 0x3a, 0x0a, 0x2d, 0x20, 0x79, 0x61, 0x6e, 0x67,
+  0x2d, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x0a,
+  0x2d, 0x20, 0x68, 0x65, 0x78, 0x2d, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67,
+  0x0a, 0x2d, 0x20, 0x75, 0x75, 0x69, 0x64, 0x0a, 0x2d, 0x20, 0x64, 0x6f,
+  0x74, 0x74, 0x65, 0x64, 0x2d, 0x71, 0x75, 0x61, 0x64, 0x22, 0x3b, 0x72,
+  0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x22, 0x52, 0x46,
+  0x43, 0x20, 0x36, 0x39, 0x39, 0x31, 0x3a, 0x20, 0x43, 0x6f, 0x6d, 0x6d,
+  0x6f, 0x6e, 0x20, 0x59, 0x41, 0x4e, 0x47, 0x20, 0x44, 0x61, 0x74, 0x61,
+  0x20, 0x54, 0x79, 0x70, 0x65, 0x73, 0x22, 0x3b, 0x7d, 0x72, 0x65, 0x76,
+  0x69, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x32, 0x30, 0x31, 0x30, 0x2d, 0x30,
+  0x39, 0x2d, 0x32, 0x34, 0x20, 0x7b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69,
+  0x70, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x22, 0x49, 0x6e, 0x69, 0x74, 0x69,
+  0x61, 0x6c, 0x20, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e,
+  0x22, 0x3b, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x20,
+  0x22, 0x52, 0x46, 0x43, 0x20, 0x36, 0x30, 0x32, 0x31, 0x3a, 0x20, 0x43,
+  0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x20, 0x59, 0x41, 0x4e, 0x47, 0x20, 0x44,
+  0x61, 0x74, 0x61, 0x20, 0x54, 0x79, 0x70, 0x65, 0x73, 0x22, 0x3b, 0x7d,
+  0x74, 0x79, 0x70, 0x65, 0x64, 0x65, 0x66, 0x20, 0x63, 0x6f, 0x75, 0x6e,
+  0x74, 0x65, 0x72, 0x33, 0x32, 0x20, 0x7b, 0x74, 0x79, 0x70, 0x65, 0x20,
+  0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x3b, 0x64, 0x65, 0x73, 0x63, 0x72,
+  0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x22, 0x54, 0x68, 0x65, 0x20,
+  0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x33, 0x32, 0x20, 0x74, 0x79,
+  0x70, 0x65, 0x20, 0x72, 0x65, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74,
+  0x73, 0x20, 0x61, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x6e, 0x65, 0x67, 0x61,
+  0x74, 0x69, 0x76, 0x65, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72,
+  0x0a, 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, 0x6f, 0x6e, 0x6f, 0x74, 0x6f,
+  0x6e, 0x69, 0x63, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x69, 0x6e, 0x63, 0x72,
+  0x65, 0x61, 0x73, 0x65, 0x73, 0x20, 0x75, 0x6e, 0x74, 0x69, 0x6c, 0x20,
+  0x69, 0x74, 0x20, 0x72, 0x65, 0x61, 0x63, 0x68, 0x65, 0x73, 0x20, 0x61,
+  0x0a, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x76, 0x61, 0x6c,
+  0x75, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x32, 0x5e, 0x33, 0x32, 0x2d, 0x31,
+  0x20, 0x28, 0x34, 0x32, 0x39, 0x34, 0x39, 0x36, 0x37, 0x32, 0x39, 0x35,
+  0x20, 0x64, 0x65, 0x63, 0x69, 0x6d, 0x61, 0x6c, 0x29, 0x2c, 0x20, 0x77,
+  0x68, 0x65, 0x6e, 0x20, 0x69, 0x74, 0x0a, 0x77, 0x72, 0x61, 0x70, 0x73,
+  0x20, 0x61, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x20, 0x61, 0x6e, 0x64, 0x20,
+  0x73, 0x74, 0x61, 0x72, 0x74, 0x73, 0x20, 0x69, 0x6e, 0x63, 0x72, 0x65,
+  0x61, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x67, 0x61, 0x69, 0x6e, 0x20,
+  0x66, 0x72, 0x6f, 0x6d, 0x20, 0x7a, 0x65, 0x72, 0x6f, 0x2e, 0x0a, 0x0a,
+  0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x73, 0x20, 0x68, 0x61, 0x76,
+  0x65, 0x20, 0x6e, 0x6f, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64,
+  0x20, 0x27, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x27, 0x20, 0x76,
+  0x61, 0x6c, 0x75, 0x65, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x74, 0x68,
+  0x75, 0x73, 0x2c, 0x20, 0x61, 0x0a, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65,
+  0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x20,
+  0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x20, 0x68, 0x61, 0x73, 0x20,
+  0x28, 0x69, 0x6e, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x29,
+  0x20, 0x6e, 0x6f, 0x20, 0x69, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74,
+  0x69, 0x6f, 0x6e, 0x0a, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x2e,
+  0x20, 0x20, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x75,
+  0x69, 0x74, 0x69, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65,
+  0x20, 0x6d, 0x6f, 0x6e, 0x6f, 0x74, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c,
+  0x6c, 0x79, 0x20, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x69, 0x6e,
+  0x67, 0x0a, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6e, 0x6f, 0x72, 0x6d,
+  0x61, 0x6c, 0x6c, 0x79, 0x20, 0x6f, 0x63, 0x63, 0x75, 0x72, 0x20, 0x61,
+  0x74, 0x20, 0x72, 0x65, 0x2d, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c,
+  0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x74,
+  0x68, 0x65, 0x0a, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e,
+  0x74, 0x20, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x2c, 0x20, 0x61, 0x6e,
+  0x64, 0x20, 0x61, 0x74, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x74,
+  0x69, 0x6d, 0x65, 0x73, 0x20, 0x61, 0x73, 0x20, 0x73, 0x70, 0x65, 0x63,
+  0x69, 0x66, 0x69, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65,
+  0x0a, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e,
+  0x20, 0x6f, 0x66, 0x20, 0x61, 0x20, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61,
+  0x20, 0x6e, 0x6f, 0x64, 0x65, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20,
+  0x74, 0x68, 0x69, 0x73, 0x20, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x20, 0x20,
+  0x49, 0x66, 0x20, 0x73, 0x75, 0x63, 0x68, 0x0a, 0x6f, 0x74, 0x68, 0x65,
+  0x72, 0x20, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x20, 0x63, 0x61, 0x6e, 0x20,
+  0x6f, 0x63, 0x63, 0x75, 0x72, 0x2c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65,
+  0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x2c, 0x20, 0x74, 0x68, 0x65, 0x20,
+  0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x0a,
+  0x61, 0x20, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x20, 0x6e, 0x6f, 0x64,
+  0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x63, 0x6f,
+  0x75, 0x6e, 0x74, 0x65, 0x72, 0x33, 0x32, 0x20, 0x61, 0x74, 0x20, 0x74,
+  0x69, 0x6d, 0x65, 0x73, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x74,
+  0x68, 0x61, 0x6e, 0x0a, 0x72, 0x65, 0x2d, 0x69, 0x6e, 0x69, 0x74, 0x69,
+  0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x74,
+  0x68, 0x65, 0x6e, 0x20, 0x61, 0x20, 0x63, 0x6f, 0x72, 0x72, 0x65, 0x73,
+  0x70, 0x6f, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x20, 0x73, 0x63, 0x68, 0x65,
+  0x6d, 0x61, 0x20, 0x6e, 0x6f, 0x64, 0x65, 0x0a, 0x73, 0x68, 0x6f, 0x75,
+  0x6c, 0x64, 0x20, 0x62, 0x65, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65,
+  0x64, 0x2c, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x61, 0x6e, 0x20, 0x61,
+  0x70, 0x70, 0x72, 0x6f, 0x70, 0x72, 0x69, 0x61, 0x74, 0x65, 0x20, 0x74,
+  0x79, 0x70, 0x65, 0x2c, 0x20, 0x74, 0x6f, 0x20, 0x69, 0x6e, 0x64, 0x69,
+  0x63, 0x61, 0x74, 0x65, 0x0a, 0x74, 0x68, 0x65, 0x20, 0x6c, 0x61, 0x73,
+  0x74, 0x20, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x75,
+  0x69, 0x74, 0x79, 0x2e, 0x0a, 0x0a, 0x54, 0x68, 0x65, 0x20, 0x63, 0x6f,
+  0x75, 0x6e, 0x74, 0x65, 0x72, 0x33, 0x32, 0x20, 0x74, 0x79, 0x70, 0x65,
+  0x20, 0x73, 0x68, 0x6f, 0x75, 0x6c, 0x64, 0x20, 0x6e, 0x6f, 0x74, 0x20,
+  0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x66, 0x6f, 0x72, 0x20,
+  0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f,
+  0x6e, 0x0a, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x20, 0x6e, 0x6f, 0x64,
+  0x65, 0x73, 0x2e, 0x20, 0x20, 0x41, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75,
+  0x6c, 0x74, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74,
+  0x20, 0x53, 0x48, 0x4f, 0x55, 0x4c, 0x44, 0x20, 0x4e, 0x4f, 0x54, 0x20,
+  0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x0a, 0x63,
+  0x6f, 0x6d, 0x62, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x77,
+  0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x74, 0x79, 0x70, 0x65,
+  0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x33, 0x32, 0x2e, 0x0a,
+  0x0a, 0x49, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x76, 0x61, 0x6c, 0x75,
+  0x65, 0x20, 0x73, 0x65, 0x74, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x69, 0x74,
+  0x73, 0x20, 0x73, 0x65, 0x6d, 0x61, 0x6e, 0x74, 0x69, 0x63, 0x73, 0x2c,
+  0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x69,
+  0x73, 0x20, 0x65, 0x71, 0x75, 0x69, 0x76, 0x61, 0x6c, 0x65, 0x6e, 0x74,
+  0x0a, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x43, 0x6f, 0x75, 0x6e,
+  0x74, 0x65, 0x72, 0x33, 0x32, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f,
+  0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x4d, 0x49, 0x76, 0x32, 0x2e,
+  0x22, 0x3b, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x0a,
+  0x22, 0x52, 0x46, 0x43, 0x20, 0x32, 0x35, 0x37, 0x38, 0x3a, 0x20, 0x53,
+  0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x20, 0x6f, 0x66, 0x20,
+  0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x49,
+  0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x56,
+  0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x32, 0x0a, 0x20, 0x20, 0x20,
+  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x28, 0x53, 0x4d, 0x49,
+  0x76, 0x32, 0x29, 0x22, 0x3b, 0x7d, 0x74, 0x79, 0x70, 0x65, 0x64, 0x65,
+  0x66, 0x20, 0x7a, 0x65, 0x72, 0x6f, 0x2d, 0x62, 0x61, 0x73, 0x65, 0x64,
+  0x2d, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x33, 0x32, 0x20, 0x7b,
+  0x74, 0x79, 0x70, 0x65, 0x20, 0x79, 0x61, 0x6e, 0x67, 0x3a, 0x63, 0x6f,
+  0x75, 0x6e, 0x74, 0x65, 0x72, 0x33, 0x32, 0x3b, 0x64, 0x65, 0x66, 0x61,
+  0x75, 0x6c, 0x74, 0x20, 0x22, 0x30, 0x22, 0x3b, 0x64, 0x65, 0x73, 0x63,
+  0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x22, 0x54, 0x68, 0x65,
+  0x20, 0x7a, 0x65, 0x72, 0x6f, 0x2d, 0x62, 0x61, 0x73, 0x65, 0x64, 0x2d,
+  0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x33, 0x32, 0x20, 0x74, 0x79,
+  0x70, 0x65, 0x20, 0x72, 0x65, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74,
+  0x73, 0x20, 0x61, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x33,
+  0x32, 0x0a, 0x74, 0x68, 0x61, 0x74, 0x20, 0x68, 0x61, 0x73, 0x20, 0x74,
+  0x68, 0x65, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x20, 0x27,
+  0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x27, 0x20, 0x76, 0x61, 0x6c,
+  0x75, 0x65, 0x20, 0x7a, 0x65, 0x72, 0x6f, 0x2e, 0x0a, 0x0a, 0x41, 0x20,
+  0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x20, 0x6e, 0x6f, 0x64, 0x65, 0x20,
+  0x6f, 0x66, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x74, 0x79, 0x70, 0x65,
+  0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x73, 0x65, 0x74,
+  0x20, 0x74, 0x6f, 0x20, 0x7a, 0x65, 0x72, 0x6f, 0x20, 0x28, 0x30, 0x29,
+  0x20, 0x6f, 0x6e, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+  0x0a, 0x61, 0x6e, 0x64, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x74, 0x68,
+  0x65, 0x72, 0x65, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x69, 0x6e, 0x63,
+  0x72, 0x65, 0x61, 0x73, 0x65, 0x20, 0x6d, 0x6f, 0x6e, 0x6f, 0x74, 0x6f,
+  0x6e, 0x69, 0x63, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x75, 0x6e, 0x74, 0x69,
+  0x6c, 0x20, 0x69, 0x74, 0x20, 0x72, 0x65, 0x61, 0x63, 0x68, 0x65, 0x73,
+  0x0a, 0x61, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x76,
+  0x61, 0x6c, 0x75, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x32, 0x5e, 0x33, 0x32,
+  0x2d, 0x31, 0x20, 0x28, 0x34, 0x32, 0x39, 0x34, 0x39, 0x36, 0x37, 0x32,
+  0x39, 0x35, 0x20, 0x64, 0x65, 0x63, 0x69, 0x6d, 0x61, 0x6c, 0x29, 0x2c,
+  0x20, 0x77, 0x68, 0x65, 0x6e, 0x20, 0x69, 0x74, 0x0a, 0x77, 0x72, 0x61,
+  0x70, 0x73, 0x20, 0x61, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x20, 0x61, 0x6e,
+  0x64, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x73, 0x20, 0x69, 0x6e, 0x63,
+  0x72, 0x65, 0x61, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x67, 0x61, 0x69,
+  0x6e, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x7a, 0x65, 0x72, 0x6f, 0x2e,
+  0x0a, 0x0a, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x74,
+  0x68, 0x61, 0x74, 0x20, 0x61, 0x6e, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69,
+  0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x64, 0x69, 0x73, 0x63, 0x6f,
+  0x76, 0x65, 0x72, 0x73, 0x20, 0x61, 0x20, 0x6e, 0x65, 0x77, 0x20, 0x73,
+  0x63, 0x68, 0x65, 0x6d, 0x61, 0x20, 0x6e, 0x6f, 0x64, 0x65, 0x0a, 0x6f,
+  0x66, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20,
+  0x77, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d,
+  0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x74, 0x69, 0x6d, 0x65, 0x20,
+  0x74, 0x6f, 0x20, 0x77, 0x72, 0x61, 0x70, 0x2c, 0x20, 0x69, 0x74, 0x20,
+  0x63, 0x61, 0x6e, 0x20, 0x75, 0x73, 0x65, 0x20, 0x74, 0x68, 0x65, 0x0a,
+  0x27, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x27, 0x20, 0x76, 0x61,
+  0x6c, 0x75, 0x65, 0x20, 0x61, 0x73, 0x20, 0x61, 0x20, 0x64, 0x65, 0x6c,
+  0x74, 0x61, 0x2e, 0x20, 0x20, 0x49, 0x74, 0x20, 0x69, 0x73, 0x20, 0x69,
+  0x6d, 0x70, 0x6f, 0x72, 0x74, 0x61, 0x6e, 0x74, 0x20, 0x66, 0x6f, 0x72,
+  0x20, 0x61, 0x20, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e,
+  0x74, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f,
+  0x20, 0x62, 0x65, 0x20, 0x61, 0x77, 0x61, 0x72, 0x65, 0x20, 0x6f, 0x66,
+  0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75,
+  0x6d, 0x20, 0x74, 0x69, 0x6d, 0x65, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x74,
+  0x68, 0x65, 0x20, 0x61, 0x63, 0x74, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x69,
+  0x6d, 0x65, 0x0a, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x70,
+  0x6f, 0x6c, 0x6c, 0x73, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x74, 0x6f,
+  0x20, 0x64, 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, 0x20, 0x64, 0x61, 0x74,
+  0x61, 0x20, 0x69, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x63, 0x74,
+  0x75, 0x61, 0x6c, 0x20, 0x74, 0x69, 0x6d, 0x65, 0x20, 0x69, 0x73, 0x20,
+  0x74, 0x6f, 0x6f, 0x0a, 0x6c, 0x6f, 0x6e, 0x67, 0x20, 0x6f, 0x72, 0x20,
+  0x74, 0x68, 0x65, 0x72, 0x65, 0x20, 0x69, 0x73, 0x20, 0x6e, 0x6f, 0x20,
+  0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x20, 0x6d, 0x69, 0x6e, 0x69,
+  0x6d, 0x75, 0x6d, 0x20, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x0a, 0x0a, 0x49,
+  0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20,
+  0x73, 0x65, 0x74, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x69, 0x74, 0x73, 0x20,
+  0x73, 0x65, 0x6d, 0x61, 0x6e, 0x74, 0x69, 0x63, 0x73, 0x2c, 0x20, 0x74,
+  0x68, 0x69, 0x73, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x69, 0x73, 0x20,
+  0x65, 0x71, 0x75, 0x69, 0x76, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x0a, 0x74,
+  0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x5a, 0x65, 0x72, 0x6f, 0x42, 0x61,
+  0x73, 0x65, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x33, 0x32,
+  0x20, 0x74, 0x65, 0x78, 0x74, 0x75, 0x61, 0x6c, 0x20, 0x63, 0x6f, 0x6e,
+  0x76, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x74,
+  0x68, 0x65, 0x20, 0x53, 0x4d, 0x49, 0x76, 0x32, 0x2e, 0x22, 0x3b, 0x72,
+  0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x0a, 0x22, 0x52, 0x46,
+  0x43, 0x20, 0x34, 0x35, 0x30, 0x32, 0x3a, 0x20, 0x52, 0x65, 0x6d, 0x6f,
+  0x74, 0x65, 0x20, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x20, 0x4d,
+  0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x4d, 0x61,
+  0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x49, 0x6e, 0x66,
+  0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x20, 0x20, 0x20,
+  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x61, 0x73, 0x65,
+  0x20, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x32, 0x22, 0x3b,
+  0x7d, 0x74, 0x79, 0x70, 0x65, 0x64, 0x65, 0x66, 0x20, 0x63, 0x6f, 0x75,
+  0x6e, 0x74, 0x65, 0x72, 0x36, 0x34, 0x20, 0x7b, 0x74, 0x79, 0x70, 0x65,
+  0x20, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x3b, 0x64, 0x65, 0x73, 0x63,
+  0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x22, 0x54, 0x68, 0x65,
+  0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x36, 0x34, 0x20, 0x74,
+  0x79, 0x70, 0x65, 0x20, 0x72, 0x65, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e,
+  0x74, 0x73, 0x20, 0x61, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x6e, 0x65, 0x67,
+  0x61, 0x74, 0x69, 0x76, 0x65, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65,
+  0x72, 0x0a, 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, 0x6f, 0x6e, 0x6f, 0x74,
+  0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x69, 0x6e, 0x63,
+  0x72, 0x65, 0x61, 0x73, 0x65, 0x73, 0x20, 0x75, 0x6e, 0x74, 0x69, 0x6c,
+  0x20, 0x69, 0x74, 0x20, 0x72, 0x65, 0x61, 0x63, 0x68, 0x65, 0x73, 0x20,
+  0x61, 0x0a, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x76, 0x61,
+  0x6c, 0x75, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x32, 0x5e, 0x36, 0x34, 0x2d,
+  0x31, 0x20, 0x28, 0x31, 0x38, 0x34, 0x34, 0x36, 0x37, 0x34, 0x34, 0x30,
+  0x37, 0x33, 0x37, 0x30, 0x39, 0x35, 0x35, 0x31, 0x36, 0x31, 0x35, 0x20,
+  0x64, 0x65, 0x63, 0x69, 0x6d, 0x61, 0x6c, 0x29, 0x2c, 0x0a, 0x77, 0x68,
+  0x65, 0x6e, 0x20, 0x69, 0x74, 0x20, 0x77, 0x72, 0x61, 0x70, 0x73, 0x20,
+  0x61, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x73,
+  0x74, 0x61, 0x72, 0x74, 0x73, 0x20, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x61,
+  0x73, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x67, 0x61, 0x69, 0x6e, 0x20, 0x66,
+  0x72, 0x6f, 0x6d, 0x20, 0x7a, 0x65, 0x72, 0x6f, 0x2e, 0x0a, 0x0a, 0x43,
+  0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x73, 0x20, 0x68, 0x61, 0x76, 0x65,
+  0x20, 0x6e, 0x6f, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x20,
+  0x27, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x27, 0x20, 0x76, 0x61,
+  0x6c, 0x75, 0x65, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x75,
+  0x73, 0x2c, 0x20, 0x61, 0x0a, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x20,
+  0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x20, 0x63,
+  0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x20, 0x68, 0x61, 0x73, 0x20, 0x28,
+  0x69, 0x6e, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x29, 0x20,
+  0x6e, 0x6f, 0x20, 0x69, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69,
+  0x6f, 0x6e, 0x0a, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x2e, 0x20,
+  0x20, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x75, 0x69,
+  0x74, 0x69, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20,
+  0x6d, 0x6f, 0x6e, 0x6f, 0x74, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x6c,
+  0x79, 0x20, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x69, 0x6e, 0x67,
+  0x0a, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61,
+  0x6c, 0x6c, 0x79, 0x20, 0x6f, 0x63, 0x63, 0x75, 0x72, 0x20, 0x61, 0x74,
+  0x20, 0x72, 0x65, 0x2d, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x69,
+  0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68,
+  0x65, 0x0a, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74,
+  0x20, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x2c, 0x20, 0x61, 0x6e, 0x64,
+  0x20, 0x61, 0x74, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x74, 0x69,
+  0x6d, 0x65, 0x73, 0x20, 0x61, 0x73, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69,
+  0x66, 0x69, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x0a,
+  0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x20,
+  0x6f, 0x66, 0x20, 0x61, 0x20, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x20,
+  0x6e, 0x6f, 0x64, 0x65, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x74,
+  0x68, 0x69, 0x73, 0x20, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x20, 0x20, 0x49,
+  0x66, 0x20, 0x73, 0x75, 0x63, 0x68, 0x0a, 0x6f, 0x74, 0x68, 0x65, 0x72,
+  0x20, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x20, 0x63, 0x61, 0x6e, 0x20, 0x6f,
+  0x63, 0x63, 0x75, 0x72, 0x2c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, 0x78,
+  0x61, 0x6d, 0x70, 0x6c, 0x65, 0x2c, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63,
+  0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x0a, 0x61,
+  0x20, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x20, 0x6e, 0x6f, 0x64, 0x65,
+  0x20, 0x6f, 0x66, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x63, 0x6f, 0x75,
+  0x6e, 0x74, 0x65, 0x72, 0x36, 0x34, 0x20, 0x61, 0x74, 0x20, 0x74, 0x69,
+  0x6d, 0x65, 0x73, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x74, 0x68,
+  0x61, 0x6e, 0x0a, 0x72, 0x65, 0x2d, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61,
+  0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x74, 0x68,
+  0x65, 0x6e, 0x20, 0x61, 0x20, 0x63, 0x6f, 0x72, 0x72, 0x65, 0x73, 0x70,
+  0x6f, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x20, 0x73, 0x63, 0x68, 0x65, 0x6d,
+  0x61, 0x20, 0x6e, 0x6f, 0x64, 0x65, 0x0a, 0x73, 0x68, 0x6f, 0x75, 0x6c,
+  0x64, 0x20, 0x62, 0x65, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64,
+  0x2c, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x61, 0x6e, 0x20, 0x61, 0x70,
+  0x70, 0x72, 0x6f, 0x70, 0x72, 0x69, 0x61, 0x74, 0x65, 0x20, 0x74, 0x79,
+  0x70, 0x65, 0x2c, 0x20, 0x74, 0x6f, 0x20, 0x69, 0x6e, 0x64, 0x69, 0x63,
+  0x61, 0x74, 0x65, 0x0a, 0x74, 0x68, 0x65, 0x20, 0x6c, 0x61, 0x73, 0x74,
+  0x20, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x75, 0x69,
+  0x74, 0x79, 0x2e, 0x0a, 0x0a, 0x54, 0x68, 0x65, 0x20, 0x63, 0x6f, 0x75,
+  0x6e, 0x74, 0x65, 0x72, 0x36, 0x34, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20,
+  0x73, 0x68, 0x6f, 0x75, 0x6c, 0x64, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x62,
+  0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63,
+  0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+  0x0a, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x20, 0x6e, 0x6f, 0x64, 0x65,
+  0x73, 0x2e, 0x20, 0x20, 0x41, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c,
+  0x74, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x20,
+  0x53, 0x48, 0x4f, 0x55, 0x4c, 0x44, 0x20, 0x4e, 0x4f, 0x54, 0x20, 0x62,
+  0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x0a, 0x63, 0x6f,
+  0x6d, 0x62, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x77, 0x69,
+  0x74, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20,
+  0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x36, 0x34, 0x2e, 0x0a, 0x0a,
+  0x49, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65,
+  0x20, 0x73, 0x65, 0x74, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x69, 0x74, 0x73,
+  0x20, 0x73, 0x65, 0x6d, 0x61, 0x6e, 0x74, 0x69, 0x63, 0x73, 0x2c, 0x20,
+  0x74, 0x68, 0x69, 0x73, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x69, 0x73,
+  0x20, 0x65, 0x71, 0x75, 0x69, 0x76, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x0a,
+  0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x43, 0x6f, 0x75, 0x6e, 0x74,
+  0x65, 0x72, 0x36, 0x34, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66,
+  0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x4d, 0x49, 0x76, 0x32, 0x2e, 0x22,
+  0x3b, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x0a, 0x22,
+  0x52, 0x46, 0x43, 0x20, 0x32, 0x35, 0x37, 0x38, 0x3a, 0x20, 0x53, 0x74,
+  0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x4d,
+  0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x49, 0x6e,
+  0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x56, 0x65,
+  0x72, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20,
+  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x28, 0x53, 0x4d, 0x49, 0x76,
+  0x32, 0x29, 0x22, 0x3b, 0x7d, 0x74, 0x79, 0x70, 0x65, 0x64, 0x65, 0x66,
+  0x20, 0x7a, 0x65, 0x72, 0x6f, 0x2d, 0x62, 0x61, 0x73, 0x65, 0x64, 0x2d,
+  0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x36, 0x34, 0x20, 0x7b, 0x74,
+  0x79, 0x70, 0x65, 0x20, 0x79, 0x61, 0x6e, 0x67, 0x3a, 0x63, 0x6f, 0x75,
+  0x6e, 0x74, 0x65, 0x72, 0x36, 0x34, 0x3b, 0x64, 0x65, 0x66, 0x61, 0x75,
+  0x6c, 0x74, 0x20, 0x22, 0x30, 0x22, 0x3b, 0x64, 0x65, 0x73, 0x63, 0x72,
+  0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x22, 0x54, 0x68, 0x65, 0x20,
+  0x7a, 0x65, 0x72, 0x6f, 0x2d, 0x62, 0x61, 0x73, 0x65, 0x64, 0x2d, 0x63,
+  0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x36, 0x34, 0x20, 0x74, 0x79, 0x70,
+  0x65, 0x20, 0x72, 0x65, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x73,
+  0x20, 0x61, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x36, 0x34,
+  0x20, 0x74, 0x68, 0x61, 0x74, 0x0a, 0x68, 0x61, 0x73, 0x20, 0x74, 0x68,
+  0x65, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x20, 0x27, 0x69,
+  0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x27, 0x20, 0x76, 0x61, 0x6c, 0x75,
+  0x65, 0x20, 0x7a, 0x65, 0x72, 0x6f, 0x2e, 0x0a, 0x0a, 0x41, 0x20, 0x73,
+  0x63, 0x68, 0x65, 0x6d, 0x61, 0x20, 0x6e, 0x6f, 0x64, 0x65, 0x20, 0x6f,
+  0x66, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20,
+  0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x73, 0x65, 0x74, 0x20,
+  0x74, 0x6f, 0x20, 0x7a, 0x65, 0x72, 0x6f, 0x20, 0x28, 0x30, 0x29, 0x20,
+  0x6f, 0x6e, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x0a,
+  0x61, 0x6e, 0x64, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x74, 0x68, 0x65,
+  0x72, 0x65, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x69, 0x6e, 0x63, 0x72,
+  0x65, 0x61, 0x73, 0x65, 0x20, 0x6d, 0x6f, 0x6e, 0x6f, 0x74, 0x6f, 0x6e,
+  0x69, 0x63, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x75, 0x6e, 0x74, 0x69, 0x6c,
+  0x20, 0x69, 0x74, 0x20, 0x72, 0x65, 0x61, 0x63, 0x68, 0x65, 0x73, 0x0a,
+  0x61, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x76, 0x61,
+  0x6c, 0x75, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x32, 0x5e, 0x36, 0x34, 0x2d,
+  0x31, 0x20, 0x28, 0x31, 0x38, 0x34, 0x34, 0x36, 0x37, 0x34, 0x34, 0x30,
+  0x37, 0x33, 0x37, 0x30, 0x39, 0x35, 0x35, 0x31, 0x36, 0x31, 0x35, 0x20,
+  0x64, 0x65, 0x63, 0x69, 0x6d, 0x61, 0x6c, 0x29, 0x2c, 0x0a, 0x77, 0x68,
+  0x65, 0x6e, 0x20, 0x69, 0x74, 0x20, 0x77, 0x72, 0x61, 0x70, 0x73, 0x20,
+  0x61, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x73,
+  0x74, 0x61, 0x72, 0x74, 0x73, 0x20, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x61,
+  0x73, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x67, 0x61, 0x69, 0x6e, 0x20, 0x66,
+  0x72, 0x6f, 0x6d, 0x20, 0x7a, 0x65, 0x72, 0x6f, 0x2e, 0x0a, 0x0a, 0x50,
+  0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x74, 0x68, 0x61, 0x74,
+  0x20, 0x61, 0x6e, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
+  0x69, 0x6f, 0x6e, 0x20, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72,
+  0x73, 0x20, 0x61, 0x20, 0x6e, 0x65, 0x77, 0x20, 0x73, 0x63, 0x68, 0x65,
+  0x6d, 0x61, 0x20, 0x6e, 0x6f, 0x64, 0x65, 0x0a, 0x6f, 0x66, 0x20, 0x74,
+  0x68, 0x69, 0x73, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x77, 0x69, 0x74,
+  0x68, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x69, 0x6e, 0x69,
+  0x6d, 0x75, 0x6d, 0x20, 0x74, 0x69, 0x6d, 0x65, 0x20, 0x74, 0x6f, 0x20,
+  0x77, 0x72, 0x61, 0x70, 0x2c, 0x20, 0x69, 0x74, 0x20, 0x63, 0x61, 0x6e,
+  0x20, 0x75, 0x73, 0x65, 0x20, 0x74, 0x68, 0x65, 0x0a, 0x27, 0x69, 0x6e,
+  0x69, 0x74, 0x69, 0x61, 0x6c, 0x27, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65,
+  0x20, 0x61, 0x73, 0x20, 0x61, 0x20, 0x64, 0x65, 0x6c, 0x74, 0x61, 0x2e,
+  0x20, 0x20, 0x49, 0x74, 0x20, 0x69, 0x73, 0x20, 0x69, 0x6d, 0x70, 0x6f,
+  0x72, 0x74, 0x61, 0x6e, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20,
+  0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x73,
+  0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65,
+  0x20, 0x61, 0x77, 0x61, 0x72, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68,
+  0x69, 0x73, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x74,
+  0x69, 0x6d, 0x65, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20,
+  0x61, 0x63, 0x74, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x69, 0x6d, 0x65, 0x0a,
+  0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x70, 0x6f, 0x6c, 0x6c,
+  0x73, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x64, 0x69,
+  0x73, 0x63, 0x61, 0x72, 0x64, 0x20, 0x64, 0x61, 0x74, 0x61, 0x20, 0x69,
+  0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x63, 0x74, 0x75, 0x61, 0x6c,
+  0x20, 0x74, 0x69, 0x6d, 0x65, 0x20, 0x69, 0x73, 0x20, 0x74, 0x6f, 0x6f,
+  0x0a, 0x6c, 0x6f, 0x6e, 0x67, 0x20, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65,
+  0x72, 0x65, 0x20, 0x69, 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x64, 0x65, 0x66,
+  0x69, 0x6e, 0x65, 0x64, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d,
+  0x20, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x0a, 0x0a, 0x49, 0x6e, 0x20, 0x74,
+  0x68, 0x65, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x73, 0x65, 0x74,
+  0x20, 0x61, 0x6e, 0x64, 0x20, 0x69, 0x74, 0x73, 0x20, 0x73, 0x65, 0x6d,
+  0x61, 0x6e, 0x74, 0x69, 0x63, 0x73, 0x2c, 0x20, 0x74, 0x68, 0x69, 0x73,
+  0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x69, 0x73, 0x20, 0x65, 0x71, 0x75,
+  0x69, 0x76, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x0a, 0x74, 0x6f, 0x20, 0x74,
+  0x68, 0x65, 0x20, 0x5a, 0x65, 0x72, 0x6f, 0x42, 0x61, 0x73, 0x65, 0x64,
+  0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x36, 0x34, 0x20, 0x74, 0x65,
+  0x78, 0x74, 0x75, 0x61, 0x6c, 0x20, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x6e,
+  0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20,
+  0x53, 0x4d, 0x49, 0x76, 0x32, 0x2e, 0x22, 0x3b, 0x72, 0x65, 0x66, 0x65,
+  0x72, 0x65, 0x6e, 0x63, 0x65, 0x0a, 0x22, 0x52, 0x46, 0x43, 0x20, 0x32,
+  0x38, 0x35, 0x36, 0x3a, 0x20, 0x54, 0x65, 0x78, 0x74, 0x75, 0x61, 0x6c,
+  0x20, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x73,
+  0x20, 0x66, 0x6f, 0x72, 0x20, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f,
+  0x6e, 0x61, 0x6c, 0x20, 0x48, 0x69, 0x67, 0x68, 0x20, 0x43, 0x61, 0x70,
+  0x61, 0x63, 0x69, 0x74, 0x79, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+  0x20, 0x20, 0x20, 0x20, 0x20, 0x44, 0x61, 0x74, 0x61, 0x20, 0x54, 0x79,
+  0x70, 0x65, 0x73, 0x22, 0x3b, 0x7d, 0x74, 0x79, 0x70, 0x65, 0x64, 0x65,
+  0x66, 0x20, 0x67, 0x61, 0x75, 0x67, 0x65, 0x33, 0x32, 0x20, 0x7b, 0x74,
+  0x79, 0x70, 0x65, 0x20, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x3b, 0x64,
+  0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x22,
+  0x54, 0x68, 0x65, 0x20, 0x67, 0x61, 0x75, 0x67, 0x65, 0x33, 0x32, 0x20,
+  0x74, 0x79, 0x70, 0x65, 0x20, 0x72, 0x65, 0x70, 0x72, 0x65, 0x73, 0x65,
+  0x6e, 0x74, 0x73, 0x20, 0x61, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x6e, 0x65,
+  0x67, 0x61, 0x74, 0x69, 0x76, 0x65, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67,
+  0x65, 0x72, 0x2c, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x0a, 0x6d, 0x61,
+  0x79, 0x20, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x20, 0x6f,
+  0x72, 0x20, 0x64, 0x65, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x2c, 0x20,
+  0x62, 0x75, 0x74, 0x20, 0x73, 0x68, 0x61, 0x6c, 0x6c, 0x20, 0x6e, 0x65,
+  0x76, 0x65, 0x72, 0x20, 0x65, 0x78, 0x63, 0x65, 0x65, 0x64, 0x20, 0x61,
+  0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x0a, 0x76, 0x61, 0x6c,
+  0x75, 0x65, 0x2c, 0x20, 0x6e, 0x6f, 0x72, 0x20, 0x66, 0x61, 0x6c, 0x6c,
+  0x20, 0x62, 0x65, 0x6c, 0x6f, 0x77, 0x20, 0x61, 0x20, 0x6d, 0x69, 0x6e,
+  0x69, 0x6d, 0x75, 0x6d, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x20,
+  0x20, 0x54, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d,
+  0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x0a, 0x63, 0x61, 0x6e, 0x6e, 0x6f,
+  0x74, 0x20, 0x62, 0x65, 0x20, 0x67, 0x72, 0x65, 0x61, 0x74, 0x65, 0x72,
+  0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x32, 0x5e, 0x33, 0x32, 0x2d, 0x31,
+  0x20, 0x28, 0x34, 0x32, 0x39, 0x34, 0x39, 0x36, 0x37, 0x32, 0x39, 0x35,
+  0x20, 0x64, 0x65, 0x63, 0x69, 0x6d, 0x61, 0x6c, 0x29, 0x2c, 0x20, 0x61,
+  0x6e, 0x64, 0x0a, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d,
+  0x75, 0x6d, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x63, 0x61, 0x6e,
+  0x6e, 0x6f, 0x74, 0x20, 0x62, 0x65, 0x20, 0x73, 0x6d, 0x61, 0x6c, 0x6c,
+  0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x30, 0x2e, 0x20, 0x20,
+  0x54, 0x68, 0x65, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6f, 0x66,
+  0x0a, 0x61, 0x20, 0x67, 0x61, 0x75, 0x67, 0x65, 0x33, 0x32, 0x20, 0x68,
+  0x61, 0x73, 0x20, 0x69, 0x74, 0x73, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d,
+  0x75, 0x6d, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x77, 0x68, 0x65,
+  0x6e, 0x65, 0x76, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x69, 0x6e,
+  0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x62, 0x65,
+  0x69, 0x6e, 0x67, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x65, 0x64, 0x20,
+  0x69, 0x73, 0x20, 0x67, 0x72, 0x65, 0x61, 0x74, 0x65, 0x72, 0x20, 0x74,
+  0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c,
+  0x20, 0x74, 0x6f, 0x20, 0x69, 0x74, 0x73, 0x20, 0x6d, 0x61, 0x78, 0x69,
+  0x6d, 0x75, 0x6d, 0x0a, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2c, 0x20, 0x61,
+  0x6e, 0x64, 0x20, 0x68, 0x61, 0x73, 0x20, 0x69, 0x74, 0x73, 0x20, 0x6d,
+  0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65,
+  0x20, 0x77, 0x68, 0x65, 0x6e, 0x65, 0x76, 0x65, 0x72, 0x20, 0x74, 0x68,
+  0x65, 0x20, 0x69, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f,
+  0x6e, 0x0a, 0x62, 0x65, 0x69, 0x6e, 0x67, 0x20, 0x6d, 0x6f, 0x64, 0x65,
+  0x6c, 0x65, 0x64, 0x20, 0x69, 0x73, 0x20, 0x73, 0x6d, 0x61, 0x6c, 0x6c,
+  0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65,
+  0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x69, 0x74, 0x73, 0x20,
+  0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x76, 0x61, 0x6c, 0x75,
+  0x65, 0x2e, 0x0a, 0x49, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x69, 0x6e,
+  0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x62, 0x65,
+  0x69, 0x6e, 0x67, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x65, 0x64, 0x20,
+  0x73, 0x75, 0x62, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x74, 0x6c, 0x79,
+  0x20, 0x64, 0x65, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x73, 0x0a, 0x62,
+  0x65, 0x6c, 0x6f, 0x77, 0x20, 0x28, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x61,
+  0x73, 0x65, 0x73, 0x20, 0x61, 0x62, 0x6f, 0x76, 0x65, 0x29, 0x20, 0x74,
+  0x68, 0x65, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x28,
+  0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x29, 0x20, 0x76, 0x61, 0x6c,
+  0x75, 0x65, 0x2c, 0x20, 0x74, 0x68, 0x65, 0x0a, 0x67, 0x61, 0x75, 0x67,
+  0x65, 0x33, 0x32, 0x20, 0x61, 0x6c, 0x73, 0x6f, 0x20, 0x64, 0x65, 0x63,
+  0x72, 0x65, 0x61, 0x73, 0x65, 0x73, 0x20, 0x28, 0x69, 0x6e, 0x63, 0x72,
+  0x65, 0x61, 0x73, 0x65, 0x73, 0x29, 0x2e, 0x0a, 0x0a, 0x49, 0x6e, 0x20,
+  0x74, 0x68, 0x65, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x73, 0x65,
+  0x74, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x69, 0x74, 0x73, 0x20, 0x73, 0x65,
+  0x6d, 0x61, 0x6e, 0x74, 0x69, 0x63, 0x73, 0x2c, 0x20, 0x74, 0x68, 0x69,
+  0x73, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x69, 0x73, 0x20, 0x65, 0x71,
+  0x75, 0x69, 0x76, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x0a, 0x74, 0x6f, 0x20,
+  0x74, 0x68, 0x65, 0x20, 0x47, 0x61, 0x75, 0x67, 0x65, 0x33, 0x32, 0x20,
+  0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20,
+  0x53, 0x4d, 0x49, 0x76, 0x32, 0x2e, 0x22, 0x3b, 0x72, 0x65, 0x66, 0x65,
+  0x72, 0x65, 0x6e, 0x63, 0x65, 0x0a, 0x22, 0x52, 0x46, 0x43, 0x20, 0x32,
+  0x35, 0x37, 0x38, 0x3a, 0x20, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75,
+  0x72, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65,
+  0x6d, 0x65, 0x6e, 0x74, 0x20, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61,
+  0x74, 0x69, 0x6f, 0x6e, 0x20, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e,
+  0x20, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+  0x20, 0x20, 0x28, 0x53, 0x4d, 0x49, 0x76, 0x32, 0x29, 0x22, 0x3b, 0x7d,
+  0x74, 0x79, 0x70, 0x65, 0x64, 0x65, 0x66, 0x20, 0x67, 0x61, 0x75, 0x67,
+  0x65, 0x36, 0x34, 0x20, 0x7b, 0x74, 0x79, 0x70, 0x65, 0x20, 0x75, 0x69,
+  0x6e, 0x74, 0x36, 0x34, 0x3b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70,
+  0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x22, 0x54, 0x68, 0x65, 0x20, 0x67, 0x61,
+  0x75, 0x67, 0x65, 0x36, 0x34, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x72,
+  0x65, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x61, 0x20,
+  0x6e, 0x6f, 0x6e, 0x2d, 0x6e, 0x65, 0x67, 0x61, 0x74, 0x69, 0x76, 0x65,
+  0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x2c, 0x20, 0x77, 0x68,
+  0x69, 0x63, 0x68, 0x0a, 0x6d, 0x61, 0x79, 0x20, 0x69, 0x6e, 0x63, 0x72,
+  0x65, 0x61, 0x73, 0x65, 0x20, 0x6f, 0x72, 0x20, 0x64, 0x65, 0x63, 0x72,
+  0x65, 0x61, 0x73, 0x65, 0x2c, 0x20, 0x62, 0x75, 0x74, 0x20, 0x73, 0x68,
+  0x61, 0x6c, 0x6c, 0x20, 0x6e, 0x65, 0x76, 0x65, 0x72, 0x20, 0x65, 0x78,
+  0x63, 0x65, 0x65, 0x64, 0x20, 0x61, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d,
+  0x75, 0x6d, 0x0a, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2c, 0x20, 0x6e, 0x6f,
+  0x72, 0x20, 0x66, 0x61, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x6c, 0x6f, 0x77,
+  0x20, 0x61, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x76,
+  0x61, 0x6c, 0x75, 0x65, 0x2e, 0x20, 0x20, 0x54, 0x68, 0x65, 0x20, 0x6d,
+  0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65,
+  0x0a, 0x63, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x20, 0x62, 0x65, 0x20, 0x67,
+  0x72, 0x65, 0x61, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20,
+  0x32, 0x5e, 0x36, 0x34, 0x2d, 0x31, 0x20, 0x28, 0x31, 0x38, 0x34, 0x34,
+  0x36, 0x37, 0x34, 0x34, 0x30, 0x37, 0x33, 0x37, 0x30, 0x39, 0x35, 0x35,
+  0x31, 0x36, 0x31, 0x35, 0x29, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x0a, 0x74,
+  0x68, 0x65, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x76,
+  0x61, 0x6c, 0x75, 0x65, 0x20, 0x63, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x20,
+  0x62, 0x65, 0x20, 0x73, 0x6d, 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x20, 0x74,
+  0x68, 0x61, 0x6e, 0x20, 0x30, 0x2e, 0x20, 0x20, 0x54, 0x68, 0x65, 0x20,
+  0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6f, 0x66, 0x0a, 0x61, 0x20, 0x67,
+  0x61, 0x75, 0x67, 0x65, 0x36, 0x34, 0x20, 0x68, 0x61, 0x73, 0x20, 0x69,
+  0x74, 0x73, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x76,
+  0x61, 0x6c, 0x75, 0x65, 0x20, 0x77, 0x68, 0x65, 0x6e, 0x65, 0x76, 0x65,
+  0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x69, 0x6e, 0x66, 0x6f, 0x72, 0x6d,
+  0x61, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x62, 0x65, 0x69, 0x6e, 0x67, 0x20,
+  0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x65, 0x64, 0x20, 0x69, 0x73, 0x20, 0x67,
+  0x72, 0x65, 0x61, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20,
+  0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20,
+  0x69, 0x74, 0x73, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x0a,
+  0x76, 0x61, 0x6c, 0x75, 0x65, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x68,
+  0x61, 0x73, 0x20, 0x69, 0x74, 0x73, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d,
+  0x75, 0x6d, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x77, 0x68, 0x65,
+  0x6e, 0x65, 0x76, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x69, 0x6e,
+  0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x62, 0x65,
+  0x69, 0x6e, 0x67, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x65, 0x64, 0x20,
+  0x69, 0x73, 0x20, 0x73, 0x6d, 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x20, 0x74,
+  0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c,
+  0x20, 0x74, 0x6f, 0x20, 0x69, 0x74, 0x73, 0x20, 0x6d, 0x69, 0x6e, 0x69,
+  0x6d, 0x75, 0x6d, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x49,
+  0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x69, 0x6e, 0x66, 0x6f, 0x72, 0x6d,
+  0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x62, 0x65, 0x69, 0x6e, 0x67, 0x20,
+  0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x65, 0x64, 0x20, 0x73, 0x75, 0x62, 0x73,
+  0x65, 0x71, 0x75, 0x65, 0x6e, 0x74, 0x6c, 0x79, 0x20, 0x64, 0x65, 0x63,
+  0x72, 0x65, 0x61, 0x73, 0x65, 0x73, 0x0a, 0x62, 0x65, 0x6c, 0x6f, 0x77,
+  0x20, 0x28, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x73, 0x20,
+  0x61, 0x62, 0x6f, 0x76, 0x65, 0x29, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d,
+  0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x28, 0x6d, 0x69, 0x6e, 0x69,
+  0x6d, 0x75, 0x6d, 0x29, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2c, 0x20,
+  0x74, 0x68, 0x65, 0x0a, 0x67, 0x61, 0x75, 0x67, 0x65, 0x36, 0x34, 0x20,
+  0x61, 0x6c, 0x73, 0x6f, 0x20, 0x64, 0x65, 0x63, 0x72, 0x65, 0x61, 0x73,
+  0x65, 0x73, 0x20, 0x28, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65,
+  0x73, 0x29, 0x2e, 0x0a, 0x0a, 0x49, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20,
+  0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x73, 0x65, 0x74, 0x20, 0x61, 0x6e,
+  0x64, 0x20, 0x69, 0x74, 0x73, 0x20, 0x73, 0x65, 0x6d, 0x61, 0x6e, 0x74,
+  0x69, 0x63, 0x73, 0x2c, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x74, 0x79,
+  0x70, 0x65, 0x20, 0x69, 0x73, 0x20, 0x65, 0x71, 0x75, 0x69, 0x76, 0x61,
+  0x6c, 0x65, 0x6e, 0x74, 0x0a, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20,
+  0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x42, 0x61, 0x73, 0x65, 0x64,
+  0x47, 0x61, 0x75, 0x67, 0x65, 0x36, 0x34, 0x20, 0x53, 0x4d, 0x49, 0x76,
+  0x32, 0x20, 0x74, 0x65, 0x78, 0x74, 0x75, 0x61, 0x6c, 0x20, 0x63, 0x6f,
+  0x6e, 0x76, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x64, 0x65, 0x66,
+  0x69, 0x6e, 0x65, 0x64, 0x0a, 0x69, 0x6e, 0x20, 0x52, 0x46, 0x43, 0x20,
+  0x32, 0x38, 0x35, 0x36, 0x22, 0x3b, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65,
+  0x6e, 0x63, 0x65, 0x0a, 0x22, 0x52, 0x46, 0x43, 0x20, 0x32, 0x38, 0x35,
+  0x36, 0x3a, 0x20, 0x54, 0x65, 0x78, 0x74, 0x75, 0x61, 0x6c, 0x20, 0x43,
+  0x6f, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x66,
+  0x6f, 0x72, 0x20, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61,
+  0x6c, 0x20, 0x48, 0x69, 0x67, 0x68, 0x20, 0x43, 0x61, 0x70, 0x61, 0x63,
+  0x69, 0x74, 0x79, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+  0x20, 0x20, 0x20, 0x44, 0x61, 0x74, 0x61, 0x20, 0x54, 0x79, 0x70, 0x65,
+  0x73, 0x22, 0x3b, 0x7d, 0x74, 0x79, 0x70, 0x65, 0x64, 0x65, 0x66, 0x20,
+  0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2d, 0x69, 0x64, 0x65, 0x6e, 0x74,
+  0x69, 0x66, 0x69, 0x65, 0x72, 0x20, 0x7b, 0x74, 0x79, 0x70, 0x65, 0x20,
+  0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x7b, 0x70, 0x61, 0x74, 0x74,
+  0x65, 0x72, 0x6e, 0x20, 0x27, 0x28, 0x28, 0x5b, 0x30, 0x2d, 0x31, 0x5d,
+  0x28, 0x5c, 0x2e, 0x5b, 0x31, 0x2d, 0x33, 0x5d, 0x3f, 0x5b, 0x30, 0x2d,
+  0x39, 0x5d, 0x29, 0x29, 0x7c, 0x28, 0x32, 0x5c, 0x2e, 0x28, 0x30, 0x7c,
+  0x28, 0x5b, 0x31, 0x2d, 0x39, 0x5d, 0x5c, 0x64, 0x2a, 0x29, 0x29, 0x29,
+  0x29, 0x28, 0x5c, 0x2e, 0x28, 0x30, 0x7c, 0x28, 0x5b, 0x31, 0x2d, 0x39,
+  0x5d, 0x5c, 0x64, 0x2a, 0x29, 0x29, 0x29, 0x2a, 0x27, 0x3b, 0x7d, 0x64,
+  0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x22,
+  0x54, 0x68, 0x65, 0x20, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2d, 0x69,
+  0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x20, 0x74, 0x79,
+  0x70, 0x65, 0x20, 0x72, 0x65, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74,
+  0x73, 0x20, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x69, 0x73, 0x74, 0x72, 0x61,
+  0x74, 0x69, 0x76, 0x65, 0x6c, 0x79, 0x0a, 0x61, 0x73, 0x73, 0x69, 0x67,
+  0x6e, 0x65, 0x64, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x20, 0x69, 0x6e,
+  0x20, 0x61, 0x20, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74,
+  0x69, 0x6f, 0x6e, 0x2d, 0x68, 0x69, 0x65, 0x72, 0x61, 0x72, 0x63, 0x68,
+  0x69, 0x63, 0x61, 0x6c, 0x2d, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x74, 0x72,
+  0x65, 0x65, 0x2e, 0x0a, 0x0a, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x20,
+  0x6f, 0x66, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x74, 0x79, 0x70, 0x65,
+  0x20, 0x61, 0x72, 0x65, 0x20, 0x64, 0x65, 0x6e, 0x6f, 0x74, 0x65, 0x64,
+  0x20, 0x61, 0x73, 0x20, 0x61, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e,
+  0x63, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x69,
+  0x63, 0x61, 0x6c, 0x0a, 0x6e, 0x6f, 0x6e, 0x2d, 0x6e, 0x65, 0x67, 0x61,
+  0x74, 0x69, 0x76, 0x65, 0x20, 0x73, 0x75, 0x62, 0x2d, 0x69, 0x64, 0x65,
+  0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x20, 0x76, 0x61, 0x6c, 0x75,
+  0x65, 0x73, 0x2e, 0x20, 0x20, 0x45, 0x61, 0x63, 0x68, 0x20, 0x73, 0x75,
+  0x62, 0x2d, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72,
+  0x0a, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x4d, 0x55, 0x53, 0x54, 0x20,
+  0x4e, 0x4f, 0x54, 0x20, 0x65, 0x78, 0x63, 0x65, 0x65, 0x64, 0x20, 0x32,
+  0x5e, 0x33, 0x32, 0x2d, 0x31, 0x20, 0x28, 0x34, 0x32, 0x39, 0x34, 0x39,
+  0x36, 0x37, 0x32, 0x39, 0x35, 0x29, 0x2e, 0x20, 0x20, 0x53, 0x75, 0x62,
+  0x2d, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x73,
+  0x0a, 0x61, 0x72, 0x65, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74,
+  0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65,
+  0x20, 0x64, 0x6f, 0x74, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x77, 0x69,
+  0x74, 0x68, 0x6f, 0x75, 0x74, 0x20, 0x61, 0x6e, 0x79, 0x20, 0x69, 0x6e,
+  0x74, 0x65, 0x72, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x65, 0x0a, 0x77,
+  0x68, 0x69, 0x74, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x2e, 0x0a, 0x0a,
+  0x54, 0x68, 0x65, 0x20, 0x41, 0x53, 0x4e, 0x2e, 0x31, 0x20, 0x73, 0x74,
+  0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x72, 0x65, 0x73, 0x74, 0x72,
+  0x69, 0x63, 0x74, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x76, 0x61, 0x6c,
+  0x75, 0x65, 0x20, 0x73, 0x70, 0x61, 0x63, 0x65, 0x20, 0x6f, 0x66, 0x20,
+  0x74, 0x68, 0x65, 0x20, 0x66, 0x69, 0x72, 0x73, 0x74, 0x0a, 0x73, 0x75,
+  0x62, 0x2d, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72,
+  0x20, 0x74, 0x6f, 0x20, 0x30, 0x2c, 0x20, 0x31, 0x2c, 0x20, 0x6f, 0x72,
+  0x20, 0x32, 0x2e, 0x20, 0x20, 0x46, 0x75, 0x72, 0x74, 0x68, 0x65, 0x72,
+  0x6d, 0x6f, 0x72, 0x65, 0x2c, 0x20, 0x74, 0x68, 0x65, 0x20, 0x76, 0x61,
+  0x6c, 0x75, 0x65, 0x20, 0x73, 0x70, 0x61, 0x63, 0x65, 0x0a, 0x6f, 0x66,
+  0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x20,
+  0x73, 0x75, 0x62, 0x2d, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69,
+  0x65, 0x72, 0x20, 0x69, 0x73, 0x20, 0x72, 0x65, 0x73, 0x74, 0x72, 0x69,
+  0x63, 0x74, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20,
+  0x72, 0x61, 0x6e, 0x67, 0x65, 0x0a, 0x30, 0x20, 0x74, 0x6f, 0x20, 0x33,
+  0x39, 0x20, 0x69, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, 0x72,
+  0x73, 0x74, 0x20, 0x73, 0x75, 0x62, 0x2d, 0x69, 0x64, 0x65, 0x6e, 0x74,
+  0x69, 0x66, 0x69, 0x65, 0x72, 0x20, 0x69, 0x73, 0x20, 0x30, 0x20, 0x6f,
+  0x72, 0x20, 0x31, 0x2e, 0x20, 0x20, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x6c,
+  0x79, 0x2c, 0x0a, 0x74, 0x68, 0x65, 0x20, 0x41, 0x53, 0x4e, 0x2e, 0x31,
+  0x20, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x72, 0x65,
+  0x71, 0x75, 0x69, 0x72, 0x65, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20,
+  0x61, 0x6e, 0x20, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x20, 0x69, 0x64,
+  0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x0a, 0x68, 0x61, 0x73,
+  0x20, 0x61, 0x6c, 0x77, 0x61, 0x79, 0x73, 0x20, 0x61, 0x74, 0x20, 0x6c,
+  0x65, 0x61, 0x73, 0x74, 0x20, 0x74, 0x77, 0x6f, 0x20, 0x73, 0x75, 0x62,
+  0x2d, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x73,
+  0x2e, 0x20, 0x20, 0x54, 0x68, 0x65, 0x20, 0x70, 0x61, 0x74, 0x74, 0x65,
+  0x72, 0x6e, 0x0a, 0x63, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x73, 0x20,
+  0x74, 0x68, 0x65, 0x73, 0x65, 0x20, 0x72, 0x65, 0x73, 0x74, 0x72, 0x69,
+  0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x0a, 0x0a, 0x41, 0x6c, 0x74,
+  0x68, 0x6f, 0x75, 0x67, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6e, 0x75,
+  0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x75, 0x62, 0x2d,
+  0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x73, 0x20,
+  0x69, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x6c, 0x69, 0x6d, 0x69, 0x74,
+  0x65, 0x64, 0x2c, 0x0a, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x20, 0x64,
+  0x65, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x72, 0x73, 0x20, 0x73, 0x68, 0x6f,
+  0x75, 0x6c, 0x64, 0x20, 0x72, 0x65, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x20,
+  0x74, 0x68, 0x61, 0x74, 0x20, 0x74, 0x68, 0x65, 0x72, 0x65, 0x20, 0x6d,
+  0x61, 0x79, 0x20, 0x62, 0x65, 0x0a, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x6d,
+  0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x74, 0x68,
+  0x61, 0x74, 0x20, 0x73, 0x74, 0x69, 0x63, 0x6b, 0x20, 0x77, 0x69, 0x74,
+  0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x4d, 0x49, 0x76, 0x32, 0x20,
+  0x6c, 0x69, 0x6d, 0x69, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x31, 0x32, 0x38,
+  0x0a, 0x73, 0x75, 0x62, 0x2d, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66,
+  0x69, 0x65, 0x72, 0x73, 0x2e, 0x0a, 0x0a, 0x54, 0x68, 0x69, 0x73, 0x20,
+  0x74, 0x79, 0x70, 0x65, 0x20, 0x69, 0x73, 0x20, 0x61, 0x20, 0x73, 0x75,
+  0x70, 0x65, 0x72, 0x73, 0x65, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68,
+  0x65, 0x20, 0x53, 0x4d, 0x49, 0x76, 0x32, 0x20, 0x4f, 0x42, 0x4a, 0x45,
+  0x43, 0x54, 0x20, 0x49, 0x44, 0x45, 0x4e, 0x54, 0x49, 0x46, 0x49, 0x45,
+  0x52, 0x20, 0x74, 0x79, 0x70, 0x65, 0x0a, 0x73, 0x69, 0x6e, 0x63, 0x65,
+  0x20, 0x69, 0x74, 0x20, 0x69, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x72,
+  0x65, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x65, 0x64, 0x20, 0x74, 0x6f,
+  0x20, 0x31, 0x32, 0x38, 0x20, 0x73, 0x75, 0x62, 0x2d, 0x69, 0x64, 0x65,
+  0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x73, 0x2e, 0x20, 0x20, 0x48,
+  0x65, 0x6e, 0x63, 0x65, 0x2c, 0x0a, 0x74, 0x68, 0x69, 0x73, 0x20, 0x74,
+  0x79, 0x70, 0x65, 0x20, 0x53, 0x48, 0x4f, 0x55, 0x4c, 0x44, 0x20, 0x4e,
+  0x4f, 0x54, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x74,
+  0x6f, 0x20, 0x72, 0x65, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x20,
+  0x74, 0x68, 0x65, 0x20, 0x53, 0x4d, 0x49, 0x76, 0x32, 0x20, 0x4f, 0x42,
+  0x4a, 0x45, 0x43, 0x54, 0x0a, 0x49, 0x44, 0x45, 0x4e, 0x54, 0x49, 0x46,
+  0x49, 0x45, 0x52, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3b, 0x20, 0x74, 0x68,
+  0x65, 0x20, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2d, 0x69, 0x64, 0x65,
+  0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x2d, 0x31, 0x32, 0x38, 0x20,
+  0x74, 0x79, 0x70, 0x65, 0x20, 0x53, 0x48, 0x4f, 0x55, 0x4c, 0x44, 0x20,
+  0x62, 0x65, 0x0a, 0x75, 0x73, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x73, 0x74,
+  0x65, 0x61, 0x64, 0x2e, 0x22, 0x3b, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65,
+  0x6e, 0x63, 0x65, 0x0a, 0x22, 0x49, 0x53, 0x4f, 0x39, 0x38, 0x33, 0x34,
+  0x2d, 0x31, 0x3a, 0x20, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74,
+  0x69, 0x6f, 0x6e, 0x20, 0x74, 0x65, 0x63, 0x68, 0x6e, 0x6f, 0x6c, 0x6f,
+  0x67, 0x79, 0x20, 0x2d, 0x2d, 0x20, 0x4f, 0x70, 0x65, 0x6e, 0x20, 0x53,
+  0x79, 0x73, 0x74, 0x65, 0x6d, 0x73, 0x0a, 0x49, 0x6e, 0x74, 0x65, 0x72,
+  0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x2d,
+  0x2d, 0x20, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x64, 0x75, 0x72, 0x65, 0x73,
+  0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x70, 0x65,
+  0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x4f, 0x53,
+  0x49, 0x0a, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69,
+  0x6f, 0x6e, 0x20, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x69,
+  0x65, 0x73, 0x3a, 0x20, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x20,
+  0x70, 0x72, 0x6f, 0x63, 0x65, 0x64, 0x75, 0x72, 0x65, 0x73, 0x20, 0x61,
+  0x6e, 0x64, 0x20, 0x74, 0x6f, 0x70, 0x0a, 0x61, 0x72, 0x63, 0x73, 0x20,
+  0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x41, 0x53, 0x4e, 0x2e, 0x31,
+  0x20, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x20, 0x49, 0x64, 0x65, 0x6e,
+  0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x20, 0x74, 0x72, 0x65, 0x65, 0x22,
+  0x3b, 0x7d, 0x74, 0x79, 0x70, 0x65, 0x64, 0x65, 0x66, 0x20, 0x6f, 0x62,
+  0x6a, 0x65, 0x63, 0x74, 0x2d, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66,
+  0x69, 0x65, 0x72, 0x2d, 0x31, 0x32, 0x38, 0x20, 0x7b, 0x74, 0x79, 0x70,
+  0x65, 0x20, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2d, 0x69, 0x64, 0x65,
+  0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x20, 0x7b, 0x70, 0x61, 0x74,
+  0x74, 0x65, 0x72, 0x6e, 0x20, 0x27, 0x5c, 0x64, 0x2a, 0x28, 0x5c, 0x2e,
+  0x5c, 0x64, 0x2a, 0x29, 0x7b, 0x31, 0x2c, 0x31, 0x32, 0x37, 0x7d, 0x27,
+  0x3b, 0x7d, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f,
+  0x6e, 0x0a, 0x22, 0x54, 0x68, 0x69, 0x73, 0x20, 0x74, 0x79, 0x70, 0x65,
+  0x20, 0x72, 0x65, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x73, 0x20,
+  0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2d, 0x69, 0x64, 0x65, 0x6e, 0x74,
+  0x69, 0x66, 0x69, 0x65, 0x72, 0x73, 0x20, 0x72, 0x65, 0x73, 0x74, 0x72,
+  0x69, 0x63, 0x74, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x31, 0x32, 0x38,
+  0x0a, 0x73, 0x75, 0x62, 0x2d, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66,
+  0x69, 0x65, 0x72, 0x73, 0x2e, 0x0a, 0x0a, 0x49, 0x6e, 0x20, 0x74, 0x68,
+  0x65, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x73, 0x65, 0x74, 0x20,
+  0x61, 0x6e, 0x64, 0x20, 0x69, 0x74, 0x73, 0x20, 0x73, 0x65, 0x6d, 0x61,
+  0x6e, 0x74, 0x69, 0x63, 0x73, 0x2c, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20,
+  0x74, 0x79, 0x70, 0x65, 0x20, 0x69, 0x73, 0x20, 0x65, 0x71, 0x75, 0x69,
+  0x76, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x0a, 0x74, 0x6f, 0x20, 0x74, 0x68,
+  0x65, 0x20, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x20, 0x49, 0x44, 0x45,
+  0x4e, 0x54, 0x49, 0x46, 0x49, 0x45, 0x52, 0x20, 0x74, 0x79, 0x70, 0x65,
+  0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x4d, 0x49, 0x76,
+  0x32, 0x2e, 0x22, 0x3b, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63,
+  0x65, 0x0a, 0x22, 0x52, 0x46, 0x43, 0x20, 0x32, 0x35, 0x37, 0x38, 0x3a,
+  0x20, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x20, 0x6f,
+  0x66, 0x20, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74,
+  0x20, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+  0x20, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x32, 0x0a, 0x20,
+  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x28, 0x53,
+  0x4d, 0x49, 0x76, 0x32, 0x29, 0x22, 0x3b, 0x7d, 0x74, 0x79, 0x70, 0x65,
+  0x64, 0x65, 0x66, 0x20, 0x79, 0x61, 0x6e, 0x67, 0x2d, 0x69, 0x64, 0x65,
+  0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x20, 0x7b, 0x74, 0x79, 0x70,
+  0x65, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x7b, 0x6c, 0x65,
+  0x6e, 0x67, 0x74, 0x68, 0x20, 0x22, 0x31, 0x2e, 0x2e, 0x6d, 0x61, 0x78,
+  0x22, 0x3b, 0x70, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x20, 0x27, 0x5b,
+  0x61, 0x2d, 0x7a, 0x41, 0x2d, 0x5a, 0x5f, 0x5d, 0x5b, 0x61, 0x2d, 0x7a,
+  0x41, 0x2d, 0x5a, 0x30, 0x2d, 0x39, 0x5c, 0x2d, 0x5f, 0x2e, 0x5d, 0x2a,
+  0x27, 0x3b, 0x70, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x20, 0x27, 0x2e,
+  0x7c, 0x2e, 0x2e, 0x7c, 0x5b, 0x5e, 0x78, 0x58, 0x5d, 0x2e, 0x2a, 0x7c,
+  0x2e, 0x5b, 0x5e, 0x6d, 0x4d, 0x5d, 0x2e, 0x2a, 0x7c, 0x2e, 0x2e, 0x5b,
+  0x5e, 0x6c, 0x4c, 0x5d, 0x2e, 0x2a, 0x27, 0x3b, 0x7d, 0x64, 0x65, 0x73,
+  0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x22, 0x41, 0x20,
+  0x59, 0x41, 0x4e, 0x47, 0x20, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66,
+  0x69, 0x65, 0x72, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x61,
+  0x73, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x20, 0x62, 0x79,
+  0x20, 0x74, 0x68, 0x65, 0x20, 0x27, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69,
+  0x66, 0x69, 0x65, 0x72, 0x27, 0x0a, 0x72, 0x75, 0x6c, 0x65, 0x20, 0x69,
+  0x6e, 0x20, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x31, 0x32,
+  0x20, 0x6f, 0x66, 0x20, 0x52, 0x46, 0x43, 0x20, 0x36, 0x30, 0x32, 0x30,
+  0x2e, 0x20, 0x20, 0x41, 0x6e, 0x20, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69,
+  0x66, 0x69, 0x65, 0x72, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x0a, 0x73, 0x74,
+  0x61, 0x72, 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x61, 0x6e, 0x20,
+  0x61, 0x6c, 0x70, 0x68, 0x61, 0x62, 0x65, 0x74, 0x69, 0x63, 0x20, 0x63,
+  0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x20, 0x6f, 0x72, 0x20,
+  0x61, 0x6e, 0x20, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x73, 0x63, 0x6f, 0x72,
+  0x65, 0x0a, 0x66, 0x6f, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x62,
+  0x79, 0x20, 0x61, 0x6e, 0x20, 0x61, 0x72, 0x62, 0x69, 0x74, 0x72, 0x61,
+  0x72, 0x79, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x20,
+  0x6f, 0x66, 0x20, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x62, 0x65, 0x74, 0x69,
+  0x63, 0x20, 0x6f, 0x72, 0x0a, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x69, 0x63,
+  0x20, 0x63, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x73, 0x2c,
+  0x20, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x73,
+  0x2c, 0x20, 0x68, 0x79, 0x70, 0x68, 0x65, 0x6e, 0x73, 0x2c, 0x20, 0x6f,
+  0x72, 0x20, 0x64, 0x6f, 0x74, 0x73, 0x2e, 0x0a, 0x0a, 0x41, 0x20, 0x59,
+  0x41, 0x4e, 0x47, 0x20, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69,
+  0x65, 0x72, 0x20, 0x4d, 0x55, 0x53, 0x54, 0x20, 0x4e, 0x4f, 0x54, 0x20,
+  0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x61,
+  0x6e, 0x79, 0x20, 0x70, 0x6f, 0x73, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x0a,
+  0x63, 0x6f, 0x6d, 0x62, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20,
+  0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6c, 0x6f, 0x77, 0x65, 0x72,
+  0x63, 0x61, 0x73, 0x65, 0x20, 0x6f, 0x72, 0x20, 0x75, 0x70, 0x70, 0x65,
+  0x72, 0x63, 0x61, 0x73, 0x65, 0x20, 0x63, 0x68, 0x61, 0x72, 0x61, 0x63,
+  0x74, 0x65, 0x72, 0x0a, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65,
+  0x20, 0x27, 0x78, 0x6d, 0x6c, 0x27, 0x2e, 0x22, 0x3b, 0x72, 0x65, 0x66,
+  0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x0a, 0x22, 0x52, 0x46, 0x43, 0x20,
+  0x36, 0x30, 0x32, 0x30, 0x3a, 0x20, 0x59, 0x41, 0x4e, 0x47, 0x20, 0x2d,
+  0x20, 0x41, 0x20, 0x44, 0x61, 0x74, 0x61, 0x20, 0x4d, 0x6f, 0x64, 0x65,
+  0x6c, 0x69, 0x6e, 0x67, 0x20, 0x4c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67,
+  0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4e, 0x65,
+  0x74, 0x77, 0x6f, 0x72, 0x6b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+  0x20, 0x20, 0x20, 0x20, 0x20, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75,
+  0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x50, 0x72, 0x6f, 0x74, 0x6f,
+  0x63, 0x6f, 0x6c, 0x20, 0x28, 0x4e, 0x45, 0x54, 0x43, 0x4f, 0x4e, 0x46,
+  0x29, 0x22, 0x3b, 0x7d, 0x74, 0x79, 0x70, 0x65, 0x64, 0x65, 0x66, 0x20,
+  0x64, 0x61, 0x74, 0x65, 0x2d, 0x61, 0x6e, 0x64, 0x2d, 0x74, 0x69, 0x6d,
+  0x65, 0x20, 0x7b, 0x74, 0x79, 0x70, 0x65, 0x20, 0x73, 0x74, 0x72, 0x69,
+  0x6e, 0x67, 0x20, 0x7b, 0x70, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x20,
+  0x27, 0x5c, 0x64, 0x7b, 0x34, 0x7d, 0x2d, 0x5c, 0x64, 0x7b, 0x32, 0x7d,
+  0x2d, 0x5c, 0x64, 0x7b, 0x32, 0x7d, 0x54, 0x5c, 0x64, 0x7b, 0x32, 0x7d,
+  0x3a, 0x5c, 0x64, 0x7b, 0x32, 0x7d, 0x3a, 0x5c, 0x64, 0x7b, 0x32, 0x7d,
+  0x28, 0x5c, 0x2e, 0x5c, 0x64, 0x2b, 0x29, 0x3f, 0x28, 0x5a, 0x7c, 0x5b,
+  0x5c, 0x2b, 0x5c, 0x2d, 0x5d, 0x5c, 0x64, 0x7b, 0x32, 0x7d, 0x3a, 0x5c,
+  0x64, 0x7b, 0x32, 0x7d, 0x29, 0x27, 0x3b, 0x7d, 0x64, 0x65, 0x73, 0x63,
+  0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x22, 0x54, 0x68, 0x65,
+  0x20, 0x64, 0x61, 0x74, 0x65, 0x2d, 0x61, 0x6e, 0x64, 0x2d, 0x74, 0x69,
+  0x6d, 0x65, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x69, 0x73, 0x20, 0x61,
+  0x20, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x6f, 0x66, 0x20,
+  0x74, 0x68, 0x65, 0x20, 0x49, 0x53, 0x4f, 0x20, 0x38, 0x36, 0x30, 0x31,
+  0x0a, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x66, 0x6f,
+  0x72, 0x20, 0x72, 0x65, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x61,
+  0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x64, 0x61, 0x74, 0x65,
+  0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x20,
+  0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65, 0x0a, 0x47, 0x72,
+  0x65, 0x67, 0x6f, 0x72, 0x69, 0x61, 0x6e, 0x20, 0x63, 0x61, 0x6c, 0x65,
+  0x6e, 0x64, 0x61, 0x72, 0x2e, 0x20, 0x20, 0x54, 0x68, 0x65, 0x20, 0x70,
+  0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x69, 0x73, 0x20, 0x64, 0x65,
+  0x66, 0x69, 0x6e, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x74, 0x68, 0x65,
+  0x0a, 0x64, 0x61, 0x74, 0x65, 0x2d, 0x74, 0x69, 0x6d, 0x65, 0x20, 0x70,
+  0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x6e,
+  0x20, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x35, 0x2e, 0x36,
+  0x20, 0x6f, 0x66, 0x20, 0x52, 0x46, 0x43, 0x20, 0x33, 0x33, 0x33, 0x39,
+  0x2e, 0x0a, 0x0a, 0x54, 0x68, 0x65, 0x20, 0x64, 0x61, 0x74, 0x65, 0x2d,
+  0x61, 0x6e, 0x64, 0x2d, 0x74, 0x69, 0x6d, 0x65, 0x20, 0x74, 0x79, 0x70,
+  0x65, 0x20, 0x69, 0x73, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x74, 0x69,
+  0x62, 0x6c, 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x65,
+  0x20, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x20, 0x58, 0x4d,
+  0x4c, 0x0a, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x20, 0x74, 0x79, 0x70,
+  0x65, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66,
+  0x6f, 0x6c, 0x6c, 0x6f, 0x77, 0x69, 0x6e, 0x67, 0x20, 0x6e, 0x6f, 0x74,
+  0x61, 0x62, 0x6c, 0x65, 0x20, 0x65, 0x78, 0x63, 0x65, 0x70, 0x74, 0x69,
+  0x6f, 0x6e, 0x73, 0x3a, 0x0a, 0x0a, 0x28, 0x61, 0x29, 0x20, 0x54, 0x68,
+  0x65, 0x20, 0x64, 0x61, 0x74, 0x65, 0x2d, 0x61, 0x6e, 0x64, 0x2d, 0x74,
+  0x69, 0x6d, 0x65, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x64, 0x6f, 0x65,
+  0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x20,
+  0x6e, 0x65, 0x67, 0x61, 0x74, 0x69, 0x76, 0x65, 0x20, 0x79, 0x65, 0x61,
+  0x72, 0x73, 0x2e, 0x0a, 0x0a, 0x28, 0x62, 0x29, 0x20, 0x54, 0x68, 0x65,
+  0x20, 0x64, 0x61, 0x74, 0x65, 0x2d, 0x61, 0x6e, 0x64, 0x2d, 0x74, 0x69,
+  0x6d, 0x65, 0x20, 0x74, 0x69, 0x6d, 0x65, 0x2d, 0x6f, 0x66, 0x66, 0x73,
+  0x65, 0x74, 0x20, 0x2d, 0x30, 0x30, 0x3a, 0x30, 0x30, 0x20, 0x69, 0x6e,
+  0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x20, 0x61, 0x6e, 0x20, 0x75,
+  0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20,
+  0x74, 0x69, 0x6d, 0x65, 0x20, 0x7a, 0x6f, 0x6e, 0x65, 0x20, 0x28, 0x73,
+  0x65, 0x65, 0x20, 0x52, 0x46, 0x43, 0x20, 0x33, 0x33, 0x33, 0x39, 0x29,
+  0x20, 0x77, 0x68, 0x69, 0x6c, 0x65, 0x20, 0x2d, 0x30, 0x30, 0x3a, 0x30,
+  0x30, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x2b, 0x30, 0x30, 0x3a, 0x30, 0x30,
+  0x20, 0x61, 0x6e, 0x64, 0x20, 0x5a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20,
+  0x61, 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e,
+  0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x74,
+  0x69, 0x6d, 0x65, 0x20, 0x7a, 0x6f, 0x6e, 0x65, 0x20, 0x69, 0x6e, 0x20,
+  0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x2e, 0x0a, 0x0a, 0x28,
+  0x63, 0x29, 0x20, 0x54, 0x68, 0x65, 0x20, 0x63, 0x61, 0x6e, 0x6f, 0x6e,
+  0x69, 0x63, 0x61, 0x6c, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x20,
+  0x28, 0x73, 0x65, 0x65, 0x20, 0x62, 0x65, 0x6c, 0x6f, 0x77, 0x29, 0x20,
+  0x6f, 0x66, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2d, 0x61, 0x6e, 0x64, 0x2d,
+  0x74, 0x69, 0x6d, 0x65, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x0a,
+  0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x73,
+  0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x61,
+  0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x66, 0x6f, 0x72, 0x6d,
+  0x61, 0x74, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x74,
+  0x68, 0x65, 0x20, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x20,
+  0x58, 0x4d, 0x4c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x73, 0x63, 0x68,
+  0x65, 0x6d, 0x61, 0x20, 0x74, 0x79, 0x70, 0x65, 0x2c, 0x20, 0x77, 0x68,
+  0x69, 0x63, 0x68, 0x20, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x73,
+  0x20, 0x61, 0x6c, 0x6c, 0x20, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x20, 0x74,
+  0x6f, 0x20, 0x62, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x55, 0x54, 0x43, 0x20,
+  0x75, 0x73, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x74,
+  0x68, 0x65, 0x20, 0x74, 0x69, 0x6d, 0x65, 0x2d, 0x6f, 0x66, 0x66, 0x73,
+  0x65, 0x74, 0x20, 0x27, 0x5a, 0x27, 0x2e, 0x0a, 0x0a, 0x54, 0x68, 0x69,
+  0x73, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x69, 0x73, 0x20, 0x6e, 0x6f,
+  0x74, 0x20, 0x65, 0x71, 0x75, 0x69, 0x76, 0x61, 0x6c, 0x65, 0x6e, 0x74,
+  0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x44, 0x61, 0x74, 0x65,
+  0x41, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x20, 0x74, 0x65, 0x78, 0x74,
+  0x75, 0x61, 0x6c, 0x0a, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x69,
+  0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x4d,
+  0x49, 0x76, 0x32, 0x20, 0x73, 0x69, 0x6e, 0x63, 0x65, 0x20, 0x52, 0x46,
+  0x43, 0x20, 0x33, 0x33, 0x33, 0x39, 0x20, 0x75, 0x73, 0x65, 0x73, 0x20,
+  0x61, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x74, 0x0a,
+  0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x20, 0x62, 0x65,
+  0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x2d, 0x64,
+  0x61, 0x74, 0x65, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x66, 0x75, 0x6c, 0x6c,
+  0x2d, 0x74, 0x69, 0x6d, 0x65, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x70, 0x72,
+  0x6f, 0x76, 0x69, 0x64, 0x65, 0x73, 0x0a, 0x68, 0x69, 0x67, 0x68, 0x65,
+  0x72, 0x20, 0x72, 0x65, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x69, 0x6f, 0x6e,
+  0x20, 0x6f, 0x66, 0x20, 0x74, 0x69, 0x6d, 0x65, 0x2d, 0x73, 0x65, 0x63,
+  0x66, 0x72, 0x61, 0x63, 0x2e, 0x0a, 0x0a, 0x54, 0x68, 0x65, 0x20, 0x63,
+  0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x66, 0x6f, 0x72,
+  0x6d, 0x61, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x64, 0x61, 0x74, 0x65,
+  0x2d, 0x61, 0x6e, 0x64, 0x2d, 0x74, 0x69, 0x6d, 0x65, 0x20, 0x76, 0x61,
+  0x6c, 0x75, 0x65, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x61, 0x20,
+  0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x20, 0x74, 0x69, 0x6d, 0x65, 0x0a, 0x7a,
+  0x6f, 0x6e, 0x65, 0x20, 0x75, 0x73, 0x65, 0x73, 0x20, 0x61, 0x20, 0x6e,
+  0x75, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x74, 0x69, 0x6d, 0x65, 0x20,
+  0x7a, 0x6f, 0x6e, 0x65, 0x20, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x20,
+  0x74, 0x68, 0x61, 0x74, 0x20, 0x69, 0x73, 0x20, 0x63, 0x61, 0x6c, 0x63,
+  0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67,
+  0x0a, 0x74, 0x68, 0x65, 0x20, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x27,
+  0x73, 0x20, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x64,
+  0x20, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x20, 0x6f, 0x66, 0x66, 0x73, 0x65,
+  0x74, 0x20, 0x74, 0x6f, 0x20, 0x55, 0x54, 0x43, 0x20, 0x74, 0x69, 0x6d,
+  0x65, 0x2e, 0x20, 0x20, 0x41, 0x20, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65,
+  0x20, 0x6f, 0x66, 0x0a, 0x74, 0x68, 0x65, 0x20, 0x64, 0x65, 0x76, 0x69,
+  0x63, 0x65, 0x27, 0x73, 0x20, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x20,
+  0x74, 0x6f, 0x20, 0x55, 0x54, 0x43, 0x20, 0x74, 0x69, 0x6d, 0x65, 0x20,
+  0x77, 0x69, 0x6c, 0x6c, 0x20, 0x63, 0x61, 0x75, 0x73, 0x65, 0x20, 0x64,
+  0x61, 0x74, 0x65, 0x2d, 0x61, 0x6e, 0x64, 0x2d, 0x74, 0x69, 0x6d, 0x65,
+  0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x0a, 0x74, 0x6f, 0x20, 0x63,
+  0x68, 0x61, 0x6e, 0x67, 0x65, 0x20, 0x61, 0x63, 0x63, 0x6f, 0x72, 0x64,
+  0x69, 0x6e, 0x67, 0x6c, 0x79, 0x2e, 0x20, 0x20, 0x53, 0x75, 0x63, 0x68,
+  0x20, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x20, 0x6d, 0x69, 0x67,
+  0x68, 0x74, 0x20, 0x68, 0x61, 0x70, 0x70, 0x65, 0x6e, 0x20, 0x70, 0x65,
+  0x72, 0x69, 0x6f, 0x64, 0x69, 0x63, 0x61, 0x6c, 0x6c, 0x79, 0x0a, 0x69,
+  0x6e, 0x20, 0x63, 0x61, 0x73, 0x65, 0x20, 0x61, 0x20, 0x73, 0x65, 0x72,
+  0x76, 0x65, 0x72, 0x20, 0x66, 0x6f, 0x6c, 0x6c, 0x6f, 0x77, 0x73, 0x20,
+  0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x6c,
+  0x79, 0x20, 0x64, 0x61, 0x79, 0x6c, 0x69, 0x67, 0x68, 0x74, 0x20, 0x73,
+  0x61, 0x76, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x69, 0x6d, 0x65, 0x0a, 0x28,
+  0x44, 0x53, 0x54, 0x29, 0x20, 0x74, 0x69, 0x6d, 0x65, 0x20, 0x7a, 0x6f,
+  0x6e, 0x65, 0x20, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x20, 0x63, 0x68,
+  0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x20, 0x20, 0x54, 0x68, 0x65, 0x20,
+  0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x66, 0x6f,
+  0x72, 0x6d, 0x61, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x0a, 0x64, 0x61, 0x74,
+  0x65, 0x2d, 0x61, 0x6e, 0x64, 0x2d, 0x74, 0x69, 0x6d, 0x65, 0x20, 0x76,
+  0x61, 0x6c, 0x75, 0x65, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x61,
+  0x6e, 0x20, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x20, 0x74, 0x69,
+  0x6d, 0x65, 0x20, 0x7a, 0x6f, 0x6e, 0x65, 0x20, 0x28, 0x75, 0x73, 0x75,
+  0x61, 0x6c, 0x6c, 0x79, 0x0a, 0x72, 0x65, 0x66, 0x65, 0x72, 0x72, 0x69,
+  0x6e, 0x67, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6e, 0x6f,
+  0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x6c, 0x6f, 0x63, 0x61,
+  0x6c, 0x20, 0x74, 0x69, 0x6d, 0x65, 0x29, 0x20, 0x75, 0x73, 0x65, 0x73,
+  0x20, 0x74, 0x68, 0x65, 0x20, 0x74, 0x69, 0x6d, 0x65, 0x2d, 0x6f, 0x66,
+  0x66, 0x73, 0x65, 0x74, 0x0a, 0x2d, 0x30, 0x30, 0x3a, 0x30, 0x30, 0x2e,
+  0x22, 0x3b, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x0a,
+  0x22, 0x52, 0x46, 0x43, 0x20, 0x33, 0x33, 0x33, 0x39, 0x3a, 0x20, 0x44,
+  0x61, 0x74, 0x65, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x54, 0x69, 0x6d, 0x65,
+  0x20, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x49, 0x6e, 0x74, 0x65,
+  0x72, 0x6e, 0x65, 0x74, 0x3a, 0x20, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74,
+  0x61, 0x6d, 0x70, 0x73, 0x0a, 0x52, 0x46, 0x43, 0x20, 0x32, 0x35, 0x37,
+  0x39, 0x3a, 0x20, 0x54, 0x65, 0x78, 0x74, 0x75, 0x61, 0x6c, 0x20, 0x43,
+  0x6f, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x66,
+  0x6f, 0x72, 0x20, 0x53, 0x4d, 0x49, 0x76, 0x32, 0x0a, 0x58, 0x53, 0x44,
+  0x2d, 0x54, 0x59, 0x50, 0x45, 0x53, 0x3a, 0x20, 0x58, 0x4d, 0x4c, 0x20,
+  0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x20, 0x50, 0x61, 0x72, 0x74, 0x20,
+  0x32, 0x3a, 0x20, 0x44, 0x61, 0x74, 0x61, 0x74, 0x79, 0x70, 0x65, 0x73,
+  0x20, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x20, 0x45, 0x64, 0x69, 0x74,
+  0x69, 0x6f, 0x6e, 0x22, 0x3b, 0x7d, 0x74, 0x79, 0x70, 0x65, 0x64, 0x65,
+  0x66, 0x20, 0x74, 0x69, 0x6d, 0x65, 0x74, 0x69, 0x63, 0x6b, 0x73, 0x20,
+  0x7b, 0x74, 0x79, 0x70, 0x65, 0x20, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32,
+  0x3b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e,
+  0x0a, 0x22, 0x54, 0x68, 0x65, 0x20, 0x74, 0x69, 0x6d, 0x65, 0x74, 0x69,
+  0x63, 0x6b, 0x73, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x72, 0x65, 0x70,
+  0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x61, 0x20, 0x6e, 0x6f,
+  0x6e, 0x2d, 0x6e, 0x65, 0x67, 0x61, 0x74, 0x69, 0x76, 0x65, 0x20, 0x69,
+  0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x74, 0x0a,
+  0x72, 0x65, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74,
+  0x68, 0x65, 0x20, 0x74, 0x69, 0x6d, 0x65, 0x2c, 0x20, 0x6d, 0x6f, 0x64,
+  0x75, 0x6c, 0x6f, 0x20, 0x32, 0x5e, 0x33, 0x32, 0x20, 0x28, 0x34, 0x32,
+  0x39, 0x34, 0x39, 0x36, 0x37, 0x32, 0x39, 0x36, 0x20, 0x64, 0x65, 0x63,
+  0x69, 0x6d, 0x61, 0x6c, 0x29, 0x2c, 0x20, 0x69, 0x6e, 0x0a, 0x68, 0x75,
+  0x6e, 0x64, 0x72, 0x65, 0x64, 0x74, 0x68, 0x73, 0x20, 0x6f, 0x66, 0x20,
+  0x61, 0x20, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x20, 0x62, 0x65, 0x74,
+  0x77, 0x65, 0x65, 0x6e, 0x20, 0x74, 0x77, 0x6f, 0x20, 0x65, 0x70, 0x6f,
+  0x63, 0x68, 0x73, 0x2e, 0x20, 0x20, 0x57, 0x68, 0x65, 0x6e, 0x20, 0x61,
+  0x20, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x0a, 0x6e, 0x6f, 0x64, 0x65,
+  0x20, 0x69, 0x73, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x20,
+  0x74, 0x68, 0x61, 0x74, 0x20, 0x75, 0x73, 0x65, 0x73, 0x20, 0x74, 0x68,
+  0x69, 0x73, 0x20, 0x74, 0x79, 0x70, 0x65, 0x2c, 0x20, 0x74, 0x68, 0x65,
+  0x20, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e,
+  0x20, 0x6f, 0x66, 0x0a, 0x74, 0x68, 0x65, 0x20, 0x73, 0x63, 0x68, 0x65,
+  0x6d, 0x61, 0x20, 0x6e, 0x6f, 0x64, 0x65, 0x20, 0x69, 0x64, 0x65, 0x6e,
+  0x74, 0x69, 0x66, 0x69, 0x65, 0x73, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20,
+  0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x66, 0x65, 0x72,
+  0x65, 0x6e, 0x63, 0x65, 0x20, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x73, 0x2e,
+  0x0a, 0x0a, 0x49, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x76, 0x61, 0x6c,
+  0x75, 0x65, 0x20, 0x73, 0x65, 0x74, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x69,
+  0x74, 0x73, 0x20, 0x73, 0x65, 0x6d, 0x61, 0x6e, 0x74, 0x69, 0x63, 0x73,
+  0x2c, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20,
+  0x69, 0x73, 0x20, 0x65, 0x71, 0x75, 0x69, 0x76, 0x61, 0x6c, 0x65, 0x6e,
+  0x74, 0x0a, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x54, 0x69, 0x6d,
+  0x65, 0x54, 0x69, 0x63, 0x6b, 0x73, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20,
+  0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x4d, 0x49, 0x76, 0x32,
+  0x2e, 0x22, 0x3b, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65,
+  0x0a, 0x22, 0x52, 0x46, 0x43, 0x20, 0x32, 0x35, 0x37, 0x38, 0x3a, 0x20,
+  0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x20, 0x6f, 0x66,
+  0x20, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x20,
+  0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20,
+  0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x32, 0x0a, 0x20, 0x20,
+  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x28, 0x53, 0x4d,
+  0x49, 0x76, 0x32, 0x29, 0x22, 0x3b, 0x7d, 0x74, 0x79, 0x70, 0x65, 0x64,
+  0x65, 0x66, 0x20, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70,
+  0x20, 0x7b, 0x74, 0x79, 0x70, 0x65, 0x20, 0x79, 0x61, 0x6e, 0x67, 0x3a,
+  0x74, 0x69, 0x6d, 0x65, 0x74, 0x69, 0x63, 0x6b, 0x73, 0x3b, 0x64, 0x65,
+  0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x22, 0x54,
+  0x68, 0x65, 0x20, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70,
+  0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x72, 0x65, 0x70, 0x72, 0x65, 0x73,
+  0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x76, 0x61, 0x6c,
+  0x75, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6e, 0x20, 0x61, 0x73, 0x73,
+  0x6f, 0x63, 0x69, 0x61, 0x74, 0x65, 0x64, 0x0a, 0x74, 0x69, 0x6d, 0x65,
+  0x74, 0x69, 0x63, 0x6b, 0x73, 0x20, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61,
+  0x20, 0x6e, 0x6f, 0x64, 0x65, 0x20, 0x61, 0x74, 0x20, 0x77, 0x68, 0x69,
+  0x63, 0x68, 0x20, 0x61, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69,
+  0x63, 0x20, 0x6f, 0x63, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x65,
+  0x0a, 0x68, 0x61, 0x70, 0x70, 0x65, 0x6e, 0x65, 0x64, 0x2e, 0x20, 0x20,
+  0x54, 0x68, 0x65, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63,
+  0x20, 0x6f, 0x63, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x20,
+  0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x64, 0x65, 0x66, 0x69,
+  0x6e, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x0a, 0x64,
+  0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f,
+  0x66, 0x20, 0x61, 0x6e, 0x79, 0x20, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61,
+  0x20, 0x6e, 0x6f, 0x64, 0x65, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65,
+  0x64, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x69, 0x73,
+  0x20, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x20, 0x20, 0x57, 0x68, 0x65, 0x6e,
+  0x0a, 0x74, 0x68, 0x65, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69,
+  0x63, 0x20, 0x6f, 0x63, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x65,
+  0x20, 0x6f, 0x63, 0x63, 0x75, 0x72, 0x72, 0x65, 0x64, 0x20, 0x70, 0x72,
+  0x69, 0x6f, 0x72, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6c,
+  0x61, 0x73, 0x74, 0x20, 0x74, 0x69, 0x6d, 0x65, 0x20, 0x74, 0x68, 0x65,
+  0x0a, 0x61, 0x73, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x65, 0x64, 0x20,
+  0x74, 0x69, 0x6d, 0x65, 0x74, 0x69, 0x63, 0x6b, 0x73, 0x20, 0x61, 0x74,
+  0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x77, 0x61, 0x73, 0x20,
+  0x7a, 0x65, 0x72, 0x6f, 0x2c, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x20, 0x74,
+  0x68, 0x65, 0x20, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70,
+  0x0a, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x69, 0x73, 0x20, 0x7a, 0x65,
+  0x72, 0x6f, 0x2e, 0x20, 0x20, 0x4e, 0x6f, 0x74, 0x65, 0x20, 0x74, 0x68,
+  0x61, 0x74, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x72, 0x65, 0x71, 0x75,
+  0x69, 0x72, 0x65, 0x73, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x74, 0x69, 0x6d,
+  0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65,
+  0x73, 0x0a, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x72, 0x65, 0x73, 0x65,
+  0x74, 0x20, 0x74, 0x6f, 0x20, 0x7a, 0x65, 0x72, 0x6f, 0x20, 0x77, 0x68,
+  0x65, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65,
+  0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x73, 0x73, 0x6f,
+  0x63, 0x69, 0x61, 0x74, 0x65, 0x64, 0x20, 0x74, 0x69, 0x6d, 0x65, 0x74,
+  0x69, 0x63, 0x6b, 0x73, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75,
+  0x74, 0x65, 0x20, 0x72, 0x65, 0x61, 0x63, 0x68, 0x65, 0x73, 0x20, 0x34,
+  0x39, 0x37, 0x2b, 0x20, 0x64, 0x61, 0x79, 0x73, 0x20, 0x61, 0x6e, 0x64,
+  0x20, 0x77, 0x72, 0x61, 0x70, 0x73, 0x20, 0x61, 0x72, 0x6f, 0x75, 0x6e,
+  0x64, 0x20, 0x74, 0x6f, 0x20, 0x7a, 0x65, 0x72, 0x6f, 0x2e, 0x0a, 0x0a,
+  0x54, 0x68, 0x65, 0x20, 0x61, 0x73, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74,
+  0x65, 0x64, 0x20, 0x74, 0x69, 0x6d, 0x65, 0x74, 0x69, 0x63, 0x6b, 0x73,
+  0x20, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x20, 0x6e, 0x6f, 0x64, 0x65,
+  0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x73, 0x70, 0x65,
+  0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x0a, 0x69, 0x6e, 0x20, 0x74, 0x68,
+  0x65, 0x20, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f,
+  0x6e, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6e, 0x79, 0x20, 0x73, 0x63, 0x68,
+  0x65, 0x6d, 0x61, 0x20, 0x6e, 0x6f, 0x64, 0x65, 0x20, 0x75, 0x73, 0x69,
+  0x6e, 0x67, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x74, 0x79, 0x70, 0x65,
+  0x2e, 0x0a, 0x0a, 0x49, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x76, 0x61,
+  0x6c, 0x75, 0x65, 0x20, 0x73, 0x65, 0x74, 0x20, 0x61, 0x6e, 0x64, 0x20,
+  0x69, 0x74, 0x73, 0x20, 0x73, 0x65, 0x6d, 0x61, 0x6e, 0x74, 0x69, 0x63,
+  0x73, 0x2c, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x74, 0x79, 0x70, 0x65,
+  0x20, 0x69, 0x73, 0x20, 0x65, 0x71, 0x75, 0x69, 0x76, 0x61, 0x6c, 0x65,
+  0x6e, 0x74, 0x0a, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x54, 0x69,
+  0x6d, 0x65, 0x53, 0x74, 0x61, 0x6d, 0x70, 0x20, 0x74, 0x65, 0x78, 0x74,
+  0x75, 0x61, 0x6c, 0x20, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x69,
+  0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x4d,
+  0x49, 0x76, 0x32, 0x2e, 0x22, 0x3b, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65,
+  0x6e, 0x63, 0x65, 0x0a, 0x22, 0x52, 0x46, 0x43, 0x20, 0x32, 0x35, 0x37,
+  0x39, 0x3a, 0x20, 0x54, 0x65, 0x78, 0x74, 0x75, 0x61, 0x6c, 0x20, 0x43,
+  0x6f, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x66,
+  0x6f, 0x72, 0x20, 0x53, 0x4d, 0x49, 0x76, 0x32, 0x22, 0x3b, 0x7d, 0x74,
+  0x79, 0x70, 0x65, 0x64, 0x65, 0x66, 0x20, 0x70, 0x68, 0x79, 0x73, 0x2d,
+  0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x20, 0x7b, 0x74, 0x79, 0x70,
+  0x65, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x7b, 0x70, 0x61,
+  0x74, 0x74, 0x65, 0x72, 0x6e, 0x20, 0x27, 0x28, 0x5b, 0x30, 0x2d, 0x39,
+  0x61, 0x2d, 0x66, 0x41, 0x2d, 0x46, 0x5d, 0x7b, 0x32, 0x7d, 0x28, 0x3a,
+  0x5b, 0x30, 0x2d, 0x39, 0x61, 0x2d, 0x66, 0x41, 0x2d, 0x46, 0x5d, 0x7b,
+  0x32, 0x7d, 0x29, 0x2a, 0x29, 0x3f, 0x27, 0x3b, 0x7d, 0x64, 0x65, 0x73,
+  0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x22, 0x52, 0x65,
+  0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x6d, 0x65, 0x64,
+  0x69, 0x61, 0x2d, 0x20, 0x6f, 0x72, 0x20, 0x70, 0x68, 0x79, 0x73, 0x69,
+  0x63, 0x61, 0x6c, 0x2d, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x20, 0x61, 0x64,
+  0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x20, 0x72, 0x65, 0x70, 0x72,
+  0x65, 0x73, 0x65, 0x6e, 0x74, 0x65, 0x64, 0x0a, 0x61, 0x73, 0x20, 0x61,
+  0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x6f, 0x63,
+  0x74, 0x65, 0x74, 0x73, 0x2c, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x6f,
+  0x63, 0x74, 0x65, 0x74, 0x20, 0x72, 0x65, 0x70, 0x72, 0x65, 0x73, 0x65,
+  0x6e, 0x74, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x74, 0x77, 0x6f, 0x20,
+  0x68, 0x65, 0x78, 0x61, 0x64, 0x65, 0x63, 0x69, 0x6d, 0x61, 0x6c, 0x0a,
+  0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x2e, 0x20, 0x20, 0x4f, 0x63,
+  0x74, 0x65, 0x74, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x73, 0x65, 0x70,
+  0x61, 0x72, 0x61, 0x74, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x63, 0x6f,
+  0x6c, 0x6f, 0x6e, 0x73, 0x2e, 0x20, 0x20, 0x54, 0x68, 0x65, 0x20, 0x63,
+  0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x0a, 0x72, 0x65, 0x70,
+  0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20,
+  0x75, 0x73, 0x65, 0x73, 0x20, 0x6c, 0x6f, 0x77, 0x65, 0x72, 0x63, 0x61,
+  0x73, 0x65, 0x20, 0x63, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72,
+  0x73, 0x2e, 0x0a, 0x0a, 0x49, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x76,
+  0x61, 0x6c, 0x75, 0x65, 0x20, 0x73, 0x65, 0x74, 0x20, 0x61, 0x6e, 0x64,
+  0x20, 0x69, 0x74, 0x73, 0x20, 0x73, 0x65, 0x6d, 0x61, 0x6e, 0x74, 0x69,
+  0x63, 0x73, 0x2c, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x74, 0x79, 0x70,
+  0x65, 0x20, 0x69, 0x73, 0x20, 0x65, 0x71, 0x75, 0x69, 0x76, 0x61, 0x6c,
+  0x65, 0x6e, 0x74, 0x0a, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x50,
+  0x68, 0x79, 0x73, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x20, 0x74,
+  0x65, 0x78, 0x74, 0x75, 0x61, 0x6c, 0x20, 0x63, 0x6f, 0x6e, 0x76, 0x65,
+  0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65,
+  0x20, 0x53, 0x4d, 0x49, 0x76, 0x32, 0x2e, 0x22, 0x3b, 0x72, 0x65, 0x66,
+  0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x0a, 0x22, 0x52, 0x46, 0x43, 0x20,
+  0x32, 0x35, 0x37, 0x39, 0x3a, 0x20, 0x54, 0x65, 0x78, 0x74, 0x75, 0x61,
+  0x6c, 0x20, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e,
+  0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x53, 0x4d, 0x49, 0x76, 0x32, 0x22,
+  0x3b, 0x7d, 0x74, 0x79, 0x70, 0x65, 0x64, 0x65, 0x66, 0x20, 0x6d, 0x61,
+  0x63, 0x2d, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x20, 0x7b, 0x74,
+  0x79, 0x70, 0x65, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x7b,
+  0x70, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x20, 0x27, 0x5b, 0x30, 0x2d,
+  0x39, 0x61, 0x2d, 0x66, 0x41, 0x2d, 0x46, 0x5d, 0x7b, 0x32, 0x7d, 0x28,
+  0x3a, 0x5b, 0x30, 0x2d, 0x39, 0x61, 0x2d, 0x66, 0x41, 0x2d, 0x46, 0x5d,
+  0x7b, 0x32, 0x7d, 0x29, 0x7b, 0x35, 0x7d, 0x27, 0x3b, 0x7d, 0x64, 0x65,
+  0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x22, 0x54,
+  0x68, 0x65, 0x20, 0x6d, 0x61, 0x63, 0x2d, 0x61, 0x64, 0x64, 0x72, 0x65,
+  0x73, 0x73, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x72, 0x65, 0x70, 0x72,
+  0x65, 0x73, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x61, 0x6e, 0x20, 0x49, 0x45,
+  0x45, 0x45, 0x20, 0x38, 0x30, 0x32, 0x20, 0x4d, 0x41, 0x43, 0x20, 0x61,
+  0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x2e, 0x0a, 0x54, 0x68, 0x65, 0x20,
+  0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x72, 0x65,
+  0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+  0x20, 0x75, 0x73, 0x65, 0x73, 0x20, 0x6c, 0x6f, 0x77, 0x65, 0x72, 0x63,
+  0x61, 0x73, 0x65, 0x20, 0x63, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65,
+  0x72, 0x73, 0x2e, 0x0a, 0x0a, 0x49, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20,
+  0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x73, 0x65, 0x74, 0x20, 0x61, 0x6e,
+  0x64, 0x20, 0x69, 0x74, 0x73, 0x20, 0x73, 0x65, 0x6d, 0x61, 0x6e, 0x74,
+  0x69, 0x63, 0x73, 0x2c, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x74, 0x79,
+  0x70, 0x65, 0x20, 0x69, 0x73, 0x20, 0x65, 0x71, 0x75, 0x69, 0x76, 0x61,
+  0x6c, 0x65, 0x6e, 0x74, 0x0a, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20,
+  0x4d, 0x61, 0x63, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x20, 0x74,
+  0x65, 0x78, 0x74, 0x75, 0x61, 0x6c, 0x20, 0x63, 0x6f, 0x6e, 0x76, 0x65,
+  0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65,
+  0x20, 0x53, 0x4d, 0x49, 0x76, 0x32, 0x2e, 0x22, 0x3b, 0x72, 0x65, 0x66,
+  0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x0a, 0x22, 0x49, 0x45, 0x45, 0x45,
+  0x20, 0x38, 0x30, 0x32, 0x3a, 0x20, 0x49, 0x45, 0x45, 0x45, 0x20, 0x53,
+  0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x66, 0x6f, 0x72, 0x20,
+  0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x4d, 0x65,
+  0x74, 0x72, 0x6f, 0x70, 0x6f, 0x6c, 0x69, 0x74, 0x61, 0x6e, 0x20, 0x41,
+  0x72, 0x65, 0x61, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+  0x20, 0x20, 0x20, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x3a,
+  0x20, 0x4f, 0x76, 0x65, 0x72, 0x76, 0x69, 0x65, 0x77, 0x20, 0x61, 0x6e,
+  0x64, 0x20, 0x41, 0x72, 0x63, 0x68, 0x69, 0x74, 0x65, 0x63, 0x74, 0x75,
+  0x72, 0x65, 0x0a, 0x52, 0x46, 0x43, 0x20, 0x32, 0x35, 0x37, 0x39, 0x3a,
+  0x20, 0x54, 0x65, 0x78, 0x74, 0x75, 0x61, 0x6c, 0x20, 0x43, 0x6f, 0x6e,
+  0x76, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x66, 0x6f, 0x72,
+  0x20, 0x53, 0x4d, 0x49, 0x76, 0x32, 0x22, 0x3b, 0x7d, 0x74, 0x79, 0x70,
+  0x65, 0x64, 0x65, 0x66, 0x20, 0x78, 0x70, 0x61, 0x74, 0x68, 0x31, 0x2e,
+  0x30, 0x20, 0x7b, 0x74, 0x79, 0x70, 0x65, 0x20, 0x73, 0x74, 0x72, 0x69,
+  0x6e, 0x67, 0x3b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69,
+  0x6f, 0x6e, 0x0a, 0x22, 0x54, 0x68, 0x69, 0x73, 0x20, 0x74, 0x79, 0x70,
+  0x65, 0x20, 0x72, 0x65, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x73,
+  0x20, 0x61, 0x6e, 0x20, 0x58, 0x50, 0x41, 0x54, 0x48, 0x20, 0x31, 0x2e,
+  0x30, 0x20, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e,
+  0x2e, 0x0a, 0x0a, 0x57, 0x68, 0x65, 0x6e, 0x20, 0x61, 0x20, 0x73, 0x63,
+  0x68, 0x65, 0x6d, 0x61, 0x20, 0x6e, 0x6f, 0x64, 0x65, 0x20, 0x69, 0x73,
+  0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x20, 0x74, 0x68, 0x61,
+  0x74, 0x20, 0x75, 0x73, 0x65, 0x73, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20,
+  0x74, 0x79, 0x70, 0x65, 0x2c, 0x20, 0x74, 0x68, 0x65, 0x0a, 0x64, 0x65,
+  0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66,
+  0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x20,
+  0x6e, 0x6f, 0x64, 0x65, 0x20, 0x4d, 0x55, 0x53, 0x54, 0x20, 0x73, 0x70,
+  0x65, 0x63, 0x69, 0x66, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x58, 0x50,
+  0x61, 0x74, 0x68, 0x0a, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x20,
+  0x69, 0x6e, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x74, 0x68, 0x65,
+  0x20, 0x58, 0x50, 0x61, 0x74, 0x68, 0x20, 0x65, 0x78, 0x70, 0x72, 0x65,
+  0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x73, 0x20, 0x65, 0x76, 0x61,
+  0x6c, 0x75, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x22, 0x3b, 0x72, 0x65, 0x66,
+  0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x0a, 0x22, 0x58, 0x50, 0x41, 0x54,
+  0x48, 0x3a, 0x20, 0x58, 0x4d, 0x4c, 0x20, 0x50, 0x61, 0x74, 0x68, 0x20,
+  0x4c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x20, 0x28, 0x58, 0x50,
+  0x61, 0x74, 0x68, 0x29, 0x20, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e,
+  0x20, 0x31, 0x2e, 0x30, 0x22, 0x3b, 0x7d, 0x74, 0x79, 0x70, 0x65, 0x64,
+  0x65, 0x66, 0x20, 0x68, 0x65, 0x78, 0x2d, 0x73, 0x74, 0x72, 0x69, 0x6e,
+  0x67, 0x20, 0x7b, 0x74, 0x79, 0x70, 0x65, 0x20, 0x73, 0x74, 0x72, 0x69,
+  0x6e, 0x67, 0x20, 0x7b, 0x70, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x20,
+  0x27, 0x28, 0x5b, 0x30, 0x2d, 0x39, 0x61, 0x2d, 0x66, 0x41, 0x2d, 0x46,
+  0x5d, 0x7b, 0x32, 0x7d, 0x28, 0x3a, 0x5b, 0x30, 0x2d, 0x39, 0x61, 0x2d,
+  0x66, 0x41, 0x2d, 0x46, 0x5d, 0x7b, 0x32, 0x7d, 0x29, 0x2a, 0x29, 0x3f,
+  0x27, 0x3b, 0x7d, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69,
+  0x6f, 0x6e, 0x0a, 0x22, 0x41, 0x20, 0x68, 0x65, 0x78, 0x61, 0x64, 0x65,
+  0x63, 0x69, 0x6d, 0x61, 0x6c, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67,
+  0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x6f, 0x63, 0x74, 0x65, 0x74, 0x73,
+  0x20, 0x72, 0x65, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x65, 0x64,
+  0x20, 0x61, 0x73, 0x20, 0x68, 0x65, 0x78, 0x20, 0x64, 0x69, 0x67, 0x69,
+  0x74, 0x73, 0x0a, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x64,
+  0x20, 0x62, 0x79, 0x20, 0x63, 0x6f, 0x6c, 0x6f, 0x6e, 0x73, 0x2e, 0x20,
+  0x20, 0x54, 0x68, 0x65, 0x20, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63,
+  0x61, 0x6c, 0x20, 0x72, 0x65, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74,
+  0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x75, 0x73, 0x65, 0x73, 0x0a, 0x6c,
+  0x6f, 0x77, 0x65, 0x72, 0x63, 0x61, 0x73, 0x65, 0x20, 0x63, 0x68, 0x61,
+  0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x73, 0x2e, 0x22, 0x3b, 0x7d, 0x74,
+  0x79, 0x70, 0x65, 0x64, 0x65, 0x66, 0x20, 0x75, 0x75, 0x69, 0x64, 0x20,
+  0x7b, 0x74, 0x79, 0x70, 0x65, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67,
+  0x20, 0x7b, 0x70, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x20, 0x27, 0x5b,
+  0x30, 0x2d, 0x39, 0x61, 0x2d, 0x66, 0x41, 0x2d, 0x46, 0x5d, 0x7b, 0x38,
+  0x7d, 0x2d, 0x5b, 0x30, 0x2d, 0x39, 0x61, 0x2d, 0x66, 0x41, 0x2d, 0x46,
+  0x5d, 0x7b, 0x34, 0x7d, 0x2d, 0x5b, 0x30, 0x2d, 0x39, 0x61, 0x2d, 0x66,
+  0x41, 0x2d, 0x46, 0x5d, 0x7b, 0x34, 0x7d, 0x2d, 0x5b, 0x30, 0x2d, 0x39,
+  0x61, 0x2d, 0x66, 0x41, 0x2d, 0x46, 0x5d, 0x7b, 0x34, 0x7d, 0x2d, 0x5b,
+  0x30, 0x2d, 0x39, 0x61, 0x2d, 0x66, 0x41, 0x2d, 0x46, 0x5d, 0x7b, 0x31,
+  0x32, 0x7d, 0x27, 0x3b, 0x7d, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70,
+  0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x22, 0x41, 0x20, 0x55, 0x6e, 0x69, 0x76,
+  0x65, 0x72, 0x73, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x55, 0x6e, 0x69, 0x71,
+  0x75, 0x65, 0x20, 0x49, 0x44, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65,
+  0x72, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x74, 0x72,
+  0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e,
+  0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x64, 0x65, 0x66, 0x69, 0x6e,
+  0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x52, 0x46, 0x43, 0x20, 0x34, 0x31,
+  0x32, 0x32, 0x2e, 0x20, 0x20, 0x54, 0x68, 0x65, 0x20, 0x63, 0x61, 0x6e,
+  0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x72, 0x65, 0x70, 0x72, 0x65,
+  0x73, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x75, 0x73,
+  0x65, 0x73, 0x0a, 0x6c, 0x6f, 0x77, 0x65, 0x72, 0x63, 0x61, 0x73, 0x65,
+  0x20, 0x63, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x73, 0x2e,
+  0x0a, 0x0a, 0x54, 0x68, 0x65, 0x20, 0x66, 0x6f, 0x6c, 0x6c, 0x6f, 0x77,
+  0x69, 0x6e, 0x67, 0x20, 0x69, 0x73, 0x20, 0x61, 0x6e, 0x20, 0x65, 0x78,
+  0x61, 0x6d, 0x70, 0x6c, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x20, 0x55,
+  0x55, 0x49, 0x44, 0x20, 0x69, 0x6e, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e,
+  0x67, 0x20, 0x72, 0x65, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x61,
+  0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x0a, 0x66, 0x38, 0x31, 0x64, 0x34, 0x66,
+  0x61, 0x65, 0x2d, 0x37, 0x64, 0x65, 0x63, 0x2d, 0x31, 0x31, 0x64, 0x30,
+  0x2d, 0x61, 0x37, 0x36, 0x35, 0x2d, 0x30, 0x30, 0x61, 0x30, 0x63, 0x39,
+  0x31, 0x65, 0x36, 0x62, 0x66, 0x36, 0x0a, 0x22, 0x3b, 0x72, 0x65, 0x66,
+  0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x0a, 0x22, 0x52, 0x46, 0x43, 0x20,
+  0x34, 0x31, 0x32, 0x32, 0x3a, 0x20, 0x41, 0x20, 0x55, 0x6e, 0x69, 0x76,
+  0x65, 0x72, 0x73, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x55, 0x6e, 0x69, 0x71,
+  0x75, 0x65, 0x20, 0x49, 0x44, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65,
+  0x72, 0x20, 0x28, 0x55, 0x55, 0x49, 0x44, 0x29, 0x20, 0x55, 0x52, 0x4e,
+  0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+  0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x22, 0x3b, 0x7d,
+  0x74, 0x79, 0x70, 0x65, 0x64, 0x65, 0x66, 0x20, 0x64, 0x6f, 0x74, 0x74,
+  0x65, 0x64, 0x2d, 0x71, 0x75, 0x61, 0x64, 0x20, 0x7b, 0x74, 0x79, 0x70,
+  0x65, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x7b, 0x70, 0x61,
+  0x74, 0x74, 0x65, 0x72, 0x6e, 0x20, 0x27, 0x28, 0x28, 0x5b, 0x30, 0x2d,
+  0x39, 0x5d, 0x7c, 0x5b, 0x31, 0x2d, 0x39, 0x5d, 0x5b, 0x30, 0x2d, 0x39,
+  0x5d, 0x7c, 0x31, 0x5b, 0x30, 0x2d, 0x39, 0x5d, 0x5b, 0x30, 0x2d, 0x39,
+  0x5d, 0x7c, 0x32, 0x5b, 0x30, 0x2d, 0x34, 0x5d, 0x5b, 0x30, 0x2d, 0x39,
+  0x5d, 0x7c, 0x32, 0x35, 0x5b, 0x30, 0x2d, 0x35, 0x5d, 0x29, 0x5c, 0x2e,
+  0x29, 0x7b, 0x33, 0x7d, 0x28, 0x5b, 0x30, 0x2d, 0x39, 0x5d, 0x7c, 0x5b,
+  0x31, 0x2d, 0x39, 0x5d, 0x5b, 0x30, 0x2d, 0x39, 0x5d, 0x7c, 0x31, 0x5b,
+  0x30, 0x2d, 0x39, 0x5d, 0x5b, 0x30, 0x2d, 0x39, 0x5d, 0x7c, 0x32, 0x5b,
+  0x30, 0x2d, 0x34, 0x5d, 0x5b, 0x30, 0x2d, 0x39, 0x5d, 0x7c, 0x32, 0x35,
+  0x5b, 0x30, 0x2d, 0x35, 0x5d, 0x29, 0x27, 0x3b, 0x7d, 0x64, 0x65, 0x73,
+  0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x22, 0x41, 0x6e,
+  0x20, 0x75, 0x6e, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x20, 0x33, 0x32,
+  0x2d, 0x62, 0x69, 0x74, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20,
+  0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x65, 0x64, 0x20, 0x69, 0x6e,
+  0x20, 0x74, 0x68, 0x65, 0x20, 0x64, 0x6f, 0x74, 0x74, 0x65, 0x64, 0x2d,
+  0x71, 0x75, 0x61, 0x64, 0x0a, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f,
+  0x6e, 0x2c, 0x20, 0x69, 0x2e, 0x65, 0x2e, 0x2c, 0x20, 0x66, 0x6f, 0x75,
+  0x72, 0x20, 0x6f, 0x63, 0x74, 0x65, 0x74, 0x73, 0x20, 0x77, 0x72, 0x69,
+  0x74, 0x74, 0x65, 0x6e, 0x20, 0x61, 0x73, 0x20, 0x64, 0x65, 0x63, 0x69,
+  0x6d, 0x61, 0x6c, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x0a,
+  0x61, 0x6e, 0x64, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65,
+  0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x27,
+  0x2e, 0x27, 0x20, 0x28, 0x66, 0x75, 0x6c, 0x6c, 0x20, 0x73, 0x74, 0x6f,
+  0x70, 0x29, 0x20, 0x63, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72,
+  0x2e, 0x22, 0x3b, 0x7d, 0x7d, 0x00
+};
diff --git a/models/ietf-yang-types@2013-07-15.yang b/models/ietf-yang-types@2013-07-15.yang
new file mode 100644
index 0000000..ee58fa3
--- /dev/null
+++ b/models/ietf-yang-types@2013-07-15.yang
@@ -0,0 +1,474 @@
+module ietf-yang-types {
+
+  namespace "urn:ietf:params:xml:ns:yang:ietf-yang-types";
+  prefix "yang";
+
+  organization
+   "IETF NETMOD (NETCONF Data Modeling Language) Working Group";
+
+  contact
+   "WG Web:   <http://tools.ietf.org/wg/netmod/>
+    WG List:  <mailto:netmod@ietf.org>
+
+    WG Chair: David Kessens
+              <mailto:david.kessens@nsn.com>
+
+    WG Chair: Juergen Schoenwaelder
+              <mailto:j.schoenwaelder@jacobs-university.de>
+
+    Editor:   Juergen Schoenwaelder
+              <mailto:j.schoenwaelder@jacobs-university.de>";
+
+  description
+   "This module contains a collection of generally useful derived
+    YANG data types.
+
+    Copyright (c) 2013 IETF Trust and the persons identified as
+    authors of the code.  All rights reserved.
+
+    Redistribution and use in source and binary forms, with or
+    without modification, is permitted pursuant to, and subject
+    to the license terms contained in, the Simplified BSD License
+    set forth in Section 4.c of the IETF Trust's Legal Provisions
+    Relating to IETF Documents
+    (http://trustee.ietf.org/license-info).
+
+    This version of this YANG module is part of RFC 6991; see
+    the RFC itself for full legal notices.";
+
+  revision 2013-07-15 {
+    description
+     "This revision adds the following new data types:
+      - yang-identifier
+      - hex-string
+      - uuid
+      - dotted-quad";
+    reference
+     "RFC 6991: Common YANG Data Types";
+  }
+
+  revision 2010-09-24 {
+    description
+     "Initial revision.";
+    reference
+     "RFC 6021: Common YANG Data Types";
+  }
+
+  /*** collection of counter and gauge types ***/
+
+  typedef counter32 {
+    type uint32;
+    description
+     "The counter32 type represents a non-negative integer
+      that monotonically increases until it reaches a
+      maximum value of 2^32-1 (4294967295 decimal), when it
+      wraps around and starts increasing again from zero.
+
+      Counters have no defined 'initial' value, and thus, a
+      single value of a counter has (in general) no information
+      content.  Discontinuities in the monotonically increasing
+      value normally occur at re-initialization of the
+      management system, and at other times as specified in the
+      description of a schema node using this type.  If such
+      other times can occur, for example, the creation of
+      a schema node of type counter32 at times other than
+      re-initialization, then a corresponding schema node
+      should be defined, with an appropriate type, to indicate
+      the last discontinuity.
+
+      The counter32 type should not be used for configuration
+      schema nodes.  A default statement SHOULD NOT be used in
+      combination with the type counter32.
+
+      In the value set and its semantics, this type is equivalent
+      to the Counter32 type of the SMIv2.";
+    reference
+     "RFC 2578: Structure of Management Information Version 2
+                (SMIv2)";
+  }
+
+  typedef zero-based-counter32 {
+    type yang:counter32;
+    default "0";
+    description
+     "The zero-based-counter32 type represents a counter32
+      that has the defined 'initial' value zero.
+
+      A schema node of this type will be set to zero (0) on creation
+      and will thereafter increase monotonically until it reaches
+      a maximum value of 2^32-1 (4294967295 decimal), when it
+      wraps around and starts increasing again from zero.
+
+      Provided that an application discovers a new schema node
+      of this type within the minimum time to wrap, it can use the
+      'initial' value as a delta.  It is important for a management
+      station to be aware of this minimum time and the actual time
+      between polls, and to discard data if the actual time is too
+      long or there is no defined minimum time.
+
+      In the value set and its semantics, this type is equivalent
+      to the ZeroBasedCounter32 textual convention of the SMIv2.";
+    reference
+      "RFC 4502: Remote Network Monitoring Management Information
+                 Base Version 2";
+  }
+
+  typedef counter64 {
+    type uint64;
+    description
+     "The counter64 type represents a non-negative integer
+      that monotonically increases until it reaches a
+      maximum value of 2^64-1 (18446744073709551615 decimal),
+      when it wraps around and starts increasing again from zero.
+
+      Counters have no defined 'initial' value, and thus, a
+      single value of a counter has (in general) no information
+      content.  Discontinuities in the monotonically increasing
+      value normally occur at re-initialization of the
+      management system, and at other times as specified in the
+      description of a schema node using this type.  If such
+      other times can occur, for example, the creation of
+      a schema node of type counter64 at times other than
+      re-initialization, then a corresponding schema node
+      should be defined, with an appropriate type, to indicate
+      the last discontinuity.
+
+      The counter64 type should not be used for configuration
+      schema nodes.  A default statement SHOULD NOT be used in
+      combination with the type counter64.
+
+      In the value set and its semantics, this type is equivalent
+      to the Counter64 type of the SMIv2.";
+    reference
+     "RFC 2578: Structure of Management Information Version 2
+                (SMIv2)";
+  }
+
+  typedef zero-based-counter64 {
+    type yang:counter64;
+    default "0";
+    description
+     "The zero-based-counter64 type represents a counter64 that
+      has the defined 'initial' value zero.
+
+      A schema node of this type will be set to zero (0) on creation
+      and will thereafter increase monotonically until it reaches
+      a maximum value of 2^64-1 (18446744073709551615 decimal),
+      when it wraps around and starts increasing again from zero.
+
+      Provided that an application discovers a new schema node
+      of this type within the minimum time to wrap, it can use the
+      'initial' value as a delta.  It is important for a management
+      station to be aware of this minimum time and the actual time
+      between polls, and to discard data if the actual time is too
+      long or there is no defined minimum time.
+
+      In the value set and its semantics, this type is equivalent
+      to the ZeroBasedCounter64 textual convention of the SMIv2.";
+    reference
+     "RFC 2856: Textual Conventions for Additional High Capacity
+                Data Types";
+  }
+
+  typedef gauge32 {
+    type uint32;
+    description
+     "The gauge32 type represents a non-negative integer, which
+      may increase or decrease, but shall never exceed a maximum
+      value, nor fall below a minimum value.  The maximum value
+      cannot be greater than 2^32-1 (4294967295 decimal), and
+      the minimum value cannot be smaller than 0.  The value of
+      a gauge32 has its maximum value whenever the information
+      being modeled is greater than or equal to its maximum
+      value, and has its minimum value whenever the information
+      being modeled is smaller than or equal to its minimum value.
+      If the information being modeled subsequently decreases
+      below (increases above) the maximum (minimum) value, the
+      gauge32 also decreases (increases).
+
+      In the value set and its semantics, this type is equivalent
+      to the Gauge32 type of the SMIv2.";
+    reference
+     "RFC 2578: Structure of Management Information Version 2
+                (SMIv2)";
+  }
+
+  typedef gauge64 {
+    type uint64;
+    description
+     "The gauge64 type represents a non-negative integer, which
+      may increase or decrease, but shall never exceed a maximum
+      value, nor fall below a minimum value.  The maximum value
+      cannot be greater than 2^64-1 (18446744073709551615), and
+      the minimum value cannot be smaller than 0.  The value of
+      a gauge64 has its maximum value whenever the information
+      being modeled is greater than or equal to its maximum
+      value, and has its minimum value whenever the information
+      being modeled is smaller than or equal to its minimum value.
+      If the information being modeled subsequently decreases
+      below (increases above) the maximum (minimum) value, the
+      gauge64 also decreases (increases).
+
+      In the value set and its semantics, this type is equivalent
+      to the CounterBasedGauge64 SMIv2 textual convention defined
+      in RFC 2856";
+    reference
+     "RFC 2856: Textual Conventions for Additional High Capacity
+                Data Types";
+  }
+
+  /*** collection of identifier-related types ***/
+
+  typedef object-identifier {
+    type string {
+      pattern '(([0-1](\.[1-3]?[0-9]))|(2\.(0|([1-9]\d*))))'
+            + '(\.(0|([1-9]\d*)))*';
+    }
+    description
+     "The object-identifier type represents administratively
+      assigned names in a registration-hierarchical-name tree.
+
+      Values of this type are denoted as a sequence of numerical
+      non-negative sub-identifier values.  Each sub-identifier
+      value MUST NOT exceed 2^32-1 (4294967295).  Sub-identifiers
+      are separated by single dots and without any intermediate
+      whitespace.
+
+      The ASN.1 standard restricts the value space of the first
+      sub-identifier to 0, 1, or 2.  Furthermore, the value space
+      of the second sub-identifier is restricted to the range
+      0 to 39 if the first sub-identifier is 0 or 1.  Finally,
+      the ASN.1 standard requires that an object identifier
+      has always at least two sub-identifiers.  The pattern
+      captures these restrictions.
+
+      Although the number of sub-identifiers is not limited,
+      module designers should realize that there may be
+      implementations that stick with the SMIv2 limit of 128
+      sub-identifiers.
+
+      This type is a superset of the SMIv2 OBJECT IDENTIFIER type
+      since it is not restricted to 128 sub-identifiers.  Hence,
+      this type SHOULD NOT be used to represent the SMIv2 OBJECT
+      IDENTIFIER type; the object-identifier-128 type SHOULD be
+      used instead.";
+    reference
+     "ISO9834-1: Information technology -- Open Systems
+      Interconnection -- Procedures for the operation of OSI
+      Registration Authorities: General procedures and top
+      arcs of the ASN.1 Object Identifier tree";
+  }
+
+  typedef object-identifier-128 {
+    type object-identifier {
+      pattern '\d*(\.\d*){1,127}';
+    }
+    description
+     "This type represents object-identifiers restricted to 128
+      sub-identifiers.
+
+      In the value set and its semantics, this type is equivalent
+      to the OBJECT IDENTIFIER type of the SMIv2.";
+    reference
+     "RFC 2578: Structure of Management Information Version 2
+                (SMIv2)";
+  }
+
+  typedef yang-identifier {
+    type string {
+      length "1..max";
+      pattern '[a-zA-Z_][a-zA-Z0-9\-_.]*';
+      pattern '.|..|[^xX].*|.[^mM].*|..[^lL].*';
+    }
+    description
+      "A YANG identifier string as defined by the 'identifier'
+       rule in Section 12 of RFC 6020.  An identifier must
+       start with an alphabetic character or an underscore
+       followed by an arbitrary sequence of alphabetic or
+       numeric characters, underscores, hyphens, or dots.
+
+       A YANG identifier MUST NOT start with any possible
+       combination of the lowercase or uppercase character
+       sequence 'xml'.";
+    reference
+      "RFC 6020: YANG - A Data Modeling Language for the Network
+                 Configuration Protocol (NETCONF)";
+  }
+
+  /*** collection of types related to date and time***/
+
+  typedef date-and-time {
+    type string {
+      pattern '\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?'
+            + '(Z|[\+\-]\d{2}:\d{2})';
+    }
+    description
+     "The date-and-time type is a profile of the ISO 8601
+      standard for representation of dates and times using the
+      Gregorian calendar.  The profile is defined by the
+      date-time production in Section 5.6 of RFC 3339.
+
+      The date-and-time type is compatible with the dateTime XML
+      schema type with the following notable exceptions:
+
+      (a) The date-and-time type does not allow negative years.
+
+      (b) The date-and-time time-offset -00:00 indicates an unknown
+          time zone (see RFC 3339) while -00:00 and +00:00 and Z
+          all represent the same time zone in dateTime.
+
+      (c) The canonical format (see below) of data-and-time values
+          differs from the canonical format used by the dateTime XML
+          schema type, which requires all times to be in UTC using
+          the time-offset 'Z'.
+
+      This type is not equivalent to the DateAndTime textual
+      convention of the SMIv2 since RFC 3339 uses a different
+      separator between full-date and full-time and provides
+      higher resolution of time-secfrac.
+
+      The canonical format for date-and-time values with a known time
+      zone uses a numeric time zone offset that is calculated using
+      the device's configured known offset to UTC time.  A change of
+      the device's offset to UTC time will cause date-and-time values
+      to change accordingly.  Such changes might happen periodically
+      in case a server follows automatically daylight saving time
+      (DST) time zone offset changes.  The canonical format for
+      date-and-time values with an unknown time zone (usually
+      referring to the notion of local time) uses the time-offset
+      -00:00.";
+    reference
+     "RFC 3339: Date and Time on the Internet: Timestamps
+      RFC 2579: Textual Conventions for SMIv2
+      XSD-TYPES: XML Schema Part 2: Datatypes Second Edition";
+  }
+
+  typedef timeticks {
+    type uint32;
+    description
+     "The timeticks type represents a non-negative integer that
+      represents the time, modulo 2^32 (4294967296 decimal), in
+      hundredths of a second between two epochs.  When a schema
+      node is defined that uses this type, the description of
+      the schema node identifies both of the reference epochs.
+
+      In the value set and its semantics, this type is equivalent
+      to the TimeTicks type of the SMIv2.";
+    reference
+     "RFC 2578: Structure of Management Information Version 2
+                (SMIv2)";
+  }
+
+  typedef timestamp {
+    type yang:timeticks;
+    description
+     "The timestamp type represents the value of an associated
+      timeticks schema node at which a specific occurrence
+      happened.  The specific occurrence must be defined in the
+      description of any schema node defined using this type.  When
+      the specific occurrence occurred prior to the last time the
+      associated timeticks attribute was zero, then the timestamp
+      value is zero.  Note that this requires all timestamp values
+      to be reset to zero when the value of the associated timeticks
+      attribute reaches 497+ days and wraps around to zero.
+
+      The associated timeticks schema node must be specified
+      in the description of any schema node using this type.
+
+      In the value set and its semantics, this type is equivalent
+      to the TimeStamp textual convention of the SMIv2.";
+    reference
+     "RFC 2579: Textual Conventions for SMIv2";
+  }
+
+  /*** collection of generic address types ***/
+
+  typedef phys-address {
+    type string {
+      pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?';
+    }
+
+    description
+     "Represents media- or physical-level addresses represented
+      as a sequence octets, each octet represented by two hexadecimal
+      numbers.  Octets are separated by colons.  The canonical
+      representation uses lowercase characters.
+
+      In the value set and its semantics, this type is equivalent
+      to the PhysAddress textual convention of the SMIv2.";
+    reference
+     "RFC 2579: Textual Conventions for SMIv2";
+  }
+
+  typedef mac-address {
+    type string {
+      pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}';
+    }
+    description
+     "The mac-address type represents an IEEE 802 MAC address.
+      The canonical representation uses lowercase characters.
+
+      In the value set and its semantics, this type is equivalent
+      to the MacAddress textual convention of the SMIv2.";
+    reference
+     "IEEE 802: IEEE Standard for Local and Metropolitan Area
+                Networks: Overview and Architecture
+      RFC 2579: Textual Conventions for SMIv2";
+  }
+
+  /*** collection of XML-specific types ***/
+
+  typedef xpath1.0 {
+    type string;
+    description
+     "This type represents an XPATH 1.0 expression.
+
+      When a schema node is defined that uses this type, the
+      description of the schema node MUST specify the XPath
+      context in which the XPath expression is evaluated.";
+    reference
+     "XPATH: XML Path Language (XPath) Version 1.0";
+  }
+
+  /*** collection of string types ***/
+
+  typedef hex-string {
+    type string {
+      pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?';
+    }
+    description
+     "A hexadecimal string with octets represented as hex digits
+      separated by colons.  The canonical representation uses
+      lowercase characters.";
+  }
+
+  typedef uuid {
+    type string {
+      pattern '[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-'
+            + '[0-9a-fA-F]{4}-[0-9a-fA-F]{12}';
+    }
+    description
+     "A Universally Unique IDentifier in the string representation
+      defined in RFC 4122.  The canonical representation uses
+      lowercase characters.
+
+      The following is an example of a UUID in string representation:
+      f81d4fae-7dec-11d0-a765-00a0c91e6bf6
+      ";
+    reference
+     "RFC 4122: A Universally Unique IDentifier (UUID) URN
+                Namespace";
+  }
+
+  typedef dotted-quad {
+    type string {
+      pattern
+        '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}'
+      + '([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])';
+    }
+    description
+      "An unsigned 32-bit number expressed in the dotted-quad
+       notation, i.e., four octets written as decimal numbers
+       and separated with the '.' (full stop) character.";
+  }
+}
diff --git a/models/yang@2017-02-20.h b/models/yang@2017-02-20.h
new file mode 100644
index 0000000..19b6430
--- /dev/null
+++ b/models/yang@2017-02-20.h
@@ -0,0 +1,168 @@
+unsigned char yang_2017_02_20_yang[] = {
+  0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x20, 0x79, 0x61, 0x6e, 0x67, 0x20,
+  0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x20, 0x22,
+  0x75, 0x72, 0x6e, 0x3a, 0x69, 0x65, 0x74, 0x66, 0x3a, 0x70, 0x61, 0x72,
+  0x61, 0x6d, 0x73, 0x3a, 0x78, 0x6d, 0x6c, 0x3a, 0x6e, 0x73, 0x3a, 0x79,
+  0x61, 0x6e, 0x67, 0x3a, 0x31, 0x22, 0x3b, 0x70, 0x72, 0x65, 0x66, 0x69,
+  0x78, 0x20, 0x79, 0x61, 0x6e, 0x67, 0x3b, 0x69, 0x6d, 0x70, 0x6f, 0x72,
+  0x74, 0x20, 0x69, 0x65, 0x74, 0x66, 0x2d, 0x79, 0x61, 0x6e, 0x67, 0x2d,
+  0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x20, 0x7b, 0x70, 0x72,
+  0x65, 0x66, 0x69, 0x78, 0x20, 0x6d, 0x64, 0x3b, 0x72, 0x65, 0x76, 0x69,
+  0x73, 0x69, 0x6f, 0x6e, 0x2d, 0x64, 0x61, 0x74, 0x65, 0x20, 0x32, 0x30,
+  0x31, 0x36, 0x2d, 0x30, 0x38, 0x2d, 0x30, 0x35, 0x3b, 0x7d, 0x6f, 0x72,
+  0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x22,
+  0x6c, 0x69, 0x62, 0x79, 0x61, 0x6e, 0x67, 0x22, 0x3b, 0x63, 0x6f, 0x6e,
+  0x74, 0x61, 0x63, 0x74, 0x0a, 0x22, 0x57, 0x65, 0x62, 0x3a, 0x20, 0x20,
+  0x20, 0x20, 0x3c, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x67,
+  0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x43, 0x45,
+  0x53, 0x4e, 0x45, 0x54, 0x2f, 0x6c, 0x69, 0x62, 0x79, 0x61, 0x6e, 0x67,
+  0x2f, 0x3e, 0x0a, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x3a, 0x20, 0x52,
+  0x61, 0x64, 0x65, 0x6b, 0x20, 0x4b, 0x72, 0x65, 0x6a, 0x63, 0x69, 0x20,
+  0x3c, 0x72, 0x6b, 0x72, 0x65, 0x6a, 0x63, 0x69, 0x40, 0x63, 0x65, 0x73,
+  0x6e, 0x65, 0x74, 0x2e, 0x63, 0x7a, 0x3e, 0x22, 0x3b, 0x64, 0x65, 0x73,
+  0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x22, 0x54, 0x68,
+  0x69, 0x73, 0x20, 0x69, 0x73, 0x20, 0x61, 0x20, 0x6b, 0x69, 0x6e, 0x64,
+  0x20, 0x6f, 0x66, 0x20, 0x66, 0x61, 0x6b, 0x65, 0x20, 0x6d, 0x6f, 0x64,
+  0x65, 0x6c, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x6e, 0x6f, 0x20, 0x64,
+  0x61, 0x74, 0x61, 0x2c, 0x20, 0x74, 0x79, 0x70, 0x65, 0x64, 0x65, 0x66,
+  0x73, 0x20, 0x6f, 0x72, 0x20, 0x61, 0x6e, 0x79, 0x74, 0x68, 0x69, 0x6e,
+  0x67, 0x0a, 0x65, 0x6c, 0x73, 0x65, 0x2e, 0x20, 0x6c, 0x69, 0x62, 0x79,
+  0x61, 0x6e, 0x67, 0x20, 0x75, 0x73, 0x65, 0x73, 0x20, 0x74, 0x68, 0x69,
+  0x73, 0x20, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x20, 0x74, 0x6f, 0x20,
+  0x69, 0x6d, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x76, 0x61,
+  0x72, 0x69, 0x6f, 0x75, 0x73, 0x20, 0x59, 0x41, 0x4e, 0x47, 0x20, 0x61,
+  0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x0a, 0x64, 0x65,
+  0x66, 0x69, 0x6e, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x52, 0x46, 0x43,
+  0x20, 0x36, 0x30, 0x32, 0x30, 0x2e, 0x22, 0x3b, 0x72, 0x65, 0x76, 0x69,
+  0x73, 0x69, 0x6f, 0x6e, 0x20, 0x32, 0x30, 0x31, 0x37, 0x2d, 0x30, 0x32,
+  0x2d, 0x32, 0x30, 0x20, 0x7b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70,
+  0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x22, 0x41, 0x64, 0x64, 0x65, 0x64, 0x20,
+  0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x20, 0x66, 0x6f, 0x72,
+  0x20, 0x4e, 0x45, 0x54, 0x43, 0x4f, 0x4e, 0x46, 0x27, 0x73, 0x20, 0x65,
+  0x64, 0x69, 0x74, 0x2d, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x20, 0x6d,
+  0x61, 0x6e, 0x69, 0x70, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20,
+  0x77, 0x69, 0x74, 0x68, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x65, 0x64,
+  0x20, 0x0a, 0x6c, 0x69, 0x73, 0x74, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20,
+  0x6c, 0x65, 0x61, 0x66, 0x2d, 0x6c, 0x69, 0x73, 0x74, 0x73, 0x2e, 0x22,
+  0x3b, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x22,
+  0x52, 0x46, 0x43, 0x20, 0x37, 0x39, 0x35, 0x30, 0x3a, 0x20, 0x54, 0x68,
+  0x65, 0x20, 0x59, 0x41, 0x4e, 0x47, 0x20, 0x31, 0x2e, 0x31, 0x20, 0x44,
+  0x61, 0x74, 0x61, 0x20, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x69, 0x6e, 0x67,
+  0x20, 0x4c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x22, 0x3b, 0x7d,
+  0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x32, 0x30, 0x31,
+  0x36, 0x2d, 0x30, 0x32, 0x2d, 0x31, 0x31, 0x20, 0x7b, 0x64, 0x65, 0x73,
+  0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x22, 0x49, 0x6e,
+  0x69, 0x74, 0x69, 0x61, 0x6c, 0x20, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69,
+  0x6f, 0x6e, 0x22, 0x3b, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63,
+  0x65, 0x0a, 0x22, 0x52, 0x46, 0x43, 0x20, 0x36, 0x30, 0x32, 0x30, 0x3a,
+  0x20, 0x59, 0x41, 0x4e, 0x47, 0x20, 0x2d, 0x20, 0x41, 0x20, 0x44, 0x61,
+  0x74, 0x61, 0x20, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x69, 0x6e, 0x67, 0x20,
+  0x4c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x20, 0x66, 0x6f, 0x72,
+  0x0a, 0x74, 0x68, 0x65, 0x20, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b,
+  0x20, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69,
+  0x6f, 0x6e, 0x20, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x20,
+  0x28, 0x4e, 0x45, 0x54, 0x43, 0x4f, 0x4e, 0x46, 0x29, 0x22, 0x3b, 0x7d,
+  0x6d, 0x64, 0x3a, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f,
+  0x6e, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x20, 0x7b, 0x74, 0x79,
+  0x70, 0x65, 0x20, 0x65, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x69,
+  0x6f, 0x6e, 0x20, 0x7b, 0x65, 0x6e, 0x75, 0x6d, 0x20, 0x66, 0x69, 0x72,
+  0x73, 0x74, 0x3b, 0x65, 0x6e, 0x75, 0x6d, 0x20, 0x6c, 0x61, 0x73, 0x74,
+  0x3b, 0x65, 0x6e, 0x75, 0x6d, 0x20, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65,
+  0x3b, 0x65, 0x6e, 0x75, 0x6d, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x3b,
+  0x7d, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x22,
+  0x52, 0x46, 0x43, 0x37, 0x39, 0x35, 0x30, 0x20, 0x73, 0x65, 0x63, 0x74,
+  0x69, 0x6f, 0x6e, 0x20, 0x37, 0x2e, 0x38, 0x2e, 0x36, 0x2e, 0x20, 0x61,
+  0x6e, 0x64, 0x20, 0x73, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x37,
+  0x2e, 0x37, 0x2e, 0x39, 0x2e, 0x22, 0x3b, 0x64, 0x65, 0x73, 0x63, 0x72,
+  0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x22, 0x49, 0x6e, 0x20, 0x75,
+  0x73, 0x65, 0x72, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x65, 0x64, 0x20,
+  0x6c, 0x65, 0x61, 0x66, 0x2d, 0x6c, 0x69, 0x73, 0x74, 0x2c, 0x20, 0x74,
+  0x68, 0x65, 0x20, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65,
+  0x20, 0x63, 0x61, 0x6e, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64,
+  0x20, 0x74, 0x6f, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x0a,
+  0x77, 0x68, 0x65, 0x72, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65,
+  0x20, 0x6c, 0x65, 0x61, 0x66, 0x2d, 0x6c, 0x69, 0x73, 0x74, 0x20, 0x74,
+  0x68, 0x65, 0x20, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x20, 0x69, 0x73, 0x20,
+  0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x65, 0x64, 0x2e, 0x20, 0x49, 0x74,
+  0x20, 0x63, 0x61, 0x6e, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64,
+  0x20, 0x64, 0x75, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x74, 0x68, 0x65, 0x20,
+  0x4e, 0x45, 0x54, 0x43, 0x4f, 0x4e, 0x46, 0x20, 0x3c, 0x65, 0x64, 0x69,
+  0x74, 0x2d, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x3e, 0x20, 0x5c, 0x22,
+  0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5c, 0x22, 0x20, 0x6f, 0x70, 0x65,
+  0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x69,
+  0x6e, 0x73, 0x65, 0x72, 0x74, 0x20, 0x61, 0x20, 0x6e, 0x65, 0x77, 0x20,
+  0x6c, 0x69, 0x73, 0x74, 0x20, 0x6f, 0x72, 0x0a, 0x6c, 0x65, 0x61, 0x66,
+  0x2d, 0x6c, 0x69, 0x73, 0x74, 0x20, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x2c,
+  0x20, 0x6f, 0x72, 0x20, 0x64, 0x75, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x5c,
+  0x22, 0x6d, 0x65, 0x72, 0x67, 0x65, 0x5c, 0x22, 0x20, 0x6f, 0x72, 0x20,
+  0x5c, 0x22, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x5c, 0x22, 0x20,
+  0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x74,
+  0x6f, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x0a, 0x61, 0x20, 0x6e,
+  0x65, 0x77, 0x20, 0x6c, 0x69, 0x73, 0x74, 0x20, 0x6f, 0x72, 0x20, 0x6c,
+  0x65, 0x61, 0x66, 0x2d, 0x6c, 0x69, 0x73, 0x74, 0x20, 0x65, 0x6e, 0x74,
+  0x72, 0x79, 0x20, 0x6f, 0x72, 0x20, 0x6d, 0x6f, 0x76, 0x65, 0x20, 0x61,
+  0x6e, 0x20, 0x65, 0x78, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x6f,
+  0x6e, 0x65, 0x2e, 0x0a, 0x0a, 0x49, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20,
+  0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x69, 0x73, 0x20, 0x5c, 0x22, 0x62,
+  0x65, 0x66, 0x6f, 0x72, 0x65, 0x5c, 0x22, 0x20, 0x6f, 0x72, 0x20, 0x5c,
+  0x22, 0x61, 0x66, 0x74, 0x65, 0x72, 0x5c, 0x22, 0x2c, 0x20, 0x74, 0x68,
+  0x65, 0x20, 0x5c, 0x22, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x5c, 0x22, 0x2f,
+  0x5c, 0x22, 0x6b, 0x65, 0x79, 0x5c, 0x22, 0x20, 0x61, 0x74, 0x74, 0x72,
+  0x69, 0x62, 0x75, 0x74, 0x65, 0x0a, 0x4d, 0x55, 0x53, 0x54, 0x20, 0x61,
+  0x6c, 0x73, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20,
+  0x74, 0x6f, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x79, 0x20, 0x61,
+  0x6e, 0x20, 0x65, 0x78, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x65,
+  0x6e, 0x74, 0x72, 0x79, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20,
+  0x6c, 0x69, 0x73, 0x74, 0x20, 0x6f, 0x72, 0x20, 0x6c, 0x65, 0x61, 0x66,
+  0x2d, 0x6c, 0x69, 0x73, 0x74, 0x2e, 0x0a, 0x0a, 0x49, 0x66, 0x20, 0x6e,
+  0x6f, 0x20, 0x5c, 0x22, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x5c, 0x22,
+  0x20, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x69,
+  0x73, 0x20, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x20, 0x69, 0x6e,
+  0x20, 0x74, 0x68, 0x65, 0x20, 0x5c, 0x22, 0x63, 0x72, 0x65, 0x61, 0x74,
+  0x65, 0x5c, 0x22, 0x20, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f,
+  0x6e, 0x2c, 0x20, 0x69, 0x74, 0x0a, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c,
+  0x74, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x5c, 0x22, 0x6c, 0x61, 0x73, 0x74,
+  0x5c, 0x22, 0x2e, 0x22, 0x3b, 0x7d, 0x6d, 0x64, 0x3a, 0x61, 0x6e, 0x6e,
+  0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x76, 0x61, 0x6c, 0x75,
+  0x65, 0x20, 0x7b, 0x74, 0x79, 0x70, 0x65, 0x20, 0x73, 0x74, 0x72, 0x69,
+  0x6e, 0x67, 0x3b, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65,
+  0x20, 0x22, 0x52, 0x46, 0x43, 0x37, 0x39, 0x35, 0x30, 0x20, 0x73, 0x65,
+  0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x37, 0x2e, 0x37, 0x2e, 0x39, 0x2e,
+  0x22, 0x3b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f,
+  0x6e, 0x0a, 0x22, 0x49, 0x6e, 0x20, 0x75, 0x73, 0x65, 0x72, 0x20, 0x6f,
+  0x72, 0x64, 0x65, 0x72, 0x65, 0x64, 0x20, 0x6c, 0x65, 0x61, 0x66, 0x2d,
+  0x6c, 0x69, 0x73, 0x74, 0x2c, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x74,
+  0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74,
+  0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x69, 0x66, 0x20,
+  0x74, 0x68, 0x65, 0x20, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74,
+  0x65, 0x0a, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x20, 0x69, 0x73, 0x20,
+  0x75, 0x73, 0x65, 0x64, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x73, 0x70, 0x65,
+  0x63, 0x69, 0x66, 0x69, 0x65, 0x73, 0x20, 0x62, 0x65, 0x66, 0x6f, 0x72,
+  0x65, 0x2f, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x77, 0x68, 0x69, 0x63,
+  0x68, 0x20, 0x65, 0x78, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x69,
+  0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x74, 0x68, 0x65, 0x0a,
+  0x6e, 0x65, 0x77, 0x20, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65,
+  0x20, 0x73, 0x68, 0x6f, 0x75, 0x6c, 0x64, 0x20, 0x62, 0x65, 0x20, 0x69,
+  0x6e, 0x73, 0x65, 0x72, 0x74, 0x65, 0x64, 0x2e, 0x22, 0x3b, 0x7d, 0x6d,
+  0x64, 0x3a, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+  0x20, 0x6b, 0x65, 0x79, 0x20, 0x7b, 0x74, 0x79, 0x70, 0x65, 0x20, 0x73,
+  0x74, 0x72, 0x69, 0x6e, 0x67, 0x3b, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65,
+  0x6e, 0x63, 0x65, 0x20, 0x22, 0x52, 0x46, 0x43, 0x37, 0x39, 0x35, 0x30,
+  0x20, 0x73, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x37, 0x2e, 0x38,
+  0x2e, 0x36, 0x2e, 0x22, 0x3b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70,
+  0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x22, 0x49, 0x6e, 0x20, 0x75, 0x73, 0x65,
+  0x72, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x65, 0x64, 0x20, 0x6c, 0x69,
+  0x73, 0x74, 0x2c, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x74, 0x74, 0x72,
+  0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62,
+  0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x69, 0x66, 0x20, 0x74, 0x68,
+  0x65, 0x20, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x0a,
+  0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x20, 0x69, 0x73, 0x20, 0x75, 0x73,
+  0x65, 0x64, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69,
+  0x66, 0x69, 0x65, 0x73, 0x20, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x2f,
+  0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20,
+  0x65, 0x78, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x69, 0x6e, 0x73,
+  0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x74, 0x68, 0x65, 0x0a, 0x6e, 0x65,
+  0x77, 0x20, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x73,
+  0x68, 0x6f, 0x75, 0x6c, 0x64, 0x20, 0x62, 0x65, 0x20, 0x69, 0x6e, 0x73,
+  0x65, 0x72, 0x74, 0x65, 0x64, 0x2e, 0x22, 0x3b, 0x7d, 0x7d, 0x00
+};
diff --git a/models/yang@2017-02-20.yang b/models/yang@2017-02-20.yang
new file mode 100644
index 0000000..e2bff77
--- /dev/null
+++ b/models/yang@2017-02-20.yang
@@ -0,0 +1,77 @@
+module yang {
+  namespace "urn:ietf:params:xml:ns:yang:1";
+  prefix yang;
+
+  import ietf-yang-metadata {
+    prefix md;
+    revision-date 2016-08-05;
+  }
+
+  organization
+    "libyang";
+
+  contact
+    "Web:    <https://github.com/CESNET/libyang/>
+     Author: Radek Krejci <rkrejci@cesnet.cz>";
+
+  description
+    "This is a kind of fake model with no data, typedefs or anything
+     else. libyang uses this module to implement various YANG attributes
+     defined in RFC 6020.";
+
+  revision 2017-02-20 {
+    description
+      "Added metadata for NETCONF's edit-config manipulation with ordered
+       lists and leaf-lists.";
+    reference
+      "RFC 7950: The YANG 1.1 Data Modeling Language";
+  }
+
+  revision 2016-02-11 {
+    description
+      "Initial revision";
+    reference
+      "RFC 6020: YANG - A Data Modeling Language for
+       the Network Configuration Protocol (NETCONF)";
+  }
+
+  md:annotation insert {
+    type enumeration {
+      enum first;
+      enum last;
+      enum before;
+      enum after;
+    }
+    reference "RFC7950 section 7.8.6. and section 7.7.9.";
+    description
+      "In user ordered leaf-list, the attribute can be used to control
+       where in the leaf-list the entry is inserted. It can be used during
+       the NETCONF <edit-config> \"create\" operations to insert a new list or
+       leaf-list entry, or during \"merge\" or \"replace\" operations to insert
+       a new list or leaf-list entry or move an existing one.
+
+       If the value is \"before\" or \"after\", the \"value\"/\"key\" attribute
+       MUST also be used to specify an existing entry in the list or leaf-list.
+
+       If no \"insert\" attribute is present in the \"create\" operation, it
+       defaults to \"last\".";
+  }
+
+  md:annotation value {
+    type string;
+    reference "RFC7950 section 7.7.9.";
+    description
+      "In user ordered leaf-list, the attribute must be used if the attribute
+       insert is used and specifies before/after which existing instance the
+       new instance should be inserted.";
+  }
+
+  md:annotation key {
+    type string;
+    reference "RFC7950 section 7.8.6.";
+    description
+      "In user ordered list, the attribute must be used if the attribute
+       insert is used and specifies before/after which existing instance the
+       new instance should be inserted.";
+  }
+}
diff --git a/src/common.c b/src/common.c
index 912ee13..ab3b71f 100644
--- a/src/common.c
+++ b/src/common.c
@@ -12,12 +12,18 @@
  *     https://opensource.org/licenses/BSD-3-Clause
  */
 #define _XOPEN_SOURCE
+#define _DEFAULT_SOURCE
 
+#include <assert.h>
+#include <errno.h>
 #include <stdlib.h>
 #include <stdio.h>
 #include <ctype.h>
 #include <string.h>
-#include <time.h>
+#include <sys/mman.h>
+#include <sys/stat.h>
+#include <sys/types.h>
+#include <unistd.h>
 
 #include "common.h"
 #include "tree_schema.h"
@@ -242,43 +248,59 @@
 }
 
 LY_ERR
-lysp_check_date(struct ly_ctx *ctx, const char *date, int date_len, const char *stmt)
+ly_mmap(struct ly_ctx *ctx, int fd, size_t *length, void **addr)
 {
-    int i;
-    struct tm tm, tm_;
-    char *r;
+    struct stat sb;
+    long pagesize;
+    size_t m;
 
-    LY_CHECK_ARG_RET(ctx, date, LY_EINVAL);
-    LY_CHECK_ERR_RET(date_len != LY_REV_SIZE - 1, LOGARG(ctx, date_len), LY_EINVAL);
+    assert(length);
+    assert(addr);
+    assert(fd >= 0);
 
-    /* check format */
-    for (i = 0; i < date_len; i++) {
-        if (i == 4 || i == 7) {
-            if (date[i] != '-') {
-                goto error;
-            }
-        } else if (!isdigit(date[i])) {
-            goto error;
-        }
+    if (fstat(fd, &sb) == -1) {
+        LOGERR(ctx, LY_ESYS, "Failed to stat the file descriptor (%s) for the mmap().", strerror(errno));
+        return LY_ESYS;
     }
-
-    /* check content, e.g. 2018-02-31 */
-    memset(&tm, 0, sizeof tm);
-    r = strptime(date, "%Y-%m-%d", &tm);
-    if (!r || r != &date[LY_REV_SIZE - 1]) {
-        goto error;
+    if (!S_ISREG(sb.st_mode)) {
+        LOGERR(ctx, LY_EINVAL, "File to mmap() is not a regular file.");
+        return LY_ESYS;
     }
-    memcpy(&tm_, &tm, sizeof tm);
-    mktime(&tm_); /* mktime modifies tm_ if it refers invalid date */
-    if (tm.tm_mday != tm_.tm_mday) { /* e.g 2018-02-29 -> 2018-03-01 */
-        /* checking days is enough, since other errors
-         * have been checked by strptime() */
-        goto error;
+    if (!sb.st_size) {
+        *addr = NULL;
+        return LY_SUCCESS;
+    }
+    pagesize = sysconf(_SC_PAGESIZE);
+
+    m = sb.st_size % pagesize;
+    if (m && pagesize - m >= 1) {
+        /* there will be enough space (at least 1 byte) after the file content mapping to provide zeroed NULL-termination byte */
+        *length = sb.st_size + 1;
+        *addr = mmap(NULL, *length, PROT_READ, MAP_PRIVATE, fd, 0);
+    } else {
+        /* there will not be enough bytes after the file content mapping for the additional bytes and some of them
+         * would overflow into another page that would not be zerroed and any access into it would generate SIGBUS.
+         * Therefore we have to do the following hack with double mapping. First, the required number of bytes
+         * (including the additinal bytes) is required as anonymous and thus they will be really provided (actually more
+         * because of using whole pages) and also initialized by zeros. Then, the file is mapped to the same address
+         * where the anonymous mapping starts. */
+        *length = sb.st_size + pagesize;
+        *addr = mmap(NULL, *length, PROT_READ, MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
+        *addr = mmap(*addr, sb.st_size, PROT_READ, MAP_PRIVATE | MAP_FIXED, fd, 0);
+    }
+    if (*addr == MAP_FAILED) {
+        LOGERR(ctx, LY_ESYS, "mmap() failed (%s).", strerror(errno));
+        return LY_ESYS;
     }
 
     return LY_SUCCESS;
+}
 
-error:
-    LOGVAL(ctx, LY_VLOG_NONE, NULL, LY_VCODE_INVAL, date_len, date, stmt);
-    return LY_EINVAL;
+LY_ERR
+ly_munmap(void *addr, size_t length)
+{
+    if (munmap(addr, length)) {
+        return LY_ESYS;
+    }
+    return LY_SUCCESS;
 }
diff --git a/src/common.h b/src/common.h
index 731f711..a214f4d 100644
--- a/src/common.h
+++ b/src/common.h
@@ -136,21 +136,6 @@
  * Parsers
  *****************************************************************************/
 
-enum yang_module_stmt {
-    Y_MOD_MODULE_HEADER,
-    Y_MOD_LINKAGE,
-    Y_MOD_META,
-    Y_MOD_REVISION,
-    Y_MOD_BODY
-};
-
-enum yang_arg {
-    Y_IDENTIF_ARG,        /**< YANG "identifier-arg-str" rule */
-    Y_PREF_IDENTIF_ARG,   /**< YANG "identifier-ref-arg-str" rule */
-    Y_STR_ARG,            /**< YANG "string" rule */
-    Y_MAYBE_STR_ARG       /**< optional YANG "string" rule */
-};
-
 enum yang_keyword {
     YANG_NONE = 0,
     YANG_ACTION,
@@ -266,28 +251,45 @@
 LY_ERR ly_getutf8(const char **input, unsigned int *utf8_char, size_t *bytes_read);
 
 /**
- * @brief Check date string (4DIGIT "-" 2DIGIT "-" 2DIGIT)
+ * @brief mmap(2) wrapper to map input files into memory to unify parsing.
  *
- * @param[in] ctx Context to store log message.
- * @param[in] date Date string to check (non-necessarily terminated by \0)
- * @param[in] date_len Length of the date string, 10 expected.
- * @param[in] stmt Statement name for error message.
+ * The address space is allocate only for reading.
+ *
+ * @param[in] ctx libyang context for logging
+ * @param[in] fd Open file descriptor of a file to map.
+ * @param[out] length Allocated size.
+ * @param[out] addr Address where the file is mapped.
  * @return LY_ERR value.
  */
-LY_ERR lysp_check_date(struct ly_ctx *ctx, const char *date, int date_len, const char *stmt);
+LY_ERR ly_mmap(struct ly_ctx *ctx, int fd, size_t *length, void **addr);
 
-/*
- * Macros to work with lysp structures arrays.
+/**
+ * @brief munmap(2) wrapper to free the memory mapped by ly_mmap()
  *
- * There is a byte allocated after the last item with value 0.
+ * @param[in] addr Address where the input file is mapped.
+ * @param[in] length Allocated size of the address space.
+ * @return LY_ERR value.
  */
-#define LYSP_ARRAY_NEW_RET(CTX, ARRAY, NEW_ITEM, RETVAL) int _count; \
-        for (_count = 0; *(ARRAY) && *((uint8_t *)(*(ARRAY) + _count)); ++_count); \
-        if (!_count) *(ARRAY) = malloc(sizeof **(ARRAY) + 1); \
-            else *(ARRAY) = ly_realloc(*(ARRAY), (_count + 1) * sizeof **(ARRAY) + 1); \
-        LY_CHECK_ERR_RET(!*(ARRAY), LOGMEM(CTX->ctx), RETVAL); \
-        *((uint8_t *)(*(ARRAY) + _count + 1)) = 0; \
-        (NEW_ITEM) = (*(ARRAY)) + _count; \
+LY_ERR ly_munmap(void *addr, size_t length);
+
+/**
+ * @brief (Re-)Allocation of a ([sized array](@ref sizedarrays)).
+ *
+ * @param[in] CTX libyang context for logging.
+ * @param[in,out] ARRAY Pointer to the array to allocate/resize.
+ * @param[out] NEW_ITEM Returning pointer to the newly allocated record in the ARRAY.
+ * @param[in] RETVAL Return value for the case of error (memory allocation failure).
+ */
+#define LYSP_ARRAY_NEW_RET(CTX, ARRAY, NEW_ITEM, RETVAL) \
+        if (!(ARRAY)) { \
+            ARRAY = malloc(sizeof(uint32_t) + sizeof *(ARRAY)); \
+            *((uint32_t*)(ARRAY)) = 1; \
+        } else { \
+            ++(*((uint32_t*)(ARRAY))); \
+            ARRAY = ly_realloc(ARRAY, sizeof(uint32_t) + (*((uint32_t*)(ARRAY)) * sizeof *(ARRAY))); \
+            LY_CHECK_ERR_RET(!(ARRAY), LOGMEM(CTX), RETVAL); \
+        } \
+        (NEW_ITEM) = (void*)((uint32_t*)((ARRAY) + *((uint32_t*)(ARRAY)) - 1) + 1); \
         memset(NEW_ITEM, 0, sizeof *(NEW_ITEM));
 
 #endif /* LY_COMMON_H_ */
diff --git a/src/context.c b/src/context.c
index d49b237..1216704 100644
--- a/src/context.c
+++ b/src/context.c
@@ -24,10 +24,10 @@
 
 #include "context.h"
 #include "common.h"
-
+#include "tree_schema_internal.h"
 #include "libyang.h"
 
-#define LY_INTERNAL_MODS_COUNT 0 /* TODO 6 when parser available */
+#define LY_INTERNAL_MODS_COUNT 6
 
 #define IETF_YANG_METADATA_PATH "../models/ietf-yang-metadata@2016-08-05.h"
 #define YANG_PATH "../models/yang@2017-02-20.h"
@@ -37,7 +37,6 @@
 #define IETF_YANG_LIB_PATH "../models/ietf-yang-library@2018-01-17.h"
 #define IETF_YANG_LIB_REV "2018-01-17"
 
-#if LY_INTERNAL_MODS_COUNT
 #include IETF_YANG_METADATA_PATH
 #include YANG_PATH
 #include IETF_INET_TYPES_PATH
@@ -52,15 +51,14 @@
     uint8_t implemented;
     LYS_INFORMAT format;
 } internal_modules[LY_INTERNAL_MODS_COUNT] = {
-    {"ietf-yang-metadata", "2016-08-05", (const char*)ietf_yang_metadata_2016_08_05_yin, 0, LYS_IN_YIN},
-    {"yang", "2017-02-20", (const char*)yang_2017_02_20_yin, 1, LYS_IN_YIN},
-    {"ietf-inet-types", "2013-07-15", (const char*)ietf_inet_types_2013_07_15_yin, 0, LYS_IN_YIN},
-    {"ietf-yang-types", "2013-07-15", (const char*)ietf_yang_types_2013_07_15_yin, 0, LYS_IN_YIN},
+    {"ietf-yang-metadata", "2016-08-05", (const char*)ietf_yang_metadata_2016_08_05_yang, 0, LYS_IN_YANG},
+    {"yang", "2017-02-20", (const char*)yang_2017_02_20_yang, 1, LYS_IN_YANG},
+    {"ietf-inet-types", "2013-07-15", (const char*)ietf_inet_types_2013_07_15_yang, 0, LYS_IN_YANG},
+    {"ietf-yang-types", "2013-07-15", (const char*)ietf_yang_types_2013_07_15_yang, 0, LYS_IN_YANG},
     /* ietf-datastores and ietf-yang-library must be right here at the end of the list! */
-    {"ietf-datastores", "2017-08-17", (const char*)ietf_datastores_2017_08_17_yin, 0, LYS_IN_YIN},
-    {"ietf-yang-library", IETF_YANG_LIB_REV, (const char*)ietf_yang_library_2018_01_17_yin, 1, LYS_IN_YIN}
+    {"ietf-datastores", "2017-08-17", (const char*)ietf_datastores_2017_08_17_yang, 0, LYS_IN_YANG},
+    {"ietf-yang-library", IETF_YANG_LIB_REV, (const char*)ietf_yang_library_2018_01_17_yang, 1, LYS_IN_YANG}
 };
-#endif
 
 API LY_ERR
 ly_ctx_set_searchdir(struct ly_ctx *ctx, const char *search_dir)
@@ -164,6 +162,7 @@
     struct lys_module *module;
     char *search_dir_list;
     char *sep, *dir;
+    int i;
     LY_ERR rc = LY_SUCCESS;
 
     ctx = calloc(1, sizeof *ctx);
@@ -210,14 +209,12 @@
     }
     ctx->module_set_id = 1;
 
-#if 0 /* TODO when parser implemented */
     /* load internal modules */
-    for (i = 0; i < (options & LY_CTX_NOYANGLIBRARY) ? LY_INTERNAL_MODS_COUNT - 2 : LY_INTERNAL_MODS_COUNT; i++) {
+    for (i = 0; i < ((options & LY_CTX_NOYANGLIBRARY) ? (LY_INTERNAL_MODS_COUNT - 2) : LY_INTERNAL_MODS_COUNT); i++) {
         module = (struct lys_module *)lys_parse_mem(ctx, internal_modules[i].data, internal_modules[i].format);
         LY_CHECK_GOTO(!module, error);
         module->parsed->implemented = internal_modules[i].implemented;
     }
-#endif
 
     *new_ctx = ctx;
     return rc;
@@ -274,9 +271,7 @@
     /* models list */
     for (; ctx->list.count; ctx->list.count--) {
         /* remove the module */
-#if 0 /* TODO when parser implemented */
-        lys_free(ctx->list[ctx->list.count - 1], private_destructor, 1, 0);
-#endif
+        lys_module_free(ctx->list.objs[ctx->list.count - 1], private_destructor);
     }
     free(ctx->list.objs);
 
diff --git a/src/libyang.h b/src/libyang.h
index eb0d3dd..bb93a74 100644
--- a/src/libyang.h
+++ b/src/libyang.h
@@ -22,6 +22,82 @@
 #endif
 
 /**
+ * @mainpage About
+ *
+ * libyang is a library implementing processing of the YANG schemas and data modeled by the YANG language. The
+ * library is implemented in C for GNU/Linux and provides C API.
+ *
+ * @section about-features Main Features
+ *
+ * - [Parsing (and validating) schemas](@ref howtoschemasparsers) in YANG format.
+ * - [Parsing (and validating) schemas](@ref howtoschemasparsers) in YIN format.
+ * - [Parsing, validating and printing instance data](@ref howtodata) in XML format.
+ * - [Parsing, validating and printing instance data](@ref howtodata) in JSON format
+ *   ([RFC 7951](https://tools.ietf.org/html/rfc7951)).
+ * - [Manipulation with the instance data](@ref howtodatamanipulators).
+ * - Support for [default values in the instance data](@ref howtodatawd) ([RFC 6243](https://tools.ietf.org/html/rfc6243)).
+ * - Support for [YANG extensions and user types](@ref howtoschemaplugins).
+ * - Support for [YANG Metadata](@ref howtoschemametadata) ([RFC 7952](https://tools.ietf.org/html/rfc6243)).
+ *
+ * The current implementation covers YANG 1.0 ([RFC 6020](https://tools.ietf.org/html/rfc6020)) as well as
+ * YANG 1.1 ([RFC 7950](https://tools.ietf.org/html/rfc7950)).
+ *
+ * @section about-license License
+ *
+ * Copyright (c) 2015-2017 CESNET, z.s.p.o.
+ *
+ * (The BSD 3-Clause License)
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in
+ *    the documentation and/or other materials provided with the
+ *    distribution.
+ * 3. Neither the name of the Company nor the names of its contributors
+ *    may be used to endorse or promote products derived from this
+ *    software without specific prior written permission.
+ */
+
+/**
+ * @page howto How To ...
+ *
+ * - @subpage howtocontext
+ * - @subpage howtoschemas
+ * - @subpage howtodata
+ * - @subpage howtoxpath
+ * - @subpage howtoxml
+ * - @subpage howtothreads
+ * - @subpage howtologger
+ * - @subpage howtostructures
+ */
+
+/**
+ * @page howtostructures Data Structures
+ *
+ * @section sizedarrays Sized Arrays
+ *
+ * The structure starts with 32bit number storing size of the array - the number of the items inside. The size is part of the
+ * array to allocate it together with the array itself only when it is needed. This way the memory demands are decreased with
+ * possibility to have "infinite" (32bit) array of items. Because of a known size, it is not terminated by any special byte
+ * (sequence), so there is also no limit for specific content of the stored records (e.g. that first byte must not be NULL).
+ *
+ * Due to the structure, the records in the array cannot be accessed directly. There is a set of macros supposed to make
+ * work with the arrays more easy.
+ *
+ * - ::LY_ARRAY_SIZE
+ * - ::LY_ARRAY_INDEX
+ * - ::LY_ARRAY_FOR
+ *
+ * @section struct_lists Lists
+ *
+ * The lists are structures connected via a `next` pointer. Iterating over the siblings can be simply done by ::LY_LIST_FOR macro.
+ */
+
+/**
  * @defgroup context Context
  * @{
  *
@@ -175,8 +251,8 @@
  * @param[in] ctx libyang context to destroy
  * @param[in] private_destructor Optional destructor function for private objects assigned
  * to the nodes via lys_set_private(). If NULL, the private objects are not freed by libyang.
- * Remember the differences between the structures derived from ::lys_node and always check
- * ::lys_node#nodetype.
+ * Remember the differences between the structures derived from ::lysc_node and always check
+ * ::lysc_node#nodetype.
  */
 void ly_ctx_destroy(struct ly_ctx *ctx, void (*private_destructor)(const struct lysc_node *node, void *priv));
 
diff --git a/src/log.h b/src/log.h
index d1b159e..b5d6834 100644
--- a/src/log.h
+++ b/src/log.h
@@ -161,6 +161,8 @@
     LYVE_SUCCESS = 0,  /**< no error */
     LYVE_SYNTAX,       /**< generic syntax error */
     LYVE_SYNTAX_YANG,  /**< YANG-related syntax error */
+    LYVE_REFERENCE,    /**< invalid referencing or using an item */
+    LYVE_SEMANTICS     /**< generic semantic error */
 } LY_VECODE;
 
 /**
diff --git a/src/parser_yang.c b/src/parser_yang.c
index f69a3bb..805ef4f 100644
--- a/src/parser_yang.c
+++ b/src/parser_yang.c
@@ -27,12 +27,7 @@
 #include "common.h"
 #include "context.h"
 #include "libyang.h"
-
-struct ly_parser_ctx {
-    struct ly_ctx *ctx;
-    uint64_t line;      /* line number */
-    uint64_t indent;    /* current position on the line for indentation */
-};
+#include "tree_schema_internal.h"
 
 /* Macro to check YANG's yang-char grammar rule */
 #define is_yangutf8char(c) ((c >= 0x20 && c <= 0xd77) || c == 0x09 || c == 0x0a || c == 0x0d || \
@@ -910,6 +905,13 @@
         case '\t':
             /* mandatory "sep" */
             break;
+        case ':':
+            /* keyword is not actually a keyword, but prefix of an extension.
+             * To avoid repeated check of the prefix syntax, move to the point where the colon was read
+             * and we will be checking the keyword (extension instance) itself */
+            prefix = 1;
+            MOVE_INPUT(ctx, data, 1);
+            goto extension;
         case '{':
             /* allowed only for input and output statements which can be without arguments */
             if (*kw == YANG_INPUT || *kw == YANG_OUTPUT) {
@@ -925,6 +927,7 @@
     } else {
         /* still can be an extension */
         prefix = 0;
+extension:
         while (**data && (**data != ' ') && (**data != '\t') && (**data != '\n') && (**data != '{') && (**data != ';')) {
             LY_CHECK_ERR_RET(ly_getutf8(data, &c, &len),
                              LOGVAL_YANG(ctx, LY_VCODE_INCHAR, (*data)[-len]), LY_EVALID);
@@ -1033,7 +1036,7 @@
     struct lysp_ext_instance *e;
     enum yang_keyword kw;
 
-    LYSP_ARRAY_NEW_RET(ctx, exts, e, LY_EMEM);
+    LYSP_ARRAY_NEW_RET(ctx->ctx, *exts, e, LY_EMEM);
 
     /* store name and insubstmt info */
     e->name = lydict_insert(ctx->ctx, ext_name, ext_name_len);
@@ -1296,7 +1299,7 @@
     enum yang_keyword kw;
     struct lysp_include *inc;
 
-    LYSP_ARRAY_NEW_RET(ctx, includes, inc, LY_EMEM);
+    LYSP_ARRAY_NEW_RET(ctx->ctx, *includes, inc, LY_EMEM);
 
     /* get value */
     ret = get_argument(ctx, data, Y_IDENTIF_ARG, &word, &buf, &word_len);
@@ -1340,7 +1343,7 @@
  * @return LY_ERR values.
  */
 static LY_ERR
-parse_import(struct ly_parser_ctx *ctx, const char **data, struct lysp_import **imports)
+parse_import(struct ly_parser_ctx *ctx, const char **data, struct lysp_module *module)
 {
     LY_ERR ret = 0;
     char *buf, *word;
@@ -1348,7 +1351,7 @@
     enum yang_keyword kw;
     struct lysp_import *imp;
 
-    LYSP_ARRAY_NEW_RET(ctx, imports, imp, LY_EVALID);
+    LYSP_ARRAY_NEW_RET(ctx->ctx, module->imports, imp, LY_EVALID);
 
     /* get value */
     ret = get_argument(ctx, data, Y_IDENTIF_ARG, &word, &buf, &word_len);
@@ -1361,6 +1364,7 @@
         switch (kw) {
         case YANG_PREFIX:
             ret = parse_text_field(ctx, data, LYEXT_SUBSTMT_PREFIX, 0, &imp->prefix, Y_IDENTIF_ARG, &imp->exts);
+            LY_CHECK_RET(lysp_check_prefix(ctx, module, &imp->prefix), LY_EVALID);
             break;
         case YANG_DESCRIPTION:
             ret = parse_text_field(ctx, data, LYEXT_SUBSTMT_DESCRIPTION, 0, &imp->dsc, Y_STR_ARG, &imp->exts);
@@ -1409,7 +1413,7 @@
     enum yang_keyword kw;
     struct lysp_revision *rev;
 
-    LYSP_ARRAY_NEW_RET(ctx, revs, rev, LY_EMEM);
+    LYSP_ARRAY_NEW_RET(ctx->ctx, *revs, rev, LY_EMEM);
 
     /* get value */
     ret = get_argument(ctx, data, Y_STR_ARG, &word, &buf, &word_len);
@@ -1470,7 +1474,7 @@
 
     /* allocate new pointer */
     for (count = 1; (*texts) && (*texts)[count - 1]; ++count);
-    *texts = realloc(*texts, count * sizeof **texts);
+    *texts = realloc(*texts, (1 + count) * sizeof **texts);
     LY_CHECK_ERR_RET(!*texts, LOGMEM(ctx->ctx), LY_EMEM);
 
     /* get value */
@@ -1478,6 +1482,7 @@
     LY_CHECK_RET(ret);
 
     INSERT_WORD(ctx, buf, (*texts)[count - 1], word, word_len);
+    (*texts)[count] = NULL; /* NULL-termination of the array */
     YANG_READ_SUBSTMT_FOR(ctx, data, kw, word, word_len, ret) {
         LY_CHECK_RET(ret);
 
@@ -1676,7 +1681,7 @@
 {
     struct lysp_restr *restr;
 
-    LYSP_ARRAY_NEW_RET(ctx, restrs, restr, LY_EMEM);
+    LYSP_ARRAY_NEW_RET(ctx->ctx, *restrs, restr, LY_EMEM);
 
     return parse_restr(ctx, data, restr_kw, restr);
 }
@@ -1977,7 +1982,7 @@
     enum yang_keyword kw;
     struct lysp_type_enum *enm;
 
-    LYSP_ARRAY_NEW_RET(ctx, enums, enm, LY_EMEM);
+    LYSP_ARRAY_NEW_RET(ctx->ctx, *enums, enm, LY_EMEM);
 
     /* get value */
     ret = get_argument(ctx, data, Y_STR_ARG, &word, &buf, &word_len);
@@ -2223,7 +2228,7 @@
     enum yang_keyword kw;
     struct lysp_restr *restr;
 
-    LYSP_ARRAY_NEW_RET(ctx, patterns, restr, LY_EMEM);
+    LYSP_ARRAY_NEW_RET(ctx->ctx, *patterns, restr, LY_EMEM);
 
     /* get value */
     ret = get_argument(ctx, data, Y_STR_ARG, &word, &buf, &word_len);
@@ -2237,9 +2242,10 @@
         buf = malloc(word_len + 2);
     }
     LY_CHECK_ERR_RET(!buf, LOGMEM(ctx->ctx), LY_EMEM);
-    memmove(buf + 1, word, word_len + 1);
-    word[0] = 0x06;
-    restr->arg = lydict_insert_zc(ctx->ctx, word);
+    memmove(buf + 1, word, word_len);
+    buf[0] = 0x06; /* pattern's default regular-match flag */
+    buf[word_len + 1] = '\0'; /* terminating NULL byte */
+    restr->arg = lydict_insert_zc(ctx->ctx, buf);
 
     YANG_READ_SUBSTMT_FOR(ctx, data, kw, word, word_len, ret) {
         LY_CHECK_RET(ret);
@@ -2349,7 +2355,7 @@
             break;
         case YANG_TYPE:
             {
-                LYSP_ARRAY_NEW_RET(ctx, &type->types, nest_type, LY_EMEM);
+                LYSP_ARRAY_NEW_RET(ctx->ctx, type->types, nest_type, LY_EMEM);
             }
             ret = parse_type(ctx, data, nest_type);
             break;
@@ -2782,7 +2788,7 @@
     enum yang_keyword kw;
     struct lysp_refine *rf;
 
-    LYSP_ARRAY_NEW_RET(ctx, refines, rf, LY_EMEM);
+    LYSP_ARRAY_NEW_RET(ctx->ctx, *refines, rf, LY_EMEM);
 
     /* get value */
     ret = get_argument(ctx, data, Y_STR_ARG, &word, &buf, &word_len);
@@ -2855,7 +2861,7 @@
     enum yang_keyword kw;
     struct lysp_tpdf *tpdf;
 
-    LYSP_ARRAY_NEW_RET(ctx, typedefs, tpdf, LY_EMEM);
+    LYSP_ARRAY_NEW_RET(ctx->ctx, *typedefs, tpdf, LY_EMEM);
 
     /* get value */
     ret = get_argument(ctx, data, Y_IDENTIF_ARG, &word, &buf, &word_len);
@@ -3002,7 +3008,7 @@
     enum yang_keyword kw;
     struct lysp_action *act;
 
-    LYSP_ARRAY_NEW_RET(ctx, actions, act, LY_EMEM);
+    LYSP_ARRAY_NEW_RET(ctx->ctx, *actions, act, LY_EMEM);
 
     /* get value */
     ret = get_argument(ctx, data, Y_IDENTIF_ARG, &word, &buf, &word_len);
@@ -3071,7 +3077,7 @@
     enum yang_keyword kw;
     struct lysp_notif *notif;
 
-    LYSP_ARRAY_NEW_RET(ctx, notifs, notif, LY_EMEM);
+    LYSP_ARRAY_NEW_RET(ctx->ctx, *notifs, notif, LY_EMEM);
 
     /* get value */
     ret = get_argument(ctx, data, Y_IDENTIF_ARG, &word, &buf, &word_len);
@@ -3159,7 +3165,7 @@
     enum yang_keyword kw;
     struct lysp_grp *grp;
 
-    LYSP_ARRAY_NEW_RET(ctx, groupings, grp, LY_EMEM);
+    LYSP_ARRAY_NEW_RET(ctx->ctx, *groupings, grp, LY_EMEM);
 
     /* get value */
     ret = get_argument(ctx, data, Y_IDENTIF_ARG, &word, &buf, &word_len);
@@ -3248,7 +3254,7 @@
     enum yang_keyword kw;
     struct lysp_augment *aug;
 
-    LYSP_ARRAY_NEW_RET(ctx, augments, aug, LY_EMEM);
+    LYSP_ARRAY_NEW_RET(ctx->ctx, *augments, aug, LY_EMEM);
 
     /* get value */
     ret = get_argument(ctx, data, Y_STR_ARG, &word, &buf, &word_len);
@@ -3969,7 +3975,7 @@
     enum yang_keyword kw;
     struct lysp_ext *ex;
 
-    LYSP_ARRAY_NEW_RET(ctx, extensions, ex, LY_EMEM);
+    LYSP_ARRAY_NEW_RET(ctx->ctx, *extensions, ex, LY_EMEM);
 
     /* get value */
     ret = get_argument(ctx, data, Y_IDENTIF_ARG, &word, &buf, &word_len);
@@ -4181,6 +4187,10 @@
                 LOGVAL_YANG(ctx, LY_VCODE_INDEV, ly_devmod2str(dev_mod), ly_stmt2str(kw));
                 return LY_EVALID;
             default:
+                if (d_rpl->type) {
+                    LOGVAL_YANG(ctx, LY_VCODE_DUPSTMT, ly_stmt2str(kw));
+                    return LY_EVALID;
+                }
                 d_rpl->type = calloc(1, sizeof *d_rpl->type);
                 LY_CHECK_ERR_RET(!d_rpl->type, LOGMEM(ctx->ctx), LY_EMEM);
                 ret = parse_type(ctx, data, d_rpl->type);
@@ -4240,7 +4250,7 @@
     enum yang_keyword kw;
     struct lysp_deviation *dev;
 
-    LYSP_ARRAY_NEW_RET(ctx, deviations, dev, LY_EMEM);
+    LYSP_ARRAY_NEW_RET(ctx->ctx, *deviations, dev, LY_EMEM);
 
     /* get value */
     ret = get_argument(ctx, data, Y_STR_ARG, &word, &buf, &word_len);
@@ -4298,7 +4308,7 @@
     enum yang_keyword kw;
     struct lysp_feature *feat;
 
-    LYSP_ARRAY_NEW_RET(ctx, features, feat, LY_EMEM);
+    LYSP_ARRAY_NEW_RET(ctx->ctx, *features, feat, LY_EMEM);
 
     /* get value */
     ret = get_argument(ctx, data, Y_IDENTIF_ARG, &word, &buf, &word_len);
@@ -4326,7 +4336,7 @@
             break;
         default:
             LOGVAL_YANG(ctx, LY_VCODE_INCHILDSTMT, ly_stmt2str(kw), "feature");
-            return LY_EMEM;
+            return LY_EVALID;
         }
         LY_CHECK_RET(ret);
     }
@@ -4353,7 +4363,7 @@
     enum yang_keyword kw;
     struct lysp_ident *ident;
 
-    LYSP_ARRAY_NEW_RET(ctx, identities, ident, LY_EMEM);
+    LYSP_ARRAY_NEW_RET(ctx->ctx, *identities, ident, LY_EMEM);
 
     /* get value */
     ret = get_argument(ctx, data, Y_IDENTIF_ARG, &word, &buf, &word_len);
@@ -4388,7 +4398,6 @@
         }
         LY_CHECK_RET(ret);
     }
-    LY_CHECK_RET(ret);
 
     return ret;
 }
@@ -4419,6 +4428,9 @@
     YANG_READ_SUBSTMT_FOR(ctx, data, kw, word, word_len, ret) {
         LY_CHECK_RET(ret);
 
+#define CHECK_ORDER(SECTION) \
+        if (mod_stmt > SECTION) {LOGVAL_YANG(ctx, LY_VCODE_INORD, ly_stmt2str(kw), ly_stmt2str(prev_kw)); return LY_EVALID;}mod_stmt = SECTION
+
         switch (kw) {
         /* module header */
         case YANG_NAMESPACE:
@@ -4427,49 +4439,35 @@
                 LOGVAL_YANG(ctx, LY_VCODE_INCHILDSTMT, ly_stmt2str(kw), "submodule");
                 return LY_EVALID;
             }
-            /* fallthrough */
+            CHECK_ORDER(Y_MOD_MODULE_HEADER);
+            break;
         case YANG_BELONGS_TO:
-            if ((kw == YANG_BELONGS_TO) && !mod->submodule) {
+            if (!mod->submodule) {
                 LOGVAL_YANG(ctx, LY_VCODE_INCHILDSTMT, ly_stmt2str(kw), "module");
                 return LY_EVALID;
             }
-            /* fallthrough */
+            CHECK_ORDER(Y_MOD_MODULE_HEADER);
+            break;
         case YANG_YANG_VERSION:
-            if (mod_stmt > Y_MOD_MODULE_HEADER) {
-                LOGVAL_YANG(ctx, LY_VCODE_INORD, ly_stmt2str(kw), ly_stmt2str(prev_kw));
-                return LY_EVALID;
-            }
+            CHECK_ORDER(Y_MOD_MODULE_HEADER);
             break;
         /* linkage */
         case YANG_INCLUDE:
         case YANG_IMPORT:
-            if (mod_stmt > Y_MOD_LINKAGE) {
-                LOGVAL_YANG(ctx, LY_VCODE_INORD, ly_stmt2str(kw), ly_stmt2str(prev_kw));
-                return LY_EVALID;
-            }
-            mod_stmt = Y_MOD_LINKAGE;
+            CHECK_ORDER(Y_MOD_LINKAGE);
             break;
         /* meta */
         case YANG_ORGANIZATION:
         case YANG_CONTACT:
         case YANG_DESCRIPTION:
         case YANG_REFERENCE:
-            if (mod_stmt > Y_MOD_META) {
-                LOGVAL_YANG(ctx, LY_VCODE_INORD, ly_stmt2str(kw), ly_stmt2str(prev_kw));
-                return LY_EVALID;
-            }
-            mod_stmt = Y_MOD_META;
+            CHECK_ORDER(Y_MOD_META);
             break;
 
         /* revision */
         case YANG_REVISION:
-            if (mod_stmt > Y_MOD_REVISION) {
-                LOGVAL_YANG(ctx, LY_VCODE_INORD, ly_stmt2str(kw), ly_stmt2str(prev_kw));
-                return LY_EVALID;
-            }
-            mod_stmt = Y_MOD_REVISION;
+            CHECK_ORDER(Y_MOD_REVISION);
             break;
-
         /* body */
         case YANG_ANYDATA:
         case YANG_ANYXML:
@@ -4495,8 +4493,9 @@
             /* error handled in the next switch */
             break;
         }
-        prev_kw = kw;
+#undef CHECK_ORDER
 
+        prev_kw = kw;
         switch (kw) {
         /* module header */
         case YANG_YANG_VERSION:
@@ -4507,6 +4506,7 @@
             break;
         case YANG_PREFIX:
             ret = parse_text_field(ctx, data, LYEXT_SUBSTMT_PREFIX, 0, &mod->prefix, Y_IDENTIF_ARG, &mod->exts);
+            LY_CHECK_RET(lysp_check_prefix(ctx, mod, &mod->prefix), LY_EVALID);
             break;
         case YANG_BELONGS_TO:
             ret = parse_belongsto(ctx, data, &mod->belongsto, &mod->prefix, &mod->exts);
@@ -4517,7 +4517,7 @@
             ret = parse_include(ctx, data, &mod->includes);
             break;
         case YANG_IMPORT:
-            ret = parse_import(ctx, data, &mod->imports);
+            ret = parse_import(ctx, data, mod);
             break;
 
         /* meta */
@@ -4629,7 +4629,7 @@
     size_t word_len;
     enum yang_keyword kw;
     struct lysp_module *mod = NULL;
-    struct ly_parser_ctx context;
+    struct ly_parser_ctx context = {0};
 
     context.ctx = ctx;
     context.line = 1;
@@ -4667,6 +4667,9 @@
     }
     assert(!buf);
 
+    /* make sure that the newest revision is at position 0 */
+    lysp_sort_revisions(mod->revs);
+
     *mod_p = mod;
     return ret;
 
diff --git a/src/set.h b/src/set.h
index 5834b8c..f16feae 100644
--- a/src/set.h
+++ b/src/set.h
@@ -28,8 +28,8 @@
  */
 
 /**
- * @brief Structure to hold a set of (not necessary somehow connected) objects. Usually used for ::lyd_node
- * or ::lys_node objects, but it is not limited to them. Caller is supposed to not mix the type of objects
+ * @brief Structure to hold a set of (not necessary somehow connected) objects. Usually used for ::lyd_node,
+ * ::lysp_node or ::lysc_node objects, but it is not limited to them. Caller is supposed to not mix the type of objects
  * added to the set and according to its knowledge about the set content, it can access objects via the members
  * of the set union.
  *
@@ -43,12 +43,7 @@
 {
     unsigned int size;                /**< allocated size of the set array */
     unsigned int count;               /**< number of elements in (used size of) the set array */
-    union
-    {
-        struct lys_node **schemas;    /**< array of pointers to a ::lys_node objects */
-        struct lyd_node **data;       /**< array of pointers to a ::lyd_node objects */
-        void **objs;                  /**< dummy array for generic work */
-    };                                /**< set array - union to simplify access to the stored objects */
+    void **objs;                      /**< set array of generic object pointers */
 };
 
 /**
@@ -76,7 +71,7 @@
 struct ly_set *ly_set_dup(const struct ly_set *set, void *(*duplicator)(void *obj));
 
 /**
- * @brief Add a ::lyd_node or ::lys_node object into the set
+ * @brief Add an object into the set
  *
  * Since it is a set, the function checks for duplicity and if the
  * node is already in the set, the index of the previously added
@@ -129,7 +124,7 @@
  * (the last object is placed instead of the removed object).
  *
  * @param[in] set Set from which the \p node will be removed.
- * @param[in] obejct The object to be removed from the \p set.
+ * @param[in] object The object to be removed from the \p set.
  * @param[in] destructor Optional function to free the objects being removed.
  * @return LY_ERR return value.
  */
diff --git a/src/tree_schema.c b/src/tree_schema.c
index 5f6a050..6275235 100644
--- a/src/tree_schema.c
+++ b/src/tree_schema.c
@@ -11,19 +11,38 @@
  *
  *     https://opensource.org/licenses/BSD-3-Clause
  */
+#define _DEFAULT_SOURCE
+
+#include <errno.h>
+#include <fcntl.h>
+#include <linux/limits.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <sys/stat.h>
+#include <sys/types.h>
+#include <unistd.h>
 
 #include "libyang.h"
 #include "common.h"
+#include "context.h"
+#include "tree_schema_internal.h"
 
-#define FREE_ARRAY(CTX, ARRAY, ITER, FUNC) LY_ARRAY_FOR(ARRAY, ITER){FUNC(CTX, &ARRAY[ITER]);}free(ARRAY);
-#define FREE_MEMBER(CTX, MEMBER, FUNC) if (MEMBER) {FUNC(CTX, MEMBER);free(MEMBER);}
-#define FREE_STRING(CTX, STRING) if (STRING) {lydict_remove(CTX, STRING);}
+#define FREE_ARRAY(CTX, ARRAY, FUNC) {uint64_t c__; LY_ARRAY_FOR(ARRAY, c__){FUNC(CTX, LY_ARRAY_INDEX(ARRAY, c__), dict);}free(ARRAY);}
+#define FREE_MEMBER(CTX, MEMBER, FUNC) if (MEMBER) {FUNC(CTX, MEMBER, dict);free(MEMBER);}
+#define FREE_STRING(CTX, STRING) if (dict && STRING) {lydict_remove(CTX, STRING);}
 
-static void lysp_grp_free(struct ly_ctx *ctx, struct lysp_grp *grp);
-static void lysp_node_free(struct ly_ctx *ctx, struct lysp_node *node);
+static void lysp_grp_free(struct ly_ctx *ctx, struct lysp_grp *grp, int dict);
+static void lysp_node_free(struct ly_ctx *ctx, struct lysp_node *node, int dict);
+
+#define LYSC_CTX_BUFSIZE 4086
+struct lysc_ctx {
+    struct lysc_module *mod;
+    uint16_t path_len;
+    char path[LYSC_CTX_BUFSIZE];
+};
 
 static void
-lysp_stmt_free(struct ly_ctx *ctx, struct lysp_stmt *stmt)
+lysp_stmt_free(struct ly_ctx *ctx, struct lysp_stmt *stmt, int dict)
 {
     struct lysp_stmt *child, *next;
 
@@ -31,14 +50,14 @@
     FREE_STRING(ctx, stmt->arg);
 
     LY_LIST_FOR_SAFE(stmt->child, next, child) {
-        lysp_stmt_free(ctx, child);
+        lysp_stmt_free(ctx, child, dict);
     }
 
     free(stmt);
 }
 
 static void
-lysp_ext_instance_free(struct ly_ctx *ctx, struct lysp_ext_instance *ext)
+lysp_ext_instance_free(struct ly_ctx *ctx, struct lysp_ext_instance *ext, int dict)
 {
     struct lysp_stmt *stmt, *next;
 
@@ -46,54 +65,59 @@
     FREE_STRING(ctx, ext->argument);
 
     LY_LIST_FOR_SAFE(ext->child, next, stmt) {
-        lysp_stmt_free(ctx, stmt);
+        lysp_stmt_free(ctx, stmt, dict);
     }
 }
 
 static void
-lysp_import_free(struct ly_ctx *ctx, struct lysp_import *import)
+lysp_import_free(struct ly_ctx *ctx, struct lysp_import *import, int dict)
 {
-    unsigned int u;
-
     FREE_STRING(ctx, import->name);
     FREE_STRING(ctx, import->prefix);
     FREE_STRING(ctx, import->dsc);
     FREE_STRING(ctx, import->ref);
-    FREE_ARRAY(ctx, import->exts, u, lysp_ext_instance_free);
+    FREE_ARRAY(ctx, import->exts, lysp_ext_instance_free);
+    {
+        void *p__;
+        int64_t c__;
+        for(p__ = ((void*)((uint32_t*)((import->exts) + 0) + 1)), c__ = 0;
+                (import->exts) && c__ < (*(uint32_t*)(import->exts));
+                p__ = ((void*)((uint32_t*)((import->exts) + c__) + 1))) {
+            lysp_ext_instance_free(ctx, p__, dict);
+        }
+        free(import->exts);
+    }
 }
 
 static void
-lysp_include_free(struct ly_ctx *ctx, struct lysp_include *include)
+lysp_include_free(struct ly_ctx *ctx, struct lysp_include *include, int dict)
 {
-    unsigned int u;
     FREE_STRING(ctx, include->name);
     FREE_STRING(ctx, include->dsc);
     FREE_STRING(ctx, include->ref);
-    FREE_ARRAY(ctx, include->exts, u, lysp_ext_instance_free);
+    FREE_ARRAY(ctx, include->exts, lysp_ext_instance_free);
 }
 
 static void
-lysp_revision_free(struct ly_ctx *ctx, struct lysp_revision *rev)
+lysp_revision_free(struct ly_ctx *ctx, struct lysp_revision *rev, int dict)
 {
-    unsigned int u;
     FREE_STRING(ctx, rev->dsc);
     FREE_STRING(ctx, rev->ref);
-    FREE_ARRAY(ctx, rev->exts, u, lysp_ext_instance_free);
+    FREE_ARRAY(ctx, rev->exts, lysp_ext_instance_free);
 }
 
 static void
-lysp_ext_free(struct ly_ctx *ctx, struct lysp_ext *ext)
+lysp_ext_free(struct ly_ctx *ctx, struct lysp_ext *ext, int dict)
 {
-    unsigned int u;
     FREE_STRING(ctx, ext->name);
     FREE_STRING(ctx, ext->argument);
     FREE_STRING(ctx, ext->dsc);
     FREE_STRING(ctx, ext->ref);
-    FREE_ARRAY(ctx, ext->exts, u, lysp_ext_instance_free);
+    FREE_ARRAY(ctx, ext->exts, lysp_ext_instance_free);
 }
 
 static void
-lysp_feature_free(struct ly_ctx *ctx, struct lysp_feature *feat)
+lysp_feature_free(struct ly_ctx *ctx, struct lysp_feature *feat, int dict)
 {
     unsigned int u;
     FREE_STRING(ctx, feat->name);
@@ -103,11 +127,11 @@
     free(feat->iffeatures);
     FREE_STRING(ctx, feat->dsc);
     FREE_STRING(ctx, feat->ref);
-    FREE_ARRAY(ctx, feat->exts, u, lysp_ext_instance_free);
+    FREE_ARRAY(ctx, feat->exts, lysp_ext_instance_free);
 }
 
 static void
-lysp_ident_free(struct ly_ctx *ctx, struct lysp_ident *ident)
+lysp_ident_free(struct ly_ctx *ctx, struct lysp_ident *ident, int dict)
 {
     unsigned int u;
     FREE_STRING(ctx, ident->name);
@@ -121,23 +145,22 @@
     free(ident->bases);
     FREE_STRING(ctx, ident->dsc);
     FREE_STRING(ctx, ident->ref);
-    FREE_ARRAY(ctx, ident->exts, u, lysp_ext_instance_free);
+    FREE_ARRAY(ctx, ident->exts, lysp_ext_instance_free);
 }
 
 static void
-lysp_restr_free(struct ly_ctx *ctx, struct lysp_restr *restr)
+lysp_restr_free(struct ly_ctx *ctx, struct lysp_restr *restr, int dict)
 {
-    unsigned int u;
     FREE_STRING(ctx, restr->arg);
     FREE_STRING(ctx, restr->emsg);
     FREE_STRING(ctx, restr->eapptag);
     FREE_STRING(ctx, restr->dsc);
     FREE_STRING(ctx, restr->ref);
-    FREE_ARRAY(ctx, restr->exts, u, lysp_ext_instance_free);
+    FREE_ARRAY(ctx, restr->exts, lysp_ext_instance_free);
 }
 
 static void
-lysp_type_enum_free(struct ly_ctx *ctx, struct lysp_type_enum *item)
+lysp_type_enum_free(struct ly_ctx *ctx, struct lysp_type_enum *item, int dict)
 {
     unsigned int u;
     FREE_STRING(ctx, item->name);
@@ -147,59 +170,57 @@
         FREE_STRING(ctx, item->iffeatures[u]);
     }
     free(item->iffeatures);
-    FREE_ARRAY(ctx, item->exts, u, lysp_ext_instance_free);
+    FREE_ARRAY(ctx, item->exts, lysp_ext_instance_free);
 }
 
 static void
-lysp_type_free(struct ly_ctx *ctx, struct lysp_type *type)
+lysp_type_free(struct ly_ctx *ctx, struct lysp_type *type, int dict)
 {
     unsigned int u;
     FREE_STRING(ctx, type->name);
     FREE_MEMBER(ctx, type->range, lysp_restr_free);
     FREE_MEMBER(ctx, type->length, lysp_restr_free);
-    FREE_ARRAY(ctx, type->patterns, u, lysp_restr_free);
-    FREE_ARRAY(ctx, type->enums, u, lysp_type_enum_free);
-    FREE_ARRAY(ctx, type->bits, u, lysp_type_enum_free);
+    FREE_ARRAY(ctx, type->patterns, lysp_restr_free);
+    FREE_ARRAY(ctx, type->enums, lysp_type_enum_free);
+    FREE_ARRAY(ctx, type->bits, lysp_type_enum_free);
     FREE_STRING(ctx, type->path);
     for (u = 0; type->bases && type->bases[u]; ++u) {
         FREE_STRING(ctx, type->bases[u]);
     }
     free(type->bases);
-    FREE_ARRAY(ctx, type->types, u, lysp_type_free);
-    FREE_ARRAY(ctx, type->exts, u, lysp_ext_instance_free);
+    FREE_ARRAY(ctx, type->types, lysp_type_free);
+    FREE_ARRAY(ctx, type->exts, lysp_ext_instance_free);
 }
 
 static void
-lysp_tpdf_free(struct ly_ctx *ctx, struct lysp_tpdf *tpdf)
+lysp_tpdf_free(struct ly_ctx *ctx, struct lysp_tpdf *tpdf, int dict)
 {
-    unsigned int u;
     FREE_STRING(ctx, tpdf->name);
     FREE_STRING(ctx, tpdf->units);
     FREE_STRING(ctx, tpdf->dflt);
     FREE_STRING(ctx, tpdf->dsc);
     FREE_STRING(ctx, tpdf->ref);
-    FREE_ARRAY(ctx, tpdf->exts, u, lysp_ext_instance_free);
-    lysp_type_free(ctx, &tpdf->type);
+    FREE_ARRAY(ctx, tpdf->exts, lysp_ext_instance_free);
+    lysp_type_free(ctx, &tpdf->type, dict);
 }
 
 static void
-lysp_action_inout_free(struct ly_ctx *ctx, struct lysp_action_inout *inout)
+lysp_action_inout_free(struct ly_ctx *ctx, struct lysp_action_inout *inout, int dict)
 {
-    unsigned int u;
     struct lysp_node *node, *next;
 
-    FREE_ARRAY(ctx, inout->musts, u, lysp_restr_free);
-    FREE_ARRAY(ctx, inout->typedefs, u, lysp_tpdf_free);
-    FREE_ARRAY(ctx, inout->groupings, u, lysp_grp_free);
+    FREE_ARRAY(ctx, inout->musts, lysp_restr_free);
+    FREE_ARRAY(ctx, inout->typedefs, lysp_tpdf_free);
+    FREE_ARRAY(ctx, inout->groupings, lysp_grp_free);
     LY_LIST_FOR_SAFE(inout->data, next, node) {
-        lysp_node_free(ctx, node);
+        lysp_node_free(ctx, node, dict);
     }
-    FREE_ARRAY(ctx, inout->exts, u, lysp_ext_instance_free);
+    FREE_ARRAY(ctx, inout->exts, lysp_ext_instance_free);
 
 }
 
 static void
-lysp_action_free(struct ly_ctx *ctx, struct lysp_action *action)
+lysp_action_free(struct ly_ctx *ctx, struct lysp_action *action, int dict)
 {
     unsigned int u;
     FREE_STRING(ctx, action->name);
@@ -209,15 +230,15 @@
         FREE_STRING(ctx, action->iffeatures[u]);
     }
     free(action->iffeatures);
-    FREE_ARRAY(ctx, action->typedefs, u, lysp_tpdf_free);
-    FREE_ARRAY(ctx, action->groupings, u, lysp_grp_free);
+    FREE_ARRAY(ctx, action->typedefs, lysp_tpdf_free);
+    FREE_ARRAY(ctx, action->groupings, lysp_grp_free);
     FREE_MEMBER(ctx, action->input, lysp_action_inout_free);
     FREE_MEMBER(ctx, action->output, lysp_action_inout_free);
-    FREE_ARRAY(ctx, action->exts, u, lysp_ext_instance_free);
+    FREE_ARRAY(ctx, action->exts, lysp_ext_instance_free);
 }
 
 static void
-lysp_notif_free(struct ly_ctx *ctx, struct lysp_notif *notif)
+lysp_notif_free(struct ly_ctx *ctx, struct lysp_notif *notif, int dict)
 {
     unsigned int u;
     struct lysp_node *node, *next;
@@ -229,46 +250,44 @@
         FREE_STRING(ctx, notif->iffeatures[u]);
     }
     free(notif->iffeatures);
-    FREE_ARRAY(ctx, notif->musts, u, lysp_restr_free);
-    FREE_ARRAY(ctx, notif->typedefs, u, lysp_tpdf_free);
-    FREE_ARRAY(ctx, notif->groupings, u, lysp_grp_free);
+    FREE_ARRAY(ctx, notif->musts, lysp_restr_free);
+    FREE_ARRAY(ctx, notif->typedefs, lysp_tpdf_free);
+    FREE_ARRAY(ctx, notif->groupings, lysp_grp_free);
     LY_LIST_FOR_SAFE(notif->data, next, node) {
-        lysp_node_free(ctx, node);
+        lysp_node_free(ctx, node, dict);
     }
-    FREE_ARRAY(ctx, notif->exts, u, lysp_ext_instance_free);
+    FREE_ARRAY(ctx, notif->exts, lysp_ext_instance_free);
 }
 
 static void
-lysp_grp_free(struct ly_ctx *ctx, struct lysp_grp *grp)
+lysp_grp_free(struct ly_ctx *ctx, struct lysp_grp *grp, int dict)
 {
-    unsigned int u;
     struct lysp_node *node, *next;
 
     FREE_STRING(ctx, grp->name);
     FREE_STRING(ctx, grp->dsc);
     FREE_STRING(ctx, grp->ref);
-    FREE_ARRAY(ctx, grp->typedefs, u, lysp_tpdf_free);
-    FREE_ARRAY(ctx, grp->groupings, u, lysp_grp_free);
+    FREE_ARRAY(ctx, grp->typedefs, lysp_tpdf_free);
+    FREE_ARRAY(ctx, grp->groupings, lysp_grp_free);
     LY_LIST_FOR_SAFE(grp->data, next, node) {
-        lysp_node_free(ctx, node);
+        lysp_node_free(ctx, node, dict);
     }
-    FREE_ARRAY(ctx, grp->actions, u, lysp_action_free);
-    FREE_ARRAY(ctx, grp->notifs, u, lysp_notif_free);
-    FREE_ARRAY(ctx, grp->exts, u, lysp_ext_instance_free);
+    FREE_ARRAY(ctx, grp->actions, lysp_action_free);
+    FREE_ARRAY(ctx, grp->notifs, lysp_notif_free);
+    FREE_ARRAY(ctx, grp->exts, lysp_ext_instance_free);
 }
 
 static void
-lysp_when_free(struct ly_ctx *ctx, struct lysp_when *when)
+lysp_when_free(struct ly_ctx *ctx, struct lysp_when *when, int dict)
 {
-    unsigned int u;
     FREE_STRING(ctx, when->cond);
     FREE_STRING(ctx, when->dsc);
     FREE_STRING(ctx, when->ref);
-    FREE_ARRAY(ctx, when->exts, u, lysp_ext_instance_free);
+    FREE_ARRAY(ctx, when->exts, lysp_ext_instance_free);
 }
 
 static void
-lysp_augment_free(struct ly_ctx *ctx, struct lysp_augment *augment)
+lysp_augment_free(struct ly_ctx *ctx, struct lysp_augment *augment, int dict)
 {
     unsigned int u;
     struct lysp_node *node, *next;
@@ -282,21 +301,21 @@
     }
     free(augment->iffeatures);
     LY_LIST_FOR_SAFE(augment->child, next, node) {
-        lysp_node_free(ctx, node);
+        lysp_node_free(ctx, node, dict);
     }
-    FREE_ARRAY(ctx, augment->actions, u, lysp_action_free);
-    FREE_ARRAY(ctx, augment->notifs, u, lysp_notif_free);
-    FREE_ARRAY(ctx, augment->exts, u, lysp_ext_instance_free);
+    FREE_ARRAY(ctx, augment->actions, lysp_action_free);
+    FREE_ARRAY(ctx, augment->notifs, lysp_notif_free);
+    FREE_ARRAY(ctx, augment->exts, lysp_ext_instance_free);
 }
 
 static void
-lysp_deviate_free(struct ly_ctx *ctx, struct lysp_deviate *d)
+lysp_deviate_free(struct ly_ctx *ctx, struct lysp_deviate *d, int dict)
 {
     unsigned int u;
     struct lysp_deviate_add *add = (struct lysp_deviate_add*)d;
     struct lysp_deviate_rpl *rpl = (struct lysp_deviate_rpl*)d;
 
-    FREE_ARRAY(ctx, d->exts, u, lysp_ext_instance_free);
+    FREE_ARRAY(ctx, d->exts, lysp_ext_instance_free);
     switch(d->mod) {
     case LYS_DEV_NOT_SUPPORTED:
         /* nothing to do */
@@ -304,7 +323,7 @@
     case LYS_DEV_ADD:
     case LYS_DEV_DELETE: /* compatible for dynamically allocated data */
         FREE_STRING(ctx, add->units);
-        FREE_ARRAY(ctx, add->musts, u, lysp_restr_free);
+        FREE_ARRAY(ctx, add->musts, lysp_restr_free);
         for (u = 0; add->uniques && add->uniques[u]; ++u) {
             FREE_STRING(ctx, add->uniques[u]);
         }
@@ -326,22 +345,22 @@
 }
 
 static void
-lysp_deviation_free(struct ly_ctx *ctx, struct lysp_deviation *dev)
+lysp_deviation_free(struct ly_ctx *ctx, struct lysp_deviation *dev, int dict)
 {
-    unsigned int u;
     struct lysp_deviate *next, *iter;
 
     FREE_STRING(ctx, dev->nodeid);
     FREE_STRING(ctx, dev->dsc);
     FREE_STRING(ctx, dev->ref);
     LY_LIST_FOR_SAFE(dev->deviates, next, iter) {
-        lysp_deviate_free(ctx, iter);
+        lysp_deviate_free(ctx, iter, dict);
+        free(iter);
     }
-    FREE_ARRAY(ctx, dev->exts, u, lysp_ext_instance_free);
+    FREE_ARRAY(ctx, dev->exts, lysp_ext_instance_free);
 }
 
 static void
-lysp_refine_free(struct ly_ctx *ctx, struct lysp_refine *ref)
+lysp_refine_free(struct ly_ctx *ctx, struct lysp_refine *ref, int dict)
 {
     unsigned int u;
     FREE_STRING(ctx, ref->nodeid);
@@ -351,17 +370,17 @@
         FREE_STRING(ctx, ref->iffeatures[u]);
     }
     free(ref->iffeatures);
-    FREE_ARRAY(ctx, ref->musts, u, lysp_restr_free);
+    FREE_ARRAY(ctx, ref->musts, lysp_restr_free);
     FREE_STRING(ctx, ref->presence);
     for (u = 0; ref->dflts && ref->dflts[u]; ++u) {
         FREE_STRING(ctx, ref->dflts[u]);
     }
     free(ref->dflts);
-    FREE_ARRAY(ctx, ref->exts, u, lysp_ext_instance_free);
+    FREE_ARRAY(ctx, ref->exts, lysp_ext_instance_free);
 }
 
 static void
-lysp_node_free(struct ly_ctx *ctx, struct lysp_node *node)
+lysp_node_free(struct ly_ctx *ctx, struct lysp_node *node, int dict)
 {
     unsigned int u;
     struct lysp_node *child, *next;
@@ -374,29 +393,29 @@
         FREE_STRING(ctx, node->iffeatures[u]);
     }
     free(node->iffeatures);
-    FREE_ARRAY(ctx, node->exts, u, lysp_ext_instance_free);
+    FREE_ARRAY(ctx, node->exts, lysp_ext_instance_free);
 
     switch(node->nodetype) {
     case LYS_CONTAINER:
-        FREE_ARRAY(ctx, ((struct lysp_node_container*)node)->musts, u, lysp_restr_free);
+        FREE_ARRAY(ctx, ((struct lysp_node_container*)node)->musts, lysp_restr_free);
         FREE_STRING(ctx, ((struct lysp_node_container*)node)->presence);
-        FREE_ARRAY(ctx, ((struct lysp_node_container*)node)->typedefs, u, lysp_tpdf_free);
-        FREE_ARRAY(ctx, ((struct lysp_node_container*)node)->groupings, u, lysp_grp_free);
+        FREE_ARRAY(ctx, ((struct lysp_node_container*)node)->typedefs, lysp_tpdf_free);
+        FREE_ARRAY(ctx, ((struct lysp_node_container*)node)->groupings, lysp_grp_free);
         LY_LIST_FOR_SAFE(((struct lysp_node_container*)node)->child, next, child) {
-            lysp_node_free(ctx, child);
+            lysp_node_free(ctx, child, dict);
         }
-        FREE_ARRAY(ctx, ((struct lysp_node_container*)node)->actions, u, lysp_action_free);
-        FREE_ARRAY(ctx, ((struct lysp_node_container*)node)->notifs, u, lysp_notif_free);
+        FREE_ARRAY(ctx, ((struct lysp_node_container*)node)->actions, lysp_action_free);
+        FREE_ARRAY(ctx, ((struct lysp_node_container*)node)->notifs, lysp_notif_free);
         break;
     case LYS_LEAF:
-        FREE_ARRAY(ctx, ((struct lysp_node_leaf*)node)->musts, u, lysp_restr_free);
-        lysp_type_free(ctx, &((struct lysp_node_leaf*)node)->type);
+        FREE_ARRAY(ctx, ((struct lysp_node_leaf*)node)->musts, lysp_restr_free);
+        lysp_type_free(ctx, &((struct lysp_node_leaf*)node)->type, dict);
         FREE_STRING(ctx, ((struct lysp_node_leaf*)node)->units);
         FREE_STRING(ctx, ((struct lysp_node_leaf*)node)->dflt);
         break;
     case LYS_LEAFLIST:
-        FREE_ARRAY(ctx, ((struct lysp_node_leaflist*)node)->musts, u, lysp_restr_free);
-        lysp_type_free(ctx, &((struct lysp_node_leaflist*)node)->type);
+        FREE_ARRAY(ctx, ((struct lysp_node_leaflist*)node)->musts, lysp_restr_free);
+        lysp_type_free(ctx, &((struct lysp_node_leaflist*)node)->type, dict);
         FREE_STRING(ctx, ((struct lysp_node_leaflist*)node)->units);
         for (u = 0; ((struct lysp_node_leaflist*)node)->dflts && ((struct lysp_node_leaflist*)node)->dflts[u]; ++u) {
             FREE_STRING(ctx, ((struct lysp_node_leaflist*)node)->dflts[u]);
@@ -404,15 +423,15 @@
         free(((struct lysp_node_leaflist*)node)->dflts);
         break;
     case LYS_LIST:
-        FREE_ARRAY(ctx, ((struct lysp_node_list*)node)->musts, u, lysp_restr_free);
+        FREE_ARRAY(ctx, ((struct lysp_node_list*)node)->musts, lysp_restr_free);
         FREE_STRING(ctx, ((struct lysp_node_list*)node)->key);
-        FREE_ARRAY(ctx, ((struct lysp_node_list*)node)->typedefs, u, lysp_tpdf_free);
-        FREE_ARRAY(ctx, ((struct lysp_node_list*)node)->groupings, u, lysp_grp_free);
+        FREE_ARRAY(ctx, ((struct lysp_node_list*)node)->typedefs, lysp_tpdf_free);
+        FREE_ARRAY(ctx, ((struct lysp_node_list*)node)->groupings,  lysp_grp_free);
         LY_LIST_FOR_SAFE(((struct lysp_node_list*)node)->child, next, child) {
-            lysp_node_free(ctx, child);
+            lysp_node_free(ctx, child, dict);
         }
-        FREE_ARRAY(ctx, ((struct lysp_node_list*)node)->actions, u, lysp_action_free);
-        FREE_ARRAY(ctx, ((struct lysp_node_list*)node)->notifs, u, lysp_notif_free);
+        FREE_ARRAY(ctx, ((struct lysp_node_list*)node)->actions, lysp_action_free);
+        FREE_ARRAY(ctx, ((struct lysp_node_list*)node)->notifs, lysp_notif_free);
         for (u = 0; ((struct lysp_node_list*)node)->uniques && ((struct lysp_node_list*)node)->uniques[u]; ++u) {
             FREE_STRING(ctx, ((struct lysp_node_list*)node)->uniques[u]);
         }
@@ -420,22 +439,22 @@
         break;
     case LYS_CHOICE:
         LY_LIST_FOR_SAFE(((struct lysp_node_choice*)node)->child, next, child) {
-            lysp_node_free(ctx, child);
+            lysp_node_free(ctx, child, dict);
         }
         FREE_STRING(ctx, ((struct lysp_node_choice*)node)->dflt);
         break;
     case LYS_CASE:
         LY_LIST_FOR_SAFE(((struct lysp_node_case*)node)->child, next, child) {
-            lysp_node_free(ctx, child);
+            lysp_node_free(ctx, child, dict);
         }
         break;
     case LYS_ANYDATA:
     case LYS_ANYXML:
-        FREE_ARRAY(ctx, ((struct lysp_node_anydata*)node)->musts, u, lysp_restr_free);
+        FREE_ARRAY(ctx, ((struct lysp_node_anydata*)node)->musts, lysp_restr_free);
         break;
     case LYS_USES:
-        FREE_ARRAY(ctx, ((struct lysp_node_uses*)node)->refines, u, lysp_refine_free);
-        FREE_ARRAY(ctx, ((struct lysp_node_uses*)node)->augments, u, lysp_augment_free);
+        FREE_ARRAY(ctx, ((struct lysp_node_uses*)node)->refines, lysp_refine_free);
+        FREE_ARRAY(ctx, ((struct lysp_node_uses*)node)->augments, lysp_augment_free);
         break;
     default:
         LOGINT(ctx);
@@ -444,11 +463,10 @@
     free(node);
 }
 
-API void
-lysp_module_free(struct lysp_module *module)
+static void
+lysp_module_free_(struct lysp_module *module, int dict)
 {
     struct ly_ctx *ctx;
-    unsigned int u;
     struct lysp_node *node, *next;
 
     LY_CHECK_ARG_RET(NULL, module,);
@@ -459,29 +477,357 @@
     FREE_STRING(ctx, module->ns);  /* or belongs-to */
     FREE_STRING(ctx, module->prefix);
 
-    FREE_ARRAY(ctx, module->imports, u, lysp_import_free);
-    FREE_ARRAY(ctx, module->includes, u, lysp_include_free);
+    FREE_ARRAY(ctx, module->imports, lysp_import_free);
+    FREE_ARRAY(ctx, module->includes, lysp_include_free);
 
     FREE_STRING(ctx, module->org);
     FREE_STRING(ctx, module->contact);
     FREE_STRING(ctx, module->dsc);
     FREE_STRING(ctx, module->ref);
 
-    FREE_ARRAY(ctx, module->revs, u, lysp_revision_free);
-    FREE_ARRAY(ctx, module->extensions, u, lysp_ext_free);
-    FREE_ARRAY(ctx, module->features, u, lysp_feature_free);
-    FREE_ARRAY(ctx, module->identities, u, lysp_ident_free);
-    FREE_ARRAY(ctx, module->typedefs, u, lysp_tpdf_free);
-    FREE_ARRAY(ctx, module->groupings, u, lysp_grp_free);
+    FREE_ARRAY(ctx, module->revs, lysp_revision_free);
+    FREE_ARRAY(ctx, module->extensions, lysp_ext_free);
+    FREE_ARRAY(ctx, module->features, lysp_feature_free);
+    FREE_ARRAY(ctx, module->identities, lysp_ident_free);
+    FREE_ARRAY(ctx, module->typedefs, lysp_tpdf_free);
+    FREE_ARRAY(ctx, module->groupings, lysp_grp_free);
     LY_LIST_FOR_SAFE(module->data, next, node) {
-        lysp_node_free(ctx, node);
+        lysp_node_free(ctx, node, dict);
     }
-    FREE_ARRAY(ctx, module->augments, u, lysp_augment_free);
-    FREE_ARRAY(ctx, module->rpcs, u, lysp_action_free);
-    FREE_ARRAY(ctx, module->notifs, u, lysp_notif_free);
-    FREE_ARRAY(ctx, module->deviations, u, lysp_deviation_free);
-    FREE_ARRAY(ctx, module->exts, u, lysp_ext_instance_free);
+    FREE_ARRAY(ctx, module->augments, lysp_augment_free);
+    FREE_ARRAY(ctx, module->rpcs, lysp_action_free);
+    FREE_ARRAY(ctx, module->notifs, lysp_notif_free);
+    FREE_ARRAY(ctx, module->deviations, lysp_deviation_free);
+    FREE_ARRAY(ctx, module->exts, lysp_ext_instance_free);
+
+    free(module);
+}
+
+API void
+lysp_module_free(struct lysp_module *module)
+{
+    lysp_module_free_(module, 1);
+}
+
+static void
+lysc_feature_free(struct ly_ctx *ctx, struct lysc_feature *feat, int dict)
+{
+    FREE_STRING(ctx, feat->name);
+
+}
+
+static void
+lysc_module_free_(struct lysc_module *module, int dict)
+{
+    struct ly_ctx *ctx;
+
+    LY_CHECK_ARG_RET(NULL, module,);
+    ctx = module->ctx;
+
+    FREE_STRING(ctx, module->name);
+    FREE_STRING(ctx, module->ns);
+    FREE_STRING(ctx, module->prefix);
+
+
+    FREE_ARRAY(ctx, module->features, lysc_feature_free);
 
 
     free(module);
 }
+
+API void
+lysc_module_free(struct lysc_module *module, void (*private_destructor)(const struct lysc_node *node, void *priv))
+{
+    lysc_module_free_(module, 1);
+}
+
+void
+lys_module_free(struct lys_module *module, void (*private_destructor)(const struct lysc_node *node, void *priv))
+{
+    if (!module) {
+        return;
+    }
+
+    lysc_module_free(module->compiled, private_destructor);
+    lysp_module_free(module->parsed);
+    free(module);
+}
+
+static LY_ERR
+lys_compile_iffeature(struct lysc_ctx *ctx, const char *iff_p, struct lysc_iffeature **iffeatures)
+{
+    struct lysc_iffeature *iff;
+
+    if ((ctx->mod->version != 2) && ((iff_p[0] == '(') || strchr(iff_p, ' '))) {
+        LOGVAL(ctx->mod->ctx, LY_VLOG_STR, ctx->path,LY_VCODE_INVAL, strlen(iff_p), iff_p, "if-feature");
+        return LY_EVALID;
+    }
+
+    LYSP_ARRAY_NEW_RET(ctx->mod->ctx, *iffeatures, iff, LY_EMEM);
+
+    return LY_SUCCESS;
+}
+
+static LY_ERR
+lys_compile_feature(struct lysc_ctx *ctx, struct lysp_feature *feature_p, int options, struct lysc_feature **features)
+{
+    struct lysc_feature *feature;
+    unsigned int u;
+    LY_ERR ret;
+
+    LYSP_ARRAY_NEW_RET(ctx->mod->ctx, *features, feature, LY_EMEM);
+
+    if (options & LYSC_OPT_FREE_SP) {
+        /* just switch the pointers */
+        feature->name = feature_p->name;
+    } else {
+        /* keep refcounts correct for lysp_module_free() */
+        feature->name = lydict_insert(ctx->mod->ctx, feature_p->name, 0);
+    }
+    feature->flags = feature_p->flags;
+
+    for (u = 0; feature_p->iffeatures && feature_p->iffeatures[u]; ++u) {
+        ret = lys_compile_iffeature(ctx, feature_p->iffeatures[u], &feature->iffeatures);
+        LY_CHECK_RET(ret);
+    }
+
+    return LY_SUCCESS;
+}
+
+LY_ERR
+lys_compile(struct lysp_module *sp, int options, struct lysc_module **sc)
+{
+    struct lysc_ctx ctx = {0};
+    struct lysc_module *mod_c;
+    void *p;
+    LY_ERR ret;
+
+    LY_CHECK_ARG_RET(NULL, sc, sp, sp->ctx, LY_EINVAL);
+
+    if (sp->submodule) {
+        LOGERR(sp->ctx, LY_EINVAL, "Submodules (%s) are not supposed to be compiled, compile only the main modules.", sp->name);
+        return LY_EINVAL;
+    }
+
+    ctx.mod = mod_c = calloc(1, sizeof *mod_c);
+    LY_CHECK_ERR_RET(!mod_c, LOGMEM(sp->ctx), LY_EMEM);
+    mod_c->ctx = sp->ctx;
+    mod_c->version = sp->version;
+
+    if (options & LYSC_OPT_FREE_SP) {
+        /* just switch the pointers */
+        mod_c->name = sp->name;
+        mod_c->ns = sp->ns;
+        mod_c->prefix = sp->prefix;
+    } else {
+        /* keep refcounts correct for lysp_module_free() */
+        mod_c->name = lydict_insert(sp->ctx, sp->name, 0);
+        mod_c->ns = lydict_insert(sp->ctx, sp->ns, 0);
+        mod_c->prefix = lydict_insert(sp->ctx, sp->prefix, 0);
+    }
+
+    if (sp->features) {
+        LY_ARRAY_FOR(sp->features, struct lysp_feature, p) {
+            ret = lys_compile_feature(&ctx, p, options, &mod_c->features);
+            LY_CHECK_GOTO(ret != LY_SUCCESS, error);
+        }
+    }
+
+    if (options & LYSC_OPT_FREE_SP) {
+        lysp_module_free_(sp, 0);
+    }
+
+    (*sc) = mod_c;
+    return LY_SUCCESS;
+
+error:
+
+    if (options & LYSC_OPT_FREE_SP) {
+        lysc_module_free_(mod_c, 0);
+    } else {
+        lysc_module_free_(mod_c, 1);
+    }
+    return ret;
+}
+
+const struct lys_module *
+lys_parse_mem_(struct ly_ctx *ctx, const char *data, LYS_INFORMAT format, const char *revision, int implement)
+{
+    struct lys_module *mod = NULL;
+    LY_ERR ret;
+
+    LY_CHECK_ARG_RET(ctx, ctx, data, NULL);
+
+    mod = calloc(1, sizeof *mod);
+    LY_CHECK_ERR_RET(!mod, LOGMEM(ctx), NULL);
+
+    switch (format) {
+    case LYS_IN_YIN:
+        /* TODO not yet supported
+        mod = yin_read_module(ctx, data, revision, implement);
+        */
+        break;
+    case LYS_IN_YANG:
+        ret = yang_parse(ctx, data, &mod->parsed);
+        LY_CHECK_RET(ret, NULL);
+        break;
+    default:
+        LOGERR(ctx, LY_EINVAL, "Invalid schema input format.");
+        break;
+    }
+
+    if (implement) {
+        mod->parsed->implemented = 1;
+    }
+
+    if (revision) {
+        /* check revision of the parsed model */
+        if (!mod->parsed->revs || strcmp(revision, LY_ARRAY_INDEX(mod->parsed->revs, 0, struct lysp_revision)->rev)) {
+            LOGERR(ctx, LY_EINVAL, "Module \"%s\" parsed with the wrong revision (\"%s\" instead \"%s\").",
+                   mod->parsed->name, LY_ARRAY_INDEX(mod->parsed->revs, 0, struct lysp_revision)->rev, revision);
+            lysp_module_free(mod->parsed);
+            free(mod);
+            return NULL;
+        }
+    }
+
+    /* check for duplicity in the context */
+
+    /* add into context */
+    ly_set_add(&ctx->list, mod, LY_SET_OPT_USEASLIST);
+
+#if 0
+    /* hack for NETCONF's edit-config's operation attribute. It is not defined in the schema, but since libyang
+     * implements YANG metadata (annotations), we need its definition. Because the ietf-netconf schema is not the
+     * internal part of libyang, we cannot add the annotation into the schema source, but we do it here to have
+     * the anotation definitions available in the internal schema structure. There is another hack in schema
+     * printers to do not print this internally added annotation. */
+    if (mod && ly_strequal(mod->name, "ietf-netconf", 0)) {
+        if (lyp_add_ietf_netconf_annotations(mod)) {
+            lys_free(mod, NULL, 1, 1);
+            return NULL;
+        }
+    }
+#endif
+
+    return mod;
+}
+
+API const struct lys_module *
+lys_parse_mem(struct ly_ctx *ctx, const char *data, LYS_INFORMAT format)
+{
+    return lys_parse_mem_(ctx, data, format, NULL, 1);
+}
+
+static void
+lys_parse_set_filename(struct ly_ctx *ctx, const char **filename, int fd)
+{
+#ifdef __APPLE__
+    char path[MAXPATHLEN];
+#else
+    int len;
+    char path[PATH_MAX], proc_path[32];
+#endif
+
+#ifdef __APPLE__
+    if (fcntl(fd, F_GETPATH, path) != -1) {
+        *filename = lydict_insert(ctx, path, 0);
+    }
+#else
+    /* get URI if there is /proc */
+    sprintf(proc_path, "/proc/self/fd/%d", fd);
+    if ((len = readlink(proc_path, path, PATH_MAX - 1)) > 0) {
+        *filename = lydict_insert(ctx, path, len);
+    }
+#endif
+}
+
+const struct lys_module *
+lys_parse_fd_(struct ly_ctx *ctx, int fd, LYS_INFORMAT format, const char *revision, int implement)
+{
+    const struct lys_module *mod;
+    size_t length;
+    char *addr;
+
+    LY_CHECK_ARG_RET(ctx, ctx, NULL);
+    if (fd < 0) {
+        LOGARG(ctx, fd);
+        return NULL;
+    }
+
+    LY_CHECK_RET(ly_mmap(ctx, fd, &length, (void **)&addr), NULL);
+    if (!addr) {
+        LOGERR(ctx, LY_EINVAL, "Empty schema file.");
+        return NULL;
+    }
+
+    mod = lys_parse_mem_(ctx, addr, format, revision, implement);
+    ly_munmap(addr, length);
+
+    if (mod && !mod->parsed->filepath) {
+        lys_parse_set_filename(ctx, &mod->parsed->filepath, fd);
+    }
+
+    return mod;
+}
+
+API const struct lys_module *
+lys_parse_fd(struct ly_ctx *ctx, int fd, LYS_INFORMAT format)
+{
+    return lys_parse_fd_(ctx, fd, format, NULL, 1);
+}
+
+API const struct lys_module *
+lys_parse_path(struct ly_ctx *ctx, const char *path, LYS_INFORMAT format)
+{
+    int fd;
+    const struct lys_module *mod;
+    const char *rev, *dot, *filename;
+    size_t len;
+
+    LY_CHECK_ARG_RET(ctx, ctx, path, NULL);
+
+    fd = open(path, O_RDONLY);
+    LY_CHECK_ERR_RET(fd == -1, LOGERR(ctx, LY_ESYS, "Opening file \"%s\" failed (%s).", path, strerror(errno)), NULL);
+
+    mod = lys_parse_fd(ctx, fd, format);
+    close(fd);
+    LY_CHECK_RET(!mod, NULL);
+
+    /* check that name and revision match filename */
+    filename = strrchr(path, '/');
+    if (!filename) {
+        filename = path;
+    } else {
+        filename++;
+    }
+    rev = strchr(filename, '@');
+    dot = strrchr(filename, '.');
+
+    /* name */
+    len = strlen(mod->parsed->name);
+    if (strncmp(filename, mod->parsed->name, len) ||
+            ((rev && rev != &filename[len]) || (!rev && dot != &filename[len]))) {
+        LOGWRN(ctx, "File name \"%s\" does not match module name \"%s\".", filename, mod->parsed->name);
+    }
+    if (rev) {
+        len = dot - ++rev;
+        if (!mod->parsed->revs || len != 10 || strncmp(LY_ARRAY_INDEX(mod->parsed->revs, 0, struct lysp_revision)->rev, rev, len)) {
+            LOGWRN(ctx, "File name \"%s\" does not match module revision \"%s\".", filename,
+                   mod->parsed->revs ? LY_ARRAY_INDEX(mod->parsed->revs, 0, struct lysp_revision)->rev : "none");
+        }
+    }
+
+    if (!mod->parsed->filepath) {
+        /* store URI */
+        char rpath[PATH_MAX];
+        if (realpath(path, rpath) != NULL) {
+            mod->parsed->filepath = lydict_insert(ctx, rpath, 0);
+        } else {
+            mod->parsed->filepath = lydict_insert(ctx, path, 0);
+        }
+    }
+
+    return mod;
+}
+
diff --git a/src/tree_schema.h b/src/tree_schema.h
index 8aa9cb4..cee90f5 100644
--- a/src/tree_schema.h
+++ b/src/tree_schema.h
@@ -17,6 +17,59 @@
 
 #include <stdint.h>
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * @brief XPath representation.
+ */
+struct lyxp_expr;
+
+/**
+ * @brief Macro selector for other LY_ARRAY_* macros, do not use directly!
+ */
+#define LY_ARRAY_SELECT(_1, _2, NAME, ...) NAME
+
+/**
+ * @brief Get void pointer to the item on the INDEX in the ARRAY
+ */
+#define LY_ARRAY_INDEX1(ARRAY, INDEX) ((void*)((uint32_t*)((ARRAY) + INDEX) + 1))
+
+/**
+ * @brief Get the TYPE pointer to the item on the INDEX in the ARRAY
+ */
+#define LY_ARRAY_INDEX2(ARRAY, INDEX, TYPE) ((TYPE*)((uint32_t*)((ARRAY) + INDEX) + 1))
+
+/**
+ * @brief Helper macro to go through sized-arrays with a pointer iterator.
+ *
+ * Use with opening curly bracket (`{`).
+ *
+ * @param[in] ARRAY Array to go through
+ * @param[in] TYPE Type of the records in the ARRAY
+ * @param[out] ITER Iterating pointer to the item being processed in each loop
+ */
+#define LY_ARRAY_FOR_ITER(ARRAY, TYPE, ITER) \
+    for (ITER = LY_ARRAY_INDEX1(ARRAY, 0); \
+         (ARRAY) && ((void*)ITER - (void*)ARRAY - sizeof(uint32_t))/(sizeof(TYPE)) < (*(uint32_t*)(ARRAY)); \
+         ITER = (void*)((TYPE*)ITER + 1))
+
+/**
+ * @brief Helper macro to go through sized-arrays with a numeric iterator.
+ *
+ * Use with opening curly bracket (`{`).
+ *
+ * To access an item with the INDEX value, use always LY_ARRAY_INDEX macro!
+ *
+ * @param[in] ARRAY Array to go through
+ * @param[out] INDEX Iterating index of the item being processed in each loop
+ */
+#define LY_ARRAY_FOR_INDEX(ARRAY, INDEX) \
+    for (INDEX = 0; \
+         ARRAY && INDEX < (*((uint32_t*)(ARRAY))); \
+         ++INDEX)
+
 /**
  * @defgroup schematree Schema Tree
  * @{
@@ -25,14 +78,38 @@
  */
 
 /**
- * @brief Helper macro to go through 0-terminated arrays
+ * @brief Get (optionally TYPEd) pointer to the item on the INDEX in the ARRAY
  *
- * Use with opening curly bracket '{'.
- *
- * @param[in] ARRAY Array to go through
- * @param[out] ITER Numeric iterator storing available indexes of the ARRAY
+ *     LY_ARRAY_INDEX(ARRAY, INDEX [, TYPE])
  */
-#define LY_ARRAY_FOR(ARRAY, ITER) for (ITER = 0; (ARRAY) && *((uint8_t *)((ARRAY) + ITER)); ++ITER)
+#define LY_ARRAY_INDEX(ARRAY, ...) LY_ARRAY_SELECT(__VA_ARGS__, LY_ARRAY_INDEX2, LY_ARRAY_INDEX1)(ARRAY, __VA_ARGS__)
+
+/**
+ * @brief Get a number of records in the ARRAY.
+ *
+ * Does not check if array exists!
+ */
+#define LY_ARRAY_SIZE(ARRAY) (*((uint32_t*)(ARRAY)))
+
+/**
+ * @brief Sized-array iterator (for-loop).
+ *
+ * Use with opening curly bracket (`{`).
+ *
+ * There are 2 variants:
+ *
+ *     LY_ARRAY_FOR(ARRAY, TYPE, ITER)
+ *
+ * Where ARRAY is a sized-array to go through, TYPE is the type of the items in the ARRAY and ITER is a pointer variable
+ * providing the items of the ARRAY in the loops. This functionality is provided by LY_ARRAY_FOR_ITER macro
+ *
+ *     LY_ARRAY_FOR(ARRAY, INDEX)
+ *
+ * The ARRAY is again a sized-array to go through, the INDEX is a variable (unsigned integer) for storing iterating ARRAY's index
+ * to access the items of ARRAY in the loops. The INDEX is supposed to be used via LY_ARRAY_INDEX macro which can provide the item
+ * in the loop body. This functionality is provided by LY_ARRAY_FOR_INDEX macro.
+ */
+#define LY_ARRAY_FOR(ARRAY, ...) LY_ARRAY_SELECT(__VA_ARGS__, LY_ARRAY_FOR_ITER, LY_ARRAY_FOR_INDEX)(ARRAY, __VA_ARGS__)
 
 /**
  * @brief Macro to iterate via all sibling elements without affecting the list itself
@@ -40,7 +117,7 @@
  * Works for all types of nodes despite it is data or schema tree, but all the
  * parameters must be pointers to the same type.
  *
- * Use with opening curly bracket '{'. All parameters must be of the same type.
+ * Use with opening curly bracket (`{`). All parameters must be of the same type.
  *
  * @param START Pointer to the starting element.
  * @param ELEM Iterator.
@@ -54,7 +131,7 @@
  * @ingroup datatree
  * @brief Macro to iterate via all sibling elements allowing to modify the list itself (e.g. removing elements)
  *
- * Use with opening curly bracket '{'. All parameters must be of the same type.
+ * Use with opening curly bracket (`{`). All parameters must be of the same type.
  *
  * @param START Pointer to the starting element.
  * @param NEXT Temporary storage to allow removing of the current iterator content.
@@ -107,7 +184,7 @@
     const char *prefix;              /**< prefix for the data from the imported schema (mandatory) */
     const char *dsc;                 /**< description */
     const char *ref;                 /**< reference */
-    struct lysp_ext_instance *exts;  /**< list of the extension instances (0-terminated) */
+    struct lysp_ext_instance *exts;  /**< list of the extension instances ([sized array](@ref sizedarrays)) */
     char rev[LY_REV_SIZE];           /**< revision-date of the imported module */
 };
 
@@ -118,7 +195,7 @@
     const char *name;                /**< name of the submodule to include (mandatory) */
     const char *dsc;                 /**< description */
     const char *ref;                 /**< reference */
-    struct lysp_ext_instance *exts;  /**< list of the extension instances (0-terminated) */
+    struct lysp_ext_instance *exts;  /**< list of the extension instances ([sized array](@ref sizedarrays)) */
     char rev[LY_REV_SIZE];           /**< revision-date of the included submodule */
 };
 
@@ -130,7 +207,7 @@
     const char *argument;            /**< argument name, NULL if not specified */
     const char *dsc;                 /**< description statement */
     const char *ref;                 /**< reference statement */
-    struct lysp_ext_instance *exts;  /**< list of the extension instances (0-terminated) */
+    struct lysp_ext_instance *exts;  /**< list of the extension instances ([sized array](@ref sizedarrays)) */
     uint16_t flags;                  /**< LYS_STATUS_* and LYS_YINELEM values (@ref snodeflags) */
 };
 
@@ -214,7 +291,7 @@
     const char **iffeatures;         /**< list of if-feature expressions (NULL-terminated) */
     const char *dsc;                 /**< description statement */
     const char *ref;                 /**< reference statement  */
-    struct lysp_ext_instance *exts;  /**< list of the extension instances (0-terminated) */
+    struct lysp_ext_instance *exts;  /**< list of the extension instances ([sized array](@ref sizedarrays)) */
     uint16_t flags;                  /**< [schema node flags](@ref snodeflags) - only LYS_STATUS_* values allowed */
 };
 
@@ -227,7 +304,7 @@
     const char **bases;              /**< list of base identifiers (NULL-terminated) */
     const char *dsc;                 /**< description statement */
     const char *ref;                 /**< reference statement */
-    struct lysp_ext_instance *exts;  /**< list of the extension instances (0-terminated) */
+    struct lysp_ext_instance *exts;  /**< list of the extension instances ([sized array](@ref sizedarrays)) */
     uint16_t flags;                  /**< [schema node flags](@ref snodeflags) - only LYS_STATUS_ values are allowed */
 };
 
@@ -242,7 +319,7 @@
     const char *eapptag;             /**< error-app-tag value */
     const char *dsc;                 /**< description */
     const char *ref;                 /**< reference */
-    struct lysp_ext_instance *exts;  /**< list of the extension instances (0-terminated) */
+    struct lysp_ext_instance *exts;  /**< list of the extension instances ([sized array](@ref sizedarrays)) */
 };
 
 /**
@@ -252,7 +329,7 @@
     char rev[LY_REV_SIZE];           /**< revision date (madatory) */
     const char *dsc;                 /**< description statement */
     const char *ref;                 /**< reference statement */
-    struct lysp_ext_instance *exts;  /**< list of the extension instances (0-terminated) */
+    struct lysp_ext_instance *exts;  /**< list of the extension instances ([sized array](@ref sizedarrays)) */
 };
 
 /**
@@ -264,7 +341,7 @@
     const char *ref;                 /**< reference statement */
     int64_t value;                   /**< enum's value or bit's position */
     const char **iffeatures;         /**< list of if-feature expressions (NULL-terminated) */
-    struct lysp_ext_instance *exts;  /**< list of the extension instances (0-terminated) */
+    struct lysp_ext_instance *exts;  /**< list of the extension instances ([sized array](@ref sizedarrays)) */
     uint16_t flags;                  /**< [schema node flags](@ref snodeflags) - only LYS_STATUS_ and LYS_SET_VALUE
                                           values are allowed */
 };
@@ -278,13 +355,13 @@
     const char *name;                /**< name of the type (mandatory) */
     struct lysp_restr *range;        /**< allowed values range - numerical, decimal64 */
     struct lysp_restr *length;       /**< allowed length of the value - string, binary */
-    struct lysp_restr *patterns;     /**< list of patterns (0-terminated) - string */
-    struct lysp_type_enum *enums;    /**< list of enum-stmts (0-terminated) - enum */
-    struct lysp_type_enum *bits;     /**< list of bit-stmts (0-terminated) - bits */
+    struct lysp_restr *patterns;     /**< list of patterns ([sized array](@ref sizedarrays)) - string */
+    struct lysp_type_enum *enums;    /**< list of enum-stmts ([sized array](@ref sizedarrays)) - enum */
+    struct lysp_type_enum *bits;     /**< list of bit-stmts ([sized array](@ref sizedarrays)) - bits */
     const char *path;                /**< path - leafref */
     const char **bases;              /**< list of base identifiers (NULL-terminated) - identityref */
-    struct lysp_type *types;         /**< list of sub-types (0-terminated) - union */
-    struct lysp_ext_instance *exts;  /**< list of the extension instances (0-terminated) */
+    struct lysp_type *types;         /**< list of sub-types ([sized array](@ref sizedarrays)) - union */
+    struct lysp_ext_instance *exts;  /**< list of the extension instances ([sized array](@ref sizedarrays)) */
 
     uint8_t fraction_digits;         /**< number of fraction digits - decimal64 */
     uint8_t require_instance;        /**< require-instance flag - leafref, instance */
@@ -300,7 +377,7 @@
     const char *dflt;                /**< default value of the newly defined type */
     const char *dsc;                 /**< description statement */
     const char *ref;                 /**< reference statement */
-    struct lysp_ext_instance *exts;  /**< list of the extension instances (0-terminated) */
+    struct lysp_ext_instance *exts;  /**< list of the extension instances ([sized array](@ref sizedarrays)) */
     struct lysp_type type;           /**< base type from which the typedef is derived (mandatory) */
     uint16_t flags;                  /**< [schema node flags](@ref snodeflags) - only LYS_STATUS_* values allowed */
 };
@@ -312,12 +389,12 @@
     const char *name;                /**< grouping name (mandatory) */
     const char *dsc;                 /**< description statement */
     const char *ref;                 /**< reference statement */
-    struct lysp_tpdf *typedefs;      /**< list of typedefs (0-terminated) */
-    struct lysp_grp *groupings;      /**< list of groupings (0-terminated) */
+    struct lysp_tpdf *typedefs;      /**< list of typedefs ([sized array](@ref sizedarrays)) */
+    struct lysp_grp *groupings;      /**< list of groupings ([sized array](@ref sizedarrays)) */
     struct lysp_node *data;          /**< list of data nodes (linked list) */
-    struct lysp_action *actions;     /**< list of actions (0-terminated) */
-    struct lysp_notif *notifs;       /**< list of notifications (0-terminated) */
-    struct lysp_ext_instance *exts;  /**< list of the extension instances (0-terminated) */
+    struct lysp_action *actions;     /**< list of actions ([sized array](@ref sizedarrays)) */
+    struct lysp_notif *notifs;       /**< list of notifications ([sized array](@ref sizedarrays)) */
+    struct lysp_ext_instance *exts;  /**< list of the extension instances ([sized array](@ref sizedarrays)) */
     uint16_t flags;                  /**< [schema node flags](@ref snodeflags) - only LYS_STATUS_* values are allowed */
 };
 
@@ -328,7 +405,7 @@
     const char *cond;                /**< specified condition (mandatory) */
     const char *dsc;                 /**< description statement */
     const char *ref;                 /**< reference statement */
-    struct lysp_ext_instance *exts;  /**< list of the extension instances (0-terminated) */
+    struct lysp_ext_instance *exts;  /**< list of the extension instances ([sized array](@ref sizedarrays)) */
 };
 
 /**
@@ -339,12 +416,12 @@
     const char *dsc;                 /**< description statement */
     const char *ref;                 /**< reference statement */
     const char **iffeatures;         /**< list of if-feature expressions (NULL-terminated) */
-    struct lysp_restr *musts;        /**< list of must restrictions (0-terminated) */
+    struct lysp_restr *musts;        /**< list of must restrictions ([sized array](@ref sizedarrays)) */
     const char *presence;            /**< presence description */
     const char **dflts;              /**< list of default values (NULL-terminated) */
     uint32_t min;                    /**< min-elements constraint */
     uint32_t max;                    /**< max-elements constraint, 0 means unbounded */
-    struct lysp_ext_instance *exts;  /**< list of the extension instances (0-terminated) */
+    struct lysp_ext_instance *exts;  /**< list of the extension instances ([sized array](@ref sizedarrays)) */
     uint16_t flags;                  /**< [schema node flags](@ref snodeflags) */
 };
 
@@ -358,9 +435,9 @@
     struct lysp_when *when;          /**< when statement */
     const char **iffeatures;         /**< list of if-feature expressions (NULL-terminated) */
     struct lysp_node *child;         /**< list of data nodes (linked list) */
-    struct lysp_action *actions;     /**< list of actions (0-terminated) */
-    struct lysp_notif *notifs;       /**< list of notifications (0-terminated) */
-    struct lysp_ext_instance *exts;  /**< list of the extension instances (0-terminated) */
+    struct lysp_action *actions;     /**< list of actions ([sized array](@ref sizedarrays)) */
+    struct lysp_notif *notifs;       /**< list of notifications ([sized array](@ref sizedarrays)) */
+    struct lysp_ext_instance *exts;  /**< list of the extension instances ([sized array](@ref sizedarrays)) */
     uint16_t flags;                  /**< [schema node flags](@ref snodeflags) - only LYS_STATUS_* values are allowed */
 };
 
@@ -380,15 +457,15 @@
 struct lysp_deviate {
     uint8_t mod;                     /**< [type](@ref deviatetypes) of the deviate modification */
     struct lysp_deviate *next;       /**< next deviate structure in the list */
-    struct lysp_ext_instance *exts;  /**< list of the extension instances (0-terminated) */
+    struct lysp_ext_instance *exts;  /**< list of the extension instances ([sized array](@ref sizedarrays)) */
 };
 
 struct lysp_deviate_add {
     uint8_t mod;                     /**< [type](@ref deviatetypes) of the deviate modification */
     struct lysp_deviate *next;       /**< next deviate structure in the list */
-    struct lysp_ext_instance *exts;  /**< list of the extension instances (0-terminated) */
+    struct lysp_ext_instance *exts;  /**< list of the extension instances ([sized array](@ref sizedarrays)) */
     const char *units;               /**< units of the values */
-    struct lysp_restr *musts;        /**< list of must restrictions (0-terminated) */
+    struct lysp_restr *musts;        /**< list of must restrictions ([sized array](@ref sizedarrays)) */
     const char **uniques;            /**< list of uniques specifications (NULL-terminated) */
     const char **dflts;              /**< list of default values (NULL-terminated) */
     uint16_t flags;                  /**< [schema node flags](@ref snodeflags) */
@@ -399,9 +476,9 @@
 struct lysp_deviate_del {
     uint8_t mod;                     /**< [type](@ref deviatetypes) of the deviate modification */
     struct lysp_deviate *next;       /**< next deviate structure in the list */
-    struct lysp_ext_instance *exts;  /**< list of the extension instances (0-terminated) */
+    struct lysp_ext_instance *exts;  /**< list of the extension instances ([sized array](@ref sizedarrays)) */
     const char *units;               /**< units of the values */
-    struct lysp_restr *musts;        /**< list of must restrictions (0-terminated) */
+    struct lysp_restr *musts;        /**< list of must restrictions ([sized array](@ref sizedarrays)) */
     const char **uniques;            /**< list of uniques specifications (NULL-terminated) */
     const char **dflts;              /**< list of default values (NULL-terminated) */
     uint16_t flags;                  /**< [schema node flags](@ref snodeflags) */
@@ -410,7 +487,7 @@
 struct lysp_deviate_rpl {
     uint8_t mod;                     /**< [type](@ref deviatetypes) of the deviate modification */
     struct lysp_deviate *next;       /**< next deviate structure in the list */
-    struct lysp_ext_instance *exts;  /**< list of the extension instances (0-terminated) */
+    struct lysp_ext_instance *exts;  /**< list of the extension instances ([sized array](@ref sizedarrays)) */
     struct lysp_type *type;          /**< type of the node */
     const char *units;               /**< units of the values */
     const char *dflt;                /**< default value */
@@ -424,7 +501,7 @@
     const char *dsc;                 /**< description statement */
     const char *ref;                 /**< reference statement */
     struct lysp_deviate* deviates;   /**< list of deviate specifications (linked list) */
-    struct lysp_ext_instance *exts;  /**< list of the extension instances (0-terminated) */
+    struct lysp_ext_instance *exts;  /**< list of the extension instances ([sized array](@ref sizedarrays)) */
 };
 
 #define LYS_CONFIG_W     0x01        /**< config true; */
@@ -435,18 +512,20 @@
 #define LYS_STATUS_OBSLT 0x20        /**< status obsolete; */
 #define LYS_STATUS_MASK  0x38        /**< mask for status value */
 #define LYS_MAND_TRUE    0x40        /**< mandatory true; applicable only to
-                                          ::lys_node_choice, ::lys_node_leaf and ::lys_node_anydata */
+                                          ::lysp_node_choice/::lysc_node_choice, ::lysp_node_leaf/::lysc_node_leaf
+                                          and ::lysp_node_anydata/::lysc_node_anydata */
 #define LYS_MAND_FALSE   0x80        /**< mandatory false; applicable only to
-                                          ::lys_node_choice, ::lys_node_leaf and ::lys_node_anydata */
+                                          ::lysp_node_choice/::lysc_node_choice, ::lysp_node_leaf/::lysc_node_leaf
+                                          and ::lysp_node_anydata/::lysc_node_anydata */
 #define LYS_MAND_MASK    0xc0        /**< mask for mandatory values */
 #define LYS_ORDBY_SYSTEM 0x100       /**< ordered-by system lists, applicable only to
-                                          ::lys_node_list and ::lys_node_leaflist */
+                                          ::lysp_node_list/lysc_node_list and ::lysp_node_leaflist/::lysc_node_list */
 #define LYS_ORDBY_USER   0x200       /**< ordered-by user lists, applicable only to
-                                          ::lys_node_list and ::lys_node_leaflist */
+                                          ::lysp_node_list/lysc_node_list and ::lysp_node_leaflist/::lysc_node_list */
 #define LYS_ORDBY_MASK   0x300       /**< mask for ordered-by flags */
-#define LYS_FENABLED     0x100       /**< feature enabled flag, applicable only to ::lys_feature */
+#define LYS_FENABLED     0x100       /**< feature enabled flag, applicable only to ::lysp_feature/::lysc_feature */
 #define LYS_AUTOASSIGNED 0x01        /**< value was auto-assigned, applicable only to
-                                          ::lys_type enum and bits flags */
+                                          ::lysp_type/::lysc_type enum and bits flags */
 #define LYS_YINELEM_TRUE 0x01        /**< yin-element true for extension's argument */
 #define LYS_YINELEM_FALSE 0x02       /**< yin-element false for extension's argument */
 #define LYS_YINELEM_MASK 0x03        /**< mask for yin-element value */
@@ -467,7 +546,7 @@
     const char *ref;                 /**< reference statement */
     struct lysp_when *when;          /**< when statement */
     const char **iffeatures;         /**< list of if-feature expressions (NULL-terminated) */
-    struct lysp_ext_instance *exts;  /**< list of the extension instances (0-terminated) */
+    struct lysp_ext_instance *exts;  /**< list of the extension instances ([sized array](@ref sizedarrays)) */
 };
 
 /**
@@ -482,16 +561,16 @@
     const char *ref;                 /**< reference statement */
     struct lysp_when *when;          /**< when statement */
     const char **iffeatures;         /**< list of if-feature expressions (NULL-terminated) */
-    struct lysp_ext_instance *exts;  /**< list of the extension instances (0-terminated) */
+    struct lysp_ext_instance *exts;  /**< list of the extension instances ([sized array](@ref sizedarrays)) */
 
     /* container */
-    struct lysp_restr *musts;        /**< list of must restrictions (0-terminated) */
+    struct lysp_restr *musts;        /**< list of must restrictions ([sized array](@ref sizedarrays)) */
     const char *presence;            /**< presence description */
-    struct lysp_tpdf *typedefs;      /**< list of typedefs (0-terminated) */
-    struct lysp_grp *groupings;      /**< list of groupings (0-terminated) */
+    struct lysp_tpdf *typedefs;      /**< list of typedefs ([sized array](@ref sizedarrays)) */
+    struct lysp_grp *groupings;      /**< list of groupings ([sized array](@ref sizedarrays)) */
     struct lysp_node *child;         /**< list of data nodes (linked list) */
-    struct lysp_action *actions;     /**< list of actions (0-terminated) */
-    struct lysp_notif *notifs;       /**< list of notifications (0-terminated) */
+    struct lysp_action *actions;     /**< list of actions ([sized array](@ref sizedarrays)) */
+    struct lysp_notif *notifs;       /**< list of notifications ([sized array](@ref sizedarrays)) */
 };
 
 struct lysp_node_leaf {
@@ -503,10 +582,10 @@
     const char *ref;                 /**< reference statement */
     struct lysp_when *when;          /**< when statement */
     const char **iffeatures;         /**< list of if-feature expressions (NULL-terminated) */
-    struct lysp_ext_instance *exts;  /**< list of the extension instances (0-terminated) */
+    struct lysp_ext_instance *exts;  /**< list of the extension instances ([sized array](@ref sizedarrays)) */
 
     /* leaf */
-    struct lysp_restr *musts;        /**< list of must restrictions (0-terminated) */
+    struct lysp_restr *musts;        /**< list of must restrictions ([sized array](@ref sizedarrays)) */
     struct lysp_type type;           /**< type of the leaf node (mandatory) */
     const char *units;               /**< units of the leaf's type */
     const char *dflt;                /**< default value */
@@ -521,10 +600,10 @@
     const char *ref;                 /**< reference statement */
     struct lysp_when *when;          /**< when statement */
     const char **iffeatures;         /**< list of if-feature expressions (NULL-terminated) */
-    struct lysp_ext_instance *exts;  /**< list of the extension instances (0-terminated) */
+    struct lysp_ext_instance *exts;  /**< list of the extension instances ([sized array](@ref sizedarrays)) */
 
     /* leaf-list */
-    struct lysp_restr *musts;        /**< list of must restrictions (0-terminated) */
+    struct lysp_restr *musts;        /**< list of must restrictions ([sized array](@ref sizedarrays)) */
     struct lysp_type type;           /**< type of the leaf node (mandatory) */
     const char *units;               /**< units of the leaf's type */
     const char **dflts;              /**< list of default values (NULL-terminated) */
@@ -541,16 +620,16 @@
     const char *ref;                 /**< reference statement */
     struct lysp_when *when;          /**< when statement */
     const char **iffeatures;         /**< list of if-feature expressions (NULL-terminated) */
-    struct lysp_ext_instance *exts;  /**< list of the extension instances (0-terminated) */
+    struct lysp_ext_instance *exts;  /**< list of the extension instances ([sized array](@ref sizedarrays)) */
 
     /* list */
-    struct lysp_restr *musts;        /**< list of must restrictions (0-terminated) */
+    struct lysp_restr *musts;        /**< list of must restrictions ([sized array](@ref sizedarrays)) */
     const char *key;                 /**< keys specification */
-    struct lysp_tpdf *typedefs;      /**< list of typedefs (0-terminated) */
-    struct lysp_grp *groupings;      /**< list of groupings (0-terminated) */
+    struct lysp_tpdf *typedefs;      /**< list of typedefs ([sized array](@ref sizedarrays)) */
+    struct lysp_grp *groupings;      /**< list of groupings ([sized array](@ref sizedarrays)) */
     struct lysp_node *child;         /**< list of data nodes (linked list) */
-    struct lysp_action *actions;     /**< list of actions (0-terminated) */
-    struct lysp_notif *notifs;       /**< list of notifications (0-terminated) */
+    struct lysp_action *actions;     /**< list of actions ([sized array](@ref sizedarrays)) */
+    struct lysp_notif *notifs;       /**< list of notifications ([sized array](@ref sizedarrays)) */
     const char **uniques;            /**< list of uniques specifications (NULL-terminated) */
     uint32_t min;                    /**< min-elements constraint */
     uint32_t max;                    /**< max-elements constraint, 0 means unbounded */
@@ -565,7 +644,7 @@
     const char *ref;                 /**< reference statement */
     struct lysp_when *when;          /**< when statement */
     const char **iffeatures;         /**< list of if-feature expressions (NULL-terminated) */
-    struct lysp_ext_instance *exts;  /**< list of the extension instances (0-terminated) */
+    struct lysp_ext_instance *exts;  /**< list of the extension instances ([sized array](@ref sizedarrays)) */
 
     /* choice */
     struct lysp_node *child;         /**< list of data nodes (linked list) */
@@ -581,7 +660,7 @@
     const char *ref;                 /**< reference statement */
     struct lysp_when *when;          /**< when statement */
     const char **iffeatures;         /**< list of if-feature expressions (NULL-terminated) */
-    struct lysp_ext_instance *exts;  /**< list of the extension instances (0-terminated) */
+    struct lysp_ext_instance *exts;  /**< list of the extension instances ([sized array](@ref sizedarrays)) */
 
     /* case */
     struct lysp_node *child;         /**< list of data nodes (linked list) */
@@ -596,10 +675,10 @@
     const char *ref;                 /**< reference statement */
     struct lysp_when *when;          /**< when statement */
     const char **iffeatures;         /**< list of if-feature expressions (NULL-terminated) */
-    struct lysp_ext_instance *exts;  /**< list of the extension instances (0-terminated) */
+    struct lysp_ext_instance *exts;  /**< list of the extension instances ([sized array](@ref sizedarrays)) */
 
     /* anyxml/anydata */
-    struct lysp_restr *musts;        /**< list of must restrictions (0-terminated) */
+    struct lysp_restr *musts;        /**< list of must restrictions ([sized array](@ref sizedarrays)) */
 };
 
 struct lysp_node_uses {
@@ -611,22 +690,22 @@
     const char *ref;                 /**< reference statement */
     struct lysp_when *when;          /**< when statement */
     const char **iffeatures;         /**< list of if-feature expressions (NULL-terminated) */
-    struct lysp_ext_instance *exts;  /**< list of the extension instances (0-terminated) */
+    struct lysp_ext_instance *exts;  /**< list of the extension instances ([sized array](@ref sizedarrays)) */
 
     /* uses */
-    struct lysp_refine *refines;     /**< list of uses's refines (0-terminated) */
-    struct lysp_augment *augments;   /**< list of uses's augment (0-terminated) */
+    struct lysp_refine *refines;     /**< list of uses's refines ([sized array](@ref sizedarrays)) */
+    struct lysp_augment *augments;   /**< list of uses's augment ([sized array](@ref sizedarrays)) */
 };
 
 /**
  * @brief YANG input-stmt and output-stmt
  */
 struct lysp_action_inout {
-    struct lysp_restr *musts;        /**< list of must restrictions (0-terminated) */
-    struct lysp_tpdf *typedefs;      /**< list of typedefs (0-terminated) */
-    struct lysp_grp *groupings;      /**< list of groupings (0-terminated) */
+    struct lysp_restr *musts;        /**< list of must restrictions ([sized array](@ref sizedarrays)) */
+    struct lysp_tpdf *typedefs;      /**< list of typedefs ([sized array](@ref sizedarrays)) */
+    struct lysp_grp *groupings;      /**< list of groupings ([sized array](@ref sizedarrays)) */
     struct lysp_node *data;          /**< list of data nodes (linked list) */
-    struct lysp_ext_instance *exts;  /**< list of the extension instances (0-terminated) */
+    struct lysp_ext_instance *exts;  /**< list of the extension instances ([sized array](@ref sizedarrays)) */
 };
 
 /**
@@ -637,11 +716,11 @@
     const char *dsc;                 /**< description statement */
     const char *ref;                 /**< reference statement */
     const char **iffeatures;         /**< list of if-feature expressions (NULL-terminated) */
-    struct lysp_tpdf *typedefs;      /**< list of typedefs (0-terminated) */
-    struct lysp_grp *groupings;      /**< list of groupings (0-terminated) */
+    struct lysp_tpdf *typedefs;      /**< list of typedefs ([sized array](@ref sizedarrays)) */
+    struct lysp_grp *groupings;      /**< list of groupings ([sized array](@ref sizedarrays)) */
     struct lysp_action_inout *input; /**< RPC's/Action's input */
     struct lysp_action_inout *output;/**< RPC's/Action's output */
-    struct lysp_ext_instance *exts;  /**< list of the extension instances (0-terminated) */
+    struct lysp_ext_instance *exts;  /**< list of the extension instances ([sized array](@ref sizedarrays)) */
     uint16_t flags;                  /**< [schema node flags](@ref snodeflags) */
 };
 
@@ -653,11 +732,11 @@
     const char *dsc;                 /**< description statement */
     const char *ref;                 /**< reference statement */
     const char **iffeatures;         /**< list of if-feature expressions (NULL-terminated) */
-    struct lysp_restr *musts;        /**< list of must restrictions (0-terminated) */
-    struct lysp_tpdf *typedefs;      /**< list of typedefs (0-terminated) */
-    struct lysp_grp *groupings;      /**< list of groupings (0-terminated) */
+    struct lysp_restr *musts;        /**< list of must restrictions ([sized array](@ref sizedarrays)) */
+    struct lysp_tpdf *typedefs;      /**< list of typedefs ([sized array](@ref sizedarrays)) */
+    struct lysp_grp *groupings;      /**< list of groupings ([sized array](@ref sizedarrays)) */
     struct lysp_node *data;          /**< list of data nodes (linked list) */
-    struct lysp_ext_instance *exts;  /**< list of the extension instances (0-terminated) */
+    struct lysp_ext_instance *exts;  /**< list of the extension instances ([sized array](@ref sizedarrays)) */
     uint16_t flags;                  /**< [schema node flags](@ref snodeflags) - only LYS_STATUS_* values are allowed */
 };
 
@@ -686,25 +765,25 @@
         const char *belongsto;       /**< belongs to parent module (submodule - mandatory) */
     };
     const char *prefix;              /**< module prefix or submodule belongsto prefix of main module (mandatory) */
-    struct lysp_import *imports;     /**< list of imported modules (0-terminated) */
-    struct lysp_include *includes;   /**< list of included submodules (0-terminated) */
+    struct lysp_import *imports;     /**< list of imported modules ([sized array](@ref sizedarrays)) */
+    struct lysp_include *includes;   /**< list of included submodules ([sized array](@ref sizedarrays)) */
     const char *org;                 /**< party/company responsible for the module */
     const char *contact;             /**< contact information for the module */
     const char *dsc;                 /**< description of the module */
     const char *ref;                 /**< cross-reference for the module */
-    struct lysp_revision *revs;      /**< list of the module revisions (0-terminated), the first revision
+    struct lysp_revision *revs;      /**< list of the module revisions ([sized array](@ref sizedarrays)), the first revision
                                           in the list is always the last (newest) revision of the module */
-    struct lysp_ext *extensions;     /**< list of extension statements (0-terminated) */
-    struct lysp_feature *features;   /**< list of feature definitions (0-terminated) */
-    struct lysp_ident *identities;   /**< list of identities (0-terminated) */
-    struct lysp_tpdf *typedefs;      /**< list of typedefs (0-terminated) */
-    struct lysp_grp *groupings;      /**< list of groupings (0-terminated) */
+    struct lysp_ext *extensions;     /**< list of extension statements ([sized array](@ref sizedarrays)) */
+    struct lysp_feature *features;   /**< list of feature definitions ([sized array](@ref sizedarrays)) */
+    struct lysp_ident *identities;   /**< list of identities ([sized array](@ref sizedarrays)) */
+    struct lysp_tpdf *typedefs;      /**< list of typedefs ([sized array](@ref sizedarrays)) */
+    struct lysp_grp *groupings;      /**< list of groupings ([sized array](@ref sizedarrays)) */
     struct lysp_node *data;          /**< list of module's top-level data nodes (linked list) */
-    struct lysp_augment *augments;   /**< list of augments (0-terminated) */
-    struct lysp_action *rpcs;        /**< list of RPCs (0-terminated) */
-    struct lysp_notif *notifs;       /**< list of notifications (0-terminated) */
-    struct lysp_deviation *deviations; /**< list of deviations (0-terminated) */
-    struct lysp_ext_instance *exts; /**< list of the extension instances (0-terminated) */
+    struct lysp_augment *augments;   /**< list of augments ([sized array](@ref sizedarrays)) */
+    struct lysp_action *rpcs;        /**< list of RPCs ([sized array](@ref sizedarrays)) */
+    struct lysp_notif *notifs;       /**< list of notifications ([sized array](@ref sizedarrays)) */
+    struct lysp_deviation *deviations; /**< list of deviations ([sized array](@ref sizedarrays)) */
+    struct lysp_ext_instance *exts; /**< list of the extension instances ([sized array](@ref sizedarrays)) */
 
     uint8_t submodule:1;             /**< flag to distinguish main modules and submodules */
     uint8_t implemented:1;           /**< flag if the module is implemented, not just imported */
@@ -721,18 +800,64 @@
 void lysp_module_free(struct lysp_module *module);
 
 /**
- * @brief Compiled YANG schema tree structure representing YANG module.
- *
- * Semantically validated YANG schema tree for data tree parsing.
- * Contains only the necessary information for the data validation.
+ * @brief YANG when-stmt
  */
-struct lysc_module {
+struct lysc_when {
+    struct lyxp_expr *cond;          /**< XPath when condition */
+    struct lysc_ext_instance *exts;  /**< list of the extension instances ([sized array](@ref sizedarrays)) */
+};
+
+/**
+ * @brief YANG feature-stmt
+ */
+struct lysc_feature {
+    const char *name;                /**< feature name (mandatory) */
+    struct lysc_feature *depfeatures;/**< list of other features depending on this one ([sized array](@ref sizedarrays)) */
+    struct lysc_iffeature *iffeatures; /**< list of if-feature expressions ([sized array](@ref sizedarrays)) */
+    struct lysp_ext_instance *exts;  /**< list of the extension instances ([sized array](@ref sizedarrays)) */
+    uint16_t flags;                  /**< [schema node flags](@ref snodeflags) - only LYS_STATUS_* and
+                                          #LYS_FENABLED values allowed */
+};
+
+struct lysc_iffeature {
+    struct lysc_feature *features;   /**< array of pointers to the features used in expression, size depends on content of expr */
+    uint32_t expr[];                 /**< 2bits array describing the if-feature expression in prefix format */
 };
 
 /**
  * @brief Compiled YANG data node
  */
 struct lysc_node {
+    uint16_t nodetype;               /**< type of the node (mandatory) */
+    uint16_t flags;                  /**< [schema node flags](@ref snodeflags) */
+    struct lysp_node *sp;            /**< link to the simply parsed (SP) original of the node, NULL if the SP schema was removed. */
+    struct lysc_node *next;          /**< pointer to the next sibling node (NULL if there is no one) */
+    const char *name;                /**< node name (mandatory) */
+    struct lysc_when *when;          /**< when statement */
+    struct lysc_iffeature *iffeatures; /**< list of if-feature expressions ([sized array](@ref sizedarrays)) */
+    struct lysc_ext_instance *exts;  /**< list of the extension instances ([sized array](@ref sizedarrays)) */
+};
+
+/**
+ * @brief Compiled YANG schema tree structure representing YANG module.
+ *
+ * Semantically validated YANG schema tree for data tree parsing.
+ * Contains only the necessary information for the data validation.
+ */
+struct lysc_module {
+    struct ly_ctx *ctx;              /**< libyang context of the module (mandatory) */
+    const char *name;                /**< name of the module (mandatory) */
+    const char *ns;                  /**< namespace of the module (mandatory) */
+    const char *prefix;              /**< module prefix (mandatory) */
+
+
+    struct lysc_feature *features;   /**< list of feature definitions ([sized array](@ref sizedarrays)) */
+
+
+    uint8_t implemented:1;           /**< flag if the module is implemented, not just imported */
+    uint8_t latest_revision:1;       /**< flag if the module was loaded without specific revision and is
+                                          the latest revision found */
+    uint8_t version:4;               /**< yang-version (LYS_VERSION values) */
 };
 
 /**
@@ -743,6 +868,67 @@
     struct lysc_module *compiled;    /**< Compiled and fully validated YANG schema tree for data parsing */
 };
 
+
+/**
+ * @brief Load a schema into the specified context.
+ *
+ * @param[in] ctx libyang context where to process the data model.
+ * @param[in] data The string containing the dumped data model in the specified
+ * format.
+ * @param[in] format Format of the input data (YANG or YIN).
+ * @return Pointer to the data model structure or NULL on error.
+ */
+const struct lys_module *lys_parse_mem(struct ly_ctx *ctx, const char *data, LYS_INFORMAT format);
+
+/**
+ * @brief Read a schema from file descriptor into the specified context.
+ *
+ * \note Current implementation supports only reading data from standard (disk) file, not from sockets, pipes, etc.
+ *
+ * @param[in] ctx libyang context where to process the data model.
+ * @param[in] fd File descriptor of a regular file (e.g. sockets are not supported) containing the schema
+ *            in the specified format.
+ * @param[in] format Format of the input data (YANG or YIN).
+ * @return Pointer to the data model structure or NULL on error.
+ */
+const struct lys_module *lys_parse_fd(struct ly_ctx *ctx, int fd, LYS_INFORMAT format);
+
+/**
+ * @brief Load a schema into the specified context from a file.
+ *
+ * @param[in] ctx libyang context where to process the data model.
+ * @param[in] path Path to the file with the model in the specified format.
+ * @param[in] format Format of the input data (YANG or YIN).
+ * @return Pointer to the data model structure or NULL on error.
+ */
+const struct lys_module *lys_parse_path(struct ly_ctx *ctx, const char *path, LYS_INFORMAT format);
+
+/**
+ * @defgroup scflags Schema compile flags
+ * @ingroup schematree
+ *
+ * @{
+ */
+#define LYSC_OPT_FREE_SP 1           /**< Free the input printable schema */
+
+/**
+ * @}
+ */
+
+/**
+ * @brief Compile printable schema into a validated schema linking all the references.
+ *
+ * @param[in] sp Simple parsed printable schema to compile. Can be changed according to the provided options.
+ * @param[in] options Various options to modify compiler behavior, see [compile flags](@ref scflags).
+ * @param[out] sc Resulting compiled schema structure.
+ * @return LY_ERR value.
+ */
+LY_ERR lys_compile(struct lysp_module *sp, int options, struct lysc_module **sc);
+
 /** @} */
 
+#ifdef __cplusplus
+}
+#endif
+
 #endif /* LY_TREE_SCHEMA_H_ */
diff --git a/src/tree_schema_helpers.c b/src/tree_schema_helpers.c
new file mode 100644
index 0000000..852b485
--- /dev/null
+++ b/src/tree_schema_helpers.c
@@ -0,0 +1,107 @@
+/**
+ * @file tree_schema_helpers.c
+ * @author Radek Krejci <rkrejci@cesnet.cz>
+ * @brief Parsing and validation helper functions
+ *
+ * Copyright (c) 2015 - 2018 CESNET, z.s.p.o.
+ *
+ * This source code is licensed under BSD 3-Clause License (the "License").
+ * You may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     https://opensource.org/licenses/BSD-3-Clause
+ */
+#define _XOPEN_SOURCE
+
+#include <ctype.h>
+#include <limits.h>
+#include <time.h>
+
+#include "libyang.h"
+#include "common.h"
+#include "tree_schema_internal.h"
+
+LY_ERR
+lysp_check_prefix(struct ly_parser_ctx *ctx, struct lysp_module *module, const char **value)
+{
+    struct lysp_import *i;
+
+    if (module->prefix && &module->prefix != value && !strcmp(module->prefix, *value)) {
+        LOGVAL(ctx->ctx, LY_VLOG_LINE, &ctx->line, LYVE_REFERENCE,
+               "Prefix \"%s\" already used as module prefix.", *value);
+        return LY_EEXIST;
+    }
+    if (module->imports) {
+        LY_ARRAY_FOR(module->imports, struct lysp_import, i) {
+            if (i->prefix && &i->prefix != value && !strcmp(i->prefix, *value)) {
+                LOGVAL(ctx->ctx, LY_VLOG_LINE, &ctx->line, LYVE_REFERENCE,
+                       "Prefix \"%s\" already used to import \"%s\" module.", *value, i->name);
+                return LY_EEXIST;
+            }
+        }
+    }
+    return LY_SUCCESS;
+}
+
+LY_ERR
+lysp_check_date(struct ly_ctx *ctx, const char *date, int date_len, const char *stmt)
+{
+    int i;
+    struct tm tm, tm_;
+    char *r;
+
+    LY_CHECK_ARG_RET(ctx, date, LY_EINVAL);
+    LY_CHECK_ERR_RET(date_len != LY_REV_SIZE - 1, LOGARG(ctx, date_len), LY_EINVAL);
+
+    /* check format */
+    for (i = 0; i < date_len; i++) {
+        if (i == 4 || i == 7) {
+            if (date[i] != '-') {
+                goto error;
+            }
+        } else if (!isdigit(date[i])) {
+            goto error;
+        }
+    }
+
+    /* check content, e.g. 2018-02-31 */
+    memset(&tm, 0, sizeof tm);
+    r = strptime(date, "%Y-%m-%d", &tm);
+    if (!r || r != &date[LY_REV_SIZE - 1]) {
+        goto error;
+    }
+    memcpy(&tm_, &tm, sizeof tm);
+    mktime(&tm_); /* mktime modifies tm_ if it refers invalid date */
+    if (tm.tm_mday != tm_.tm_mday) { /* e.g 2018-02-29 -> 2018-03-01 */
+        /* checking days is enough, since other errors
+         * have been checked by strptime() */
+        goto error;
+    }
+
+    return LY_SUCCESS;
+
+error:
+    LOGVAL(ctx, LY_VLOG_NONE, NULL, LY_VCODE_INVAL, date_len, date, stmt);
+    return LY_EINVAL;
+}
+
+void
+lysp_sort_revisions(struct lysp_revision *revs)
+{
+    uint8_t i, r;
+    struct lysp_revision rev;
+
+    for (i = 1, r = 0; revs && i < LY_ARRAY_SIZE(revs); i++) {
+        if (strcmp(LY_ARRAY_INDEX(revs, i, struct lysp_revision)->rev,
+                   LY_ARRAY_INDEX(revs, r, struct lysp_revision)->rev) > 0) {
+            r = i;
+        }
+    }
+
+    if (r) {
+        /* the newest revision is not on position 0, switch them */
+        memcpy(&rev, LY_ARRAY_INDEX(revs, 0), sizeof rev);
+        memcpy(LY_ARRAY_INDEX(revs, 0), LY_ARRAY_INDEX(revs, r), sizeof rev);
+        memcpy(LY_ARRAY_INDEX(revs, r), &rev, sizeof rev);
+    }
+}
diff --git a/src/tree_schema_internal.h b/src/tree_schema_internal.h
new file mode 100644
index 0000000..0c3b489
--- /dev/null
+++ b/src/tree_schema_internal.h
@@ -0,0 +1,87 @@
+/**
+ * @file tree_schema_internal.h
+ * @author Radek Krejci <rkrejci@cesnet.cz>
+ * @brief internal functions for YANG schema trees.
+ *
+ * Copyright (c) 2015 - 2018 CESNET, z.s.p.o.
+ *
+ * This source code is licensed under BSD 3-Clause License (the "License").
+ * You may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     https://opensource.org/licenses/BSD-3-Clause
+ */
+
+#ifndef LY_TREE_SCHEMA_INTERNAL_H_
+#define LY_TREE_SCHEMA_INTERNAL_H_
+
+/**
+ * @brief List of YANG statement groups - the (sub)module's substatements
+ */
+enum yang_module_stmt {
+    Y_MOD_MODULE_HEADER,
+    Y_MOD_LINKAGE,
+    Y_MOD_META,
+    Y_MOD_REVISION,
+    Y_MOD_BODY
+};
+
+/**
+ * @brief Types of arguments of YANG statements
+ */
+enum yang_arg {
+    Y_IDENTIF_ARG,        /**< YANG "identifier-arg-str" rule */
+    Y_PREF_IDENTIF_ARG,   /**< YANG "identifier-ref-arg-str" rule */
+    Y_STR_ARG,            /**< YANG "string" rule */
+    Y_MAYBE_STR_ARG       /**< optional YANG "string" rule */
+};
+
+/**
+ * @brief internal context for schema parsers
+ */
+struct ly_parser_ctx {
+    struct ly_ctx *ctx;
+    uint64_t line;      /* line number */
+    uint64_t indent;    /* current position on the line for YANG indentation */
+};
+
+/**
+ * @brief Check the currently present prefixes in the module for collision with the new one.
+ *
+ * @param[in] ctx yang parser context.
+ * @param[in] module Schema tree to check.
+ * @param[in] value Newly added prefix value (including its location to distinguish collision with itself).
+ * @return LY_EEXIST when prefix is already used in the module, LY_SUCCESS otherwise
+ */
+LY_ERR lysp_check_prefix(struct ly_parser_ctx *ctx, struct lysp_module *module, const char **value);
+
+/**
+ * @brief Check date string (4DIGIT "-" 2DIGIT "-" 2DIGIT)
+ *
+ * @param[in] ctx Context to store log message.
+ * @param[in] date Date string to check (non-necessarily terminated by \0)
+ * @param[in] date_len Length of the date string, 10 expected.
+ * @param[in] stmt Statement name for error message.
+ * @return LY_ERR value.
+ */
+LY_ERR lysp_check_date(struct ly_ctx *ctx, const char *date, int date_len, const char *stmt);
+
+/**
+ * @brief Just move the newest revision into the first position, does not sort the rest
+ * @param[in] revs Sized-array of the revisions in a printable schema tree.
+ */
+void lysp_sort_revisions(struct lysp_revision *revs);
+
+/**
+ * @brief Free the schema structure. It just frees, it does not remove the schema from its context.
+ * @param[in,out] module Schema module structure to free.
+ * @param[in] private_destructor Function to remove private data from the compiled schema tree.
+ */
+void lys_module_free(struct lys_module *module, void (*private_destructor)(const struct lysc_node *node, void *priv));
+
+/**
+ * @brief
+ */
+LY_ERR yang_parse(struct ly_ctx *ctx, const char *data, struct lysp_module **mod_p);
+
+#endif /* LY_TREE_SCHEMA_INTERNAL_H_ */
diff --git a/tests/src/CMakeLists.txt b/tests/src/CMakeLists.txt
index bce0d9a..04d0d0d 100644
--- a/tests/src/CMakeLists.txt
+++ b/tests/src/CMakeLists.txt
@@ -4,13 +4,17 @@
     src_context
     src_hash_table
     src_xml
-    src_parser_yang)
+    src_parser_yang
+    src_tree_schema_compile
+    src_tree_schema_helpers)
 set(local_tests_wraps
     " "
     "-Wl,--wrap=realloc"
     "-Wl,--wrap=ly_set_add"
     " "
     " "
+    " "
+    " "
     " ")
 set(tests ${tests} ${local_tests} PARENT_SCOPE)
 set(tests_wraps ${tests_wraps} ${local_tests_wraps} PARENT_SCOPE)
diff --git a/tests/src/test_common.c b/tests/src/test_common.c
index 60c4f48..0499c42 100644
--- a/tests/src/test_common.c
+++ b/tests/src/test_common.c
@@ -14,8 +14,6 @@
 
 #include "../../src/common.c"
 
-#define _BSD_SOURCE
-#define _DEFAULT_SOURCE
 #include <stdarg.h>
 #include <stddef.h>
 #include <setjmp.h>
@@ -84,35 +82,6 @@
     assert_int_equal(LY_EINVAL, ly_getutf8(&str, &c, &len));
 }
 
-static void
-test_date(void **state)
-{
-    (void) state; /* unused */
-
-    assert_int_equal(LY_EINVAL, lysp_check_date(NULL, NULL, 0, "date"));
-    assert_string_equal(logbuf, "Invalid argument date (lysp_check_date()).");
-    assert_int_equal(LY_EINVAL, lysp_check_date(NULL, "x", 1, "date"));
-    assert_string_equal(logbuf, "Invalid argument date_len (lysp_check_date()).");
-    assert_int_equal(LY_EINVAL, lysp_check_date(NULL, "nonsencexx", 10, "date"));
-    assert_string_equal(logbuf, "Invalid value \"nonsencexx\" of \"date\".");
-    assert_int_equal(LY_EINVAL, lysp_check_date(NULL, "123x-11-11", 10, "date"));
-    assert_string_equal(logbuf, "Invalid value \"123x-11-11\" of \"date\".");
-    assert_int_equal(LY_EINVAL, lysp_check_date(NULL, "2018-13-11", 10, "date"));
-    assert_string_equal(logbuf, "Invalid value \"2018-13-11\" of \"date\".");
-    assert_int_equal(LY_EINVAL, lysp_check_date(NULL, "2018-11-41", 10, "date"));
-    assert_string_equal(logbuf, "Invalid value \"2018-11-41\" of \"date\".");
-    assert_int_equal(LY_EINVAL, lysp_check_date(NULL, "2018-02-29", 10, "date"));
-    assert_string_equal(logbuf, "Invalid value \"2018-02-29\" of \"date\".");
-    assert_int_equal(LY_EINVAL, lysp_check_date(NULL, "2018.02-28", 10, "date"));
-    assert_string_equal(logbuf, "Invalid value \"2018.02-28\" of \"date\".");
-    assert_int_equal(LY_EINVAL, lysp_check_date(NULL, "2018-02.28", 10, "date"));
-    assert_string_equal(logbuf, "Invalid value \"2018-02.28\" of \"date\".");
-
-    assert_int_equal(LY_SUCCESS, lysp_check_date(NULL, "2018-11-11", 10, "date"));
-    assert_int_equal(LY_SUCCESS, lysp_check_date(NULL, "2018-02-28", 10, "date"));
-    assert_int_equal(LY_SUCCESS, lysp_check_date(NULL, "2016-02-29", 10, "date"));
-}
-
 void *__real_realloc(void *ptr, size_t size);
 void *__wrap_realloc(void *ptr, size_t size)
 {
@@ -154,7 +123,6 @@
 {
     const struct CMUnitTest tests[] = {
         cmocka_unit_test_setup(test_utf8, logger_setup),
-        cmocka_unit_test_setup(test_date, logger_setup),
         cmocka_unit_test(test_lyrealloc),
     };
 
diff --git a/tests/src/test_parser_yang.c b/tests/src/test_parser_yang.c
index 3c98be1..e6fec3c 100644
--- a/tests/src/test_parser_yang.c
+++ b/tests/src/test_parser_yang.c
@@ -12,8 +12,9 @@
  *     https://opensource.org/licenses/BSD-3-Clause
  */
 
-#define _BSD_SOURCE
-#define _DEFAULT_SOURCE
+#include "../../src/tree_schema.c"
+#include "../../src/parser_yang.c"
+
 #include <stdarg.h>
 #include <stddef.h>
 #include <setjmp.h>
@@ -23,13 +24,12 @@
 #include <string.h>
 
 #include "libyang.h"
-#include "../../src/parser_yang.c"
 
 #define BUFSIZE 1024
 char logbuf[BUFSIZE] = {0};
 
 /* set to 0 to printing error messages to stderr instead of checking them in code */
-#define ENABLE_LOGGER_CHECKING 0
+#define ENABLE_LOGGER_CHECKING 1
 
 #if ENABLE_LOGGER_CHECKING
 static void
@@ -67,6 +67,12 @@
 #   define logbuf_assert(str)
 #endif
 
+#define TEST_DUP_GENERIC(PREFIX, MEMBER, VALUE1, VALUE2, FUNC, RESULT, LINE, CLEANUP) \
+    str = PREFIX MEMBER" "VALUE1";"MEMBER" "VALUE2";} ..."; \
+    assert_int_equal(LY_EVALID, FUNC(&ctx, &str, RESULT)); \
+    logbuf_assert("Duplicate keyword \""MEMBER"\". Line number "LINE"."); \
+    CLEANUP
+
 static void
 test_helpers(void **state)
 {
@@ -637,11 +643,12 @@
 }
 
 static struct lysp_module *
-mod_renew(struct ly_parser_ctx *ctx, struct lysp_module *mod)
+mod_renew(struct ly_parser_ctx *ctx, struct lysp_module *mod, uint8_t submodule)
 {
     lysp_module_free(mod);
     mod = calloc(1, sizeof *mod);
     mod->ctx = ctx->ctx;
+    mod->submodule = submodule;
     assert_non_null(mod);
     return mod;
 }
@@ -660,25 +667,25 @@
     ctx.line = 1;
     ctx.indent = 0;
 
-    mod = mod_renew(&ctx, NULL);
+    mod = mod_renew(&ctx, NULL, 0);
 
     /* missing mandatory substatements */
     str = " name {}";
     assert_int_equal(LY_EVALID, parse_sub_module(&ctx, &str, mod));
     assert_string_equal("name", mod->name);
     logbuf_assert("Missing mandatory keyword \"namespace\" as a child of \"module\". Line number 1.");
-    mod = mod_renew(&ctx, mod);
+    mod = mod_renew(&ctx, mod, 0);
 
     str = " name {namespace urn:x;}";
     assert_int_equal(LY_EVALID, parse_sub_module(&ctx, &str, mod));
     assert_string_equal("urn:x", mod->ns);
     logbuf_assert("Missing mandatory keyword \"prefix\" as a child of \"module\". Line number 1.");
-    mod = mod_renew(&ctx, mod);
+    mod = mod_renew(&ctx, mod, 0);
 
     str = " name {namespace urn:x;prefix \"x\";}";
     assert_int_equal(LY_SUCCESS, parse_sub_module(&ctx, &str, mod));
     assert_string_equal("x", mod->prefix);
-    mod = mod_renew(&ctx, mod);
+    mod = mod_renew(&ctx, mod, 0);
 
 #define SCHEMA_BEGINNING " name {namespace urn:x;prefix \"x\";"
 #define TEST_NODE(NODETYPE, INPUT, NAME) \
@@ -687,23 +694,30 @@
         assert_non_null(mod->data); \
         assert_int_equal(NODETYPE, mod->data->nodetype); \
         assert_string_equal(NAME, mod->data->name); \
-        mod = mod_renew(&ctx, mod);
+        mod = mod_renew(&ctx, mod, 0);
 #define TEST_GENERIC(INPUT, TARGET, TEST) \
         str = SCHEMA_BEGINNING INPUT; \
         assert_int_equal(LY_SUCCESS, parse_sub_module(&ctx, &str, mod)); \
         assert_non_null(TARGET); \
         TEST; \
-        mod = mod_renew(&ctx, mod);
+        mod = mod_renew(&ctx, mod, 0);
+#define TEST_DUP(MEMBER, VALUE1, VALUE2, LINE, SUBMODULE) \
+        TEST_DUP_GENERIC(SCHEMA_BEGINNING, MEMBER, VALUE1, VALUE2, \
+                         parse_sub_module, mod, LINE, mod = mod_renew(&ctx, mod, SUBMODULE))
 
     /* duplicated namespace, prefix */
-    str = SCHEMA_BEGINNING "namespace y;}";
+    TEST_DUP("namespace", "y", "z", "1", 0);
+    TEST_DUP("prefix", "y", "z", "1", 0);
+    TEST_DUP("contact", "a", "b", "1", 0);
+    TEST_DUP("description", "a", "b", "1", 0);
+    TEST_DUP("organization", "a", "b", "1", 0);
+    TEST_DUP("reference", "a", "b", "1", 0);
+
+    /* not allowed in module (submodule-specific) */
+    str = SCHEMA_BEGINNING "belongs-to master {prefix m;}}";
     assert_int_equal(LY_EVALID, parse_sub_module(&ctx, &str, mod));
-    logbuf_assert("Duplicate keyword \"namespace\". Line number 1.");
-    mod = mod_renew(&ctx, mod);
-    str = SCHEMA_BEGINNING "prefix y;}";
-    assert_int_equal(LY_EVALID, parse_sub_module(&ctx, &str, mod));
-    logbuf_assert("Duplicate keyword \"prefix\". Line number 1.");
-    mod = mod_renew(&ctx, mod);
+    logbuf_assert("Invalid keyword \"belongs-to\" as a child of \"module\". Line number 1.");
+    mod = mod_renew(&ctx, mod, 0);
 
     /* anydata */
     TEST_NODE(LYS_ANYDATA, "anydata test;}", "test");
@@ -711,7 +725,7 @@
     TEST_NODE(LYS_ANYXML, "anyxml test;}", "test");
     /* augment */
     TEST_GENERIC("augment /somepath;}", mod->augments,
-                 assert_string_equal("/somepath", mod->augments[0].nodeid));
+                 assert_string_equal("/somepath", LY_ARRAY_INDEX(mod->augments, 0, struct lysp_augment)->nodeid));
     /* choice */
     TEST_NODE(LYS_CHOICE, "choice test;}", "test");
     /* contact 0..1 */
@@ -724,32 +738,36 @@
                  assert_string_equal("some description", mod->dsc));
     /* deviation */
     TEST_GENERIC("deviation /somepath {deviate not-supported;}}", mod->deviations,
-                 assert_string_equal("/somepath", mod->deviations[0].nodeid));
+                 assert_string_equal("/somepath", LY_ARRAY_INDEX(mod->deviations, 0, struct lysp_deviation)->nodeid));
     /* extension */
     TEST_GENERIC("extension test;}", mod->extensions,
-                 assert_string_equal("test", mod->extensions[0].name));
+                 assert_string_equal("test", LY_ARRAY_INDEX(mod->extensions, 0, struct lysp_ext)->name));
     /* feature */
     TEST_GENERIC("feature test;}", mod->features,
-                 assert_string_equal("test", mod->features[0].name));
+                 assert_string_equal("test", LY_ARRAY_INDEX(mod->features, 0, struct lysp_feature)->name));
     /* grouping */
     TEST_GENERIC("grouping grp;}", mod->groupings,
-                 assert_string_equal("grp", mod->groupings[0].name));
+                 assert_string_equal("grp", LY_ARRAY_INDEX(mod->groupings, 0, struct lysp_grp)->name));
     /* identity */
     TEST_GENERIC("identity test;}", mod->identities,
-                 assert_string_equal("test", mod->identities[0].name));
+                 assert_string_equal("test", LY_ARRAY_INDEX(mod->identities, 0, struct lysp_ident)->name));
     /* import */
     TEST_GENERIC("import test {prefix z;}}", mod->imports,
-                 assert_string_equal("test", mod->imports[0].name));
-#if 0
+                 assert_string_equal("test", LY_ARRAY_INDEX(mod->imports, 0, struct lysp_import)->name));
+
     /* import - prefix collision */
     str = SCHEMA_BEGINNING "import test {prefix x;}}";
     assert_int_equal(LY_EVALID, parse_sub_module(&ctx, &str, mod));
-    logbuf_assert("Duplicate keyword \"namespace\". Line number 1.");
-    mod = mod_renew(&ctx, mod);
-#endif
+    logbuf_assert("Prefix \"x\" already used as module prefix. Line number 2.");
+    mod = mod_renew(&ctx, mod, 0);
+    str = SCHEMA_BEGINNING "import test1 {prefix y;}import test2 {prefix y;}}";
+    assert_int_equal(LY_EVALID, parse_sub_module(&ctx, &str, mod));
+    logbuf_assert("Prefix \"y\" already used to import \"test1\" module. Line number 2.");
+    mod = mod_renew(&ctx, mod, 0);
+
     /* include */
-    TEST_GENERIC("rpc test;}", mod->rpcs,
-                 assert_string_equal("test", mod->rpcs[0].name));
+    TEST_GENERIC("include test;}", mod->includes,
+                 assert_string_equal("test", LY_ARRAY_INDEX(mod->includes, 0, struct lysp_include)->name));
     /* leaf */
     TEST_NODE(LYS_LEAF, "leaf test {type string;}}", "test");
     /* leaf-list */
@@ -758,7 +776,7 @@
     TEST_NODE(LYS_LIST, "list test {key a;leaf a {type string;}}}", "test");
     /* notification */
     TEST_GENERIC("notification test;}", mod->notifs,
-                 assert_string_equal("test", mod->notifs[0].name));
+                 assert_string_equal("test", LY_ARRAY_INDEX(mod->notifs, 0, struct lysp_notif)->name));
     /* organization 0..1 */
     TEST_GENERIC("organization \"CESNET a.l.e.\";}", mod->org,
                  assert_string_equal("CESNET a.l.e.", mod->org));
@@ -767,41 +785,308 @@
                  assert_string_equal("RFC7950", mod->ref));
     /* revision */
     TEST_GENERIC("revision 2018-10-12;}", mod->revs,
-                 assert_string_equal("2018-10-12", mod->revs[0].rev));
+                 assert_string_equal("2018-10-12", LY_ARRAY_INDEX(mod->revs, 0, struct lysp_revision)->rev));
     /* rpc */
     TEST_GENERIC("rpc test;}", mod->rpcs,
-                 assert_string_equal("test", mod->rpcs[0].name));
+                 assert_string_equal("test", LY_ARRAY_INDEX(mod->rpcs, 0, struct lysp_action)->name));
     /* typedef */
     TEST_GENERIC("typedef test{type string;}}", mod->typedefs,
-                 assert_string_equal("test", mod->typedefs[0].name));
+                 assert_string_equal("test", LY_ARRAY_INDEX(mod->typedefs, 0, struct lysp_tpdf)->name));
     /* uses */
     TEST_NODE(LYS_USES, "uses test;}", "test");
     /* yang-version */
     str = SCHEMA_BEGINNING "\n\tyang-version 10;}";
     assert_int_equal(LY_EVALID, parse_sub_module(&ctx, &str, mod));
     logbuf_assert("Invalid value \"10\" of \"yang-version\". Line number 3.");
-    mod = mod_renew(&ctx, mod);
+    mod = mod_renew(&ctx, mod, 0);
     str = SCHEMA_BEGINNING "yang-version 1.0;yang-version 1.1;}";
     assert_int_equal(LY_EVALID, parse_sub_module(&ctx, &str, mod));
     logbuf_assert("Duplicate keyword \"yang-version\". Line number 3.");
-    mod = mod_renew(&ctx, mod);
+    mod = mod_renew(&ctx, mod, 0);
     str = SCHEMA_BEGINNING "yang-version 1.0;}";
     assert_int_equal(LY_SUCCESS, parse_sub_module(&ctx, &str, mod));
     assert_int_equal(1, mod->version);
-    mod = mod_renew(&ctx, mod);
+    mod = mod_renew(&ctx, mod, 0);
     str = SCHEMA_BEGINNING "yang-version \"1.1\";}";
     assert_int_equal(LY_SUCCESS, parse_sub_module(&ctx, &str, mod));
     assert_int_equal(2, mod->version);
-    mod = mod_renew(&ctx, mod);
+    mod = mod_renew(&ctx, mod, 0);
+
+    /* extensions */
+    TEST_GENERIC("prefix:test;}", mod->exts,
+                 assert_string_equal("prefix:test", LY_ARRAY_INDEX(mod->exts, 0, struct lysp_ext_instance)->name);
+                 assert_int_equal(LYEXT_SUBSTMT_SELF, LY_ARRAY_INDEX(mod->exts, 0, struct lysp_ext_instance)->insubstmt));
+    mod = mod_renew(&ctx, mod, 0);
+
+    /* invalid substatement */
+    str = SCHEMA_BEGINNING "must false;}";
+    assert_int_equal(LY_EVALID, parse_sub_module(&ctx, &str, mod));
+    logbuf_assert("Invalid keyword \"must\" as a child of \"module\". Line number 3.");
+    mod = mod_renew(&ctx, mod, 0);
+
+    /* submodule */
+    mod->submodule = 1;
+
+    /* missing mandatory substatements */
+    str = " subname {}";
+    assert_int_equal(LY_EVALID, parse_sub_module(&ctx, &str, mod));
+    assert_string_equal("subname", mod->name);
+    logbuf_assert("Missing mandatory keyword \"belongs-to\" as a child of \"submodule\". Line number 3.");
+    mod = mod_renew(&ctx, mod, 1);
+
+    str = " subname {belongs-to name;}";
+    assert_int_equal(LY_SUCCESS, parse_sub_module(&ctx, &str, mod));
+    assert_string_equal("name", mod->belongsto);
+    mod = mod_renew(&ctx, mod, 1);
+
+#undef SCHEMA_BEGINNING
+#define SCHEMA_BEGINNING " subname {belongs-to name;"
+
+    /* duplicated namespace, prefix */
+    TEST_DUP("belongs-to", "module1", "module2", "3", 1);
+
+    /* not allowed in submodule (module-specific) */
+    str = SCHEMA_BEGINNING "namespace \"urn:z\";}";
+    assert_int_equal(LY_EVALID, parse_sub_module(&ctx, &str, mod));
+    logbuf_assert("Invalid keyword \"namespace\" as a child of \"submodule\". Line number 3.");
+    mod = mod_renew(&ctx, mod, 1);
+    str = SCHEMA_BEGINNING "prefix m;}}";
+    assert_int_equal(LY_EVALID, parse_sub_module(&ctx, &str, mod));
+    logbuf_assert("Invalid keyword \"prefix\" as a child of \"submodule\". Line number 3.");
+    mod = mod_renew(&ctx, mod, 1);
 
 #undef TEST_GENERIC
 #undef TEST_NODE
+#undef TEST_DUP
 #undef SCHEMA_BEGINNING
 
     lysp_module_free(mod);
     ly_ctx_destroy(ctx.ctx, NULL);
 }
 
+static void
+test_identity(void **state)
+{
+    (void) state; /* unused */
+    int dict = 1; /* magic variable for FREE macros */
+
+    struct ly_parser_ctx ctx;
+    struct lysp_ident *ident = NULL;
+    const char *str;
+
+    assert_int_equal(LY_SUCCESS, ly_ctx_new(NULL, 0, &ctx.ctx));
+    assert_non_null(ctx.ctx);
+    ctx.line = 1;
+    ctx.indent = 0;
+
+    /* invalid cardinality */
+#define TEST_DUP(MEMBER, VALUE1, VALUE2) \
+    TEST_DUP_GENERIC(" test {", MEMBER, VALUE1, VALUE2, parse_identity, \
+                     &ident, "1", FREE_ARRAY(ctx.ctx, ident, lysp_ident_free); ident = NULL)
+
+    TEST_DUP("description", "a", "b");
+    TEST_DUP("reference", "a", "b");
+    TEST_DUP("status", "current", "obsolete");
+
+    /* full content */
+    str = " test {base \"a\";base b; description text;reference \'another text\';status current; if-feature x;if-feature y;prefix:ext;} ...";
+    assert_int_equal(LY_SUCCESS, parse_identity(&ctx, &str, &ident));
+    assert_non_null(ident);
+    assert_string_equal(" ...", str);
+    FREE_ARRAY(ctx.ctx, ident, lysp_ident_free);
+    ident = NULL;
+
+    /* invalid substatement */
+    str = " test {organization XXX;}";
+    assert_int_equal(LY_EVALID, parse_identity(&ctx, &str, &ident));
+    logbuf_assert("Invalid keyword \"organization\" as a child of \"identity\". Line number 1.");
+    FREE_ARRAY(ctx.ctx, ident, lysp_ident_free);
+    ident = NULL;
+
+#undef TEST_DUP
+
+    ly_ctx_destroy(ctx.ctx, NULL);
+}
+
+static void
+test_feature(void **state)
+{
+    (void) state; /* unused */
+    int dict = 1; /* magic variable for FREE macros */
+
+    struct ly_parser_ctx ctx;
+    struct lysp_feature *features = NULL;
+    const char *str;
+
+    assert_int_equal(LY_SUCCESS, ly_ctx_new(NULL, 0, &ctx.ctx));
+    assert_non_null(ctx.ctx);
+    ctx.line = 1;
+    ctx.indent = 0;
+
+    /* invalid cardinality */
+#define TEST_DUP(MEMBER, VALUE1, VALUE2) \
+    TEST_DUP_GENERIC(" test {", MEMBER, VALUE1, VALUE2, parse_feature, \
+                     &features, "1", FREE_ARRAY(ctx.ctx, features, lysp_feature_free); features = NULL)
+
+    TEST_DUP("description", "a", "b");
+    TEST_DUP("reference", "a", "b");
+    TEST_DUP("status", "current", "obsolete");
+
+    /* full content */
+    str = " test {description text;reference \'another text\';status current; if-feature x;if-feature y;prefix:ext;} ...";
+    assert_int_equal(LY_SUCCESS, parse_feature(&ctx, &str, &features));
+    assert_non_null(features);
+    assert_string_equal(" ...", str);
+    FREE_ARRAY(ctx.ctx, features, lysp_feature_free);
+    features = NULL;
+
+    /* invalid substatement */
+    str = " test {organization XXX;}";
+    assert_int_equal(LY_EVALID, parse_feature(&ctx, &str, &features));
+    logbuf_assert("Invalid keyword \"organization\" as a child of \"feature\". Line number 1.");
+    FREE_ARRAY(ctx.ctx, features, lysp_feature_free);
+    features = NULL;
+
+#undef TEST_DUP
+
+    ly_ctx_destroy(ctx.ctx, NULL);
+}
+
+static void
+test_deviation(void **state)
+{
+    (void) state; /* unused */
+    int dict = 1; /* magic variable for FREE macros */
+
+    struct ly_parser_ctx ctx;
+    struct lysp_deviation *d = NULL;
+    const char *str;
+
+    assert_int_equal(LY_SUCCESS, ly_ctx_new(NULL, 0, &ctx.ctx));
+    assert_non_null(ctx.ctx);
+    ctx.line = 1;
+    ctx.indent = 0;
+
+    /* invalid cardinality */
+#define TEST_DUP(MEMBER, VALUE1, VALUE2) \
+    TEST_DUP_GENERIC(" test {deviate not-supported;", MEMBER, VALUE1, VALUE2, parse_deviation, \
+                     &d, "1", FREE_ARRAY(ctx.ctx, d, lysp_deviation_free); d = NULL)
+
+    TEST_DUP("description", "a", "b");
+    TEST_DUP("reference", "a", "b");
+
+    /* full content */
+    str = " test {deviate not-supported;description text;reference \'another text\';prefix:ext;} ...";
+    assert_int_equal(LY_SUCCESS, parse_deviation(&ctx, &str, &d));
+    assert_non_null(d);
+    assert_string_equal(" ...", str);
+    FREE_ARRAY(ctx.ctx, d, lysp_deviation_free);
+    d = NULL;
+
+    /* missing mandatory substatement */
+    str = " test {description text;}";
+    assert_int_equal(LY_EVALID, parse_deviation(&ctx, &str, &d));
+    logbuf_assert("Missing mandatory keyword \"deviate\" as a child of \"deviation\". Line number 1.");
+    FREE_ARRAY(ctx.ctx, d, lysp_deviation_free);
+    d = NULL;
+
+    /* invalid substatement */
+    str = " test {deviate not-supported; status obsolete;}";
+    assert_int_equal(LY_EVALID, parse_deviation(&ctx, &str, &d));
+    logbuf_assert("Invalid keyword \"status\" as a child of \"deviation\". Line number 1.");
+    FREE_ARRAY(ctx.ctx, d, lysp_deviation_free);
+    d = NULL;
+
+#undef TEST_DUP
+
+    ly_ctx_destroy(ctx.ctx, NULL);
+}
+
+static void
+test_deviate(void **state)
+{
+    (void) state; /* unused */
+
+    struct ly_parser_ctx ctx;
+    struct lysp_deviate *d = NULL;
+    const char *str;
+
+    assert_int_equal(LY_SUCCESS, ly_ctx_new(NULL, 0, &ctx.ctx));
+    assert_non_null(ctx.ctx);
+    ctx.line = 1;
+    ctx.indent = 0;
+
+    /* invalid cardinality */
+#define TEST_DUP(TYPE, MEMBER, VALUE1, VALUE2) \
+    TEST_DUP_GENERIC(TYPE" {", MEMBER, VALUE1, VALUE2, parse_deviate, \
+                     &d, "1", lysp_deviate_free(ctx.ctx, d, 1); free(d); d = NULL)
+
+    TEST_DUP("add", "config", "true", "false");
+    TEST_DUP("replace", "default", "int8", "uint8");
+    TEST_DUP("add", "mandatory", "true", "false");
+    TEST_DUP("add", "max-elements", "1", "2");
+    TEST_DUP("add", "min-elements", "1", "2");
+    TEST_DUP("replace", "type", "int8", "uint8");
+    TEST_DUP("add", "units", "kilometers", "miles");
+
+    /* full contents */
+    str = " not-supported {prefix:ext;} ...";
+    assert_int_equal(LY_SUCCESS, parse_deviate(&ctx, &str, &d));
+    assert_non_null(d);
+    assert_string_equal(" ...", str);
+    lysp_deviate_free(ctx.ctx, d, 1); free(d); d = NULL;
+    str = " add {units meters; must 1; must 2; unique x; unique y; default a; default b; config true; mandatory true; min-elements 1; max-elements 2; prefix:ext;} ...";
+    assert_int_equal(LY_SUCCESS, parse_deviate(&ctx, &str, &d));
+    assert_non_null(d);
+    assert_string_equal(" ...", str);
+    lysp_deviate_free(ctx.ctx, d, 1); free(d); d = NULL;
+    str = " delete {units meters; must 1; must 2; unique x; unique y; default a; default b; prefix:ext;} ...";
+    assert_int_equal(LY_SUCCESS, parse_deviate(&ctx, &str, &d));
+    assert_non_null(d);
+    assert_string_equal(" ...", str);
+    lysp_deviate_free(ctx.ctx, d, 1); free(d); d = NULL;
+    str = " replace {type string; units meters; default a; config true; mandatory true; min-elements 1; max-elements 2; prefix:ext;} ...";
+    assert_int_equal(LY_SUCCESS, parse_deviate(&ctx, &str, &d));
+    assert_non_null(d);
+    assert_string_equal(" ...", str);
+    lysp_deviate_free(ctx.ctx, d, 1); free(d); d = NULL;
+
+    /* invalid substatements */
+#define TEST_NOT_SUP(DEV, STMT, VALUE) \
+    str = " "DEV" {"STMT" "VALUE";}..."; \
+    assert_int_equal(LY_EVALID, parse_deviate(&ctx, &str, &d)); \
+    logbuf_assert("Deviate \""DEV"\" does not support keyword \""STMT"\". Line number 1."); \
+    lysp_deviate_free(ctx.ctx, d, 1); free(d); d = NULL
+
+    TEST_NOT_SUP("not-supported", "units", "meters");
+    TEST_NOT_SUP("not-supported", "must", "1");
+    TEST_NOT_SUP("not-supported", "unique", "x");
+    TEST_NOT_SUP("not-supported", "default", "a");
+    TEST_NOT_SUP("not-supported", "config", "true");
+    TEST_NOT_SUP("not-supported", "mandatory", "true");
+    TEST_NOT_SUP("not-supported", "min-elements", "1");
+    TEST_NOT_SUP("not-supported", "max-elements", "2");
+    TEST_NOT_SUP("not-supported", "type", "string");
+    TEST_NOT_SUP("add", "type", "string");
+    TEST_NOT_SUP("delete", "config", "true");
+    TEST_NOT_SUP("delete", "mandatory", "true");
+    TEST_NOT_SUP("delete", "min-elements", "1");
+    TEST_NOT_SUP("delete", "max-elements", "2");
+    TEST_NOT_SUP("delete", "type", "string");
+    TEST_NOT_SUP("replace", "must", "1");
+    TEST_NOT_SUP("replace", "unique", "a");
+
+    str = " nonsence; ...";
+    assert_int_equal(LY_EVALID, parse_deviate(&ctx, &str, &d));
+    logbuf_assert("Invalid value \"nonsence\" of \"deviate\". Line number 1.");
+    assert_null(d);
+
+#undef TEST_NOT_SUP
+#undef TEST_DUP
+
+    ly_ctx_destroy(ctx.ctx, NULL);
+}
+
 int main(void)
 {
     const struct CMUnitTest tests[] = {
@@ -810,6 +1095,10 @@
         cmocka_unit_test_setup(test_arg, logger_setup),
         cmocka_unit_test_setup(test_stmts, logger_setup),
         cmocka_unit_test_setup(test_module, logger_setup),
+        cmocka_unit_test_setup(test_identity, logger_setup),
+        cmocka_unit_test_setup(test_feature, logger_setup),
+        cmocka_unit_test_setup(test_deviation, logger_setup),
+        cmocka_unit_test_setup(test_deviate, logger_setup),
     };
 
     return cmocka_run_group_tests(tests, NULL, NULL);
diff --git a/tests/src/test_tree_schema_compile.c b/tests/src/test_tree_schema_compile.c
new file mode 100644
index 0000000..5f30a9d
--- /dev/null
+++ b/tests/src/test_tree_schema_compile.c
@@ -0,0 +1,121 @@
+/*
+ * @file test_parser_yang.c
+ * @author: Radek Krejci <rkrejci@cesnet.cz>
+ * @brief unit tests for functions from parser_yang.c
+ *
+ * Copyright (c) 2018 CESNET, z.s.p.o.
+ *
+ * This source code is licensed under BSD 3-Clause License (the "License").
+ * You may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     https://opensource.org/licenses/BSD-3-Clause
+ */
+
+#include "../../src/tree_schema.c"
+#include "../../src/parser_yang.c"
+
+#include <stdarg.h>
+#include <stddef.h>
+#include <setjmp.h>
+#include <cmocka.h>
+
+#include <stdio.h>
+#include <string.h>
+
+#include "libyang.h"
+
+#define BUFSIZE 1024
+char logbuf[BUFSIZE] = {0};
+
+/* set to 0 to printing error messages to stderr instead of checking them in code */
+#define ENABLE_LOGGER_CHECKING 1
+
+#if ENABLE_LOGGER_CHECKING
+static void
+logger(LY_LOG_LEVEL level, const char *msg, const char *path)
+{
+    (void) level; /* unused */
+
+    if (path) {
+        snprintf(logbuf, BUFSIZE - 1, "%s %s", msg, path);
+    } else {
+        strncpy(logbuf, msg, BUFSIZE - 1);
+    }
+}
+#endif
+
+static int
+logger_setup(void **state)
+{
+    (void) state; /* unused */
+#if ENABLE_LOGGER_CHECKING
+    ly_set_log_clb(logger, 1);
+#endif
+    return 0;
+}
+
+void
+logbuf_clean(void)
+{
+    logbuf[0] = '\0';
+}
+
+#if ENABLE_LOGGER_CHECKING
+#   define logbuf_assert(str) assert_string_equal(logbuf, str)
+#else
+#   define logbuf_assert(str)
+#endif
+
+static void
+test_module(void **state)
+{
+    (void) state; /* unused */
+
+    const char *str;
+    struct ly_ctx *ctx;
+    struct lys_module mod = {0};
+
+    str = "module test {namespace urn:test; prefix t;"
+          "feature f1;}";
+    assert_int_equal(LY_SUCCESS, ly_ctx_new(NULL, 0, &ctx));
+
+    assert_int_equal(LY_EINVAL, lys_compile(NULL, 0, NULL));
+    logbuf_assert("Invalid argument sc (lys_compile()).");
+    assert_int_equal(LY_EINVAL, lys_compile(NULL, 0, &mod.compiled));
+    logbuf_assert("Invalid argument sp (lys_compile()).");
+    assert_int_equal(LY_SUCCESS, yang_parse(ctx, str, &mod.parsed));
+    assert_int_equal(LY_SUCCESS, lys_compile(mod.parsed, 0, &mod.compiled));
+    assert_non_null(mod.compiled);
+    assert_ptr_equal(mod.parsed->name, mod.compiled->name);
+    assert_ptr_equal(mod.parsed->ns, mod.compiled->ns);
+
+    lysc_module_free(mod.compiled, NULL);
+
+    assert_int_equal(LY_SUCCESS, lys_compile(mod.parsed, LYSC_OPT_FREE_SP, &mod.compiled));
+    assert_non_null(mod.compiled);
+    assert_string_equal("test", mod.compiled->name);
+    assert_string_equal("urn:test", mod.compiled->ns);
+
+    lysc_module_free(mod.compiled, NULL);
+    mod.compiled = NULL;
+
+    str = "submodule test {belongs-to xxx {prefix x;}}";
+    assert_int_equal(LY_SUCCESS, yang_parse(ctx, str, &mod.parsed));
+    assert_int_equal(LY_EINVAL, lys_compile(mod.parsed, 0, &mod.compiled));
+    logbuf_assert("Submodules (test) are not supposed to be compiled, compile only the main modules.");
+    assert_null(mod.compiled);
+
+    lysp_module_free(mod.parsed);
+    ly_ctx_destroy(ctx, NULL);
+}
+
+
+int main(void)
+{
+    const struct CMUnitTest tests[] = {
+        cmocka_unit_test_setup(test_module, logger_setup),
+    };
+
+    return cmocka_run_group_tests(tests, NULL, NULL);
+}
diff --git a/tests/src/test_tree_schema_helpers.c b/tests/src/test_tree_schema_helpers.c
new file mode 100644
index 0000000..53cbded
--- /dev/null
+++ b/tests/src/test_tree_schema_helpers.c
@@ -0,0 +1,82 @@
+/*
+ * @file set.c
+ * @author: Radek Krejci <rkrejci@cesnet.cz>
+ * @brief unit tests for functions from common.c
+ *
+ * Copyright (c) 2018 CESNET, z.s.p.o.
+ *
+ * This source code is licensed under BSD 3-Clause License (the "License").
+ * You may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     https://opensource.org/licenses/BSD-3-Clause
+ */
+
+#include "../../src/tree_schema_helpers.c"
+
+#include <stdarg.h>
+#include <stddef.h>
+#include <setjmp.h>
+#include <cmocka.h>
+
+#include "libyang.h"
+
+#define BUFSIZE 1024
+char logbuf[BUFSIZE] = {0};
+
+static void
+logger(LY_LOG_LEVEL level, const char *msg, const char *path)
+{
+    (void) level; /* unused */
+    (void) path; /* unused */
+
+    strncpy(logbuf, msg, BUFSIZE - 1);
+}
+
+static int
+logger_setup(void **state)
+{
+    (void) state; /* unused */
+
+    ly_set_log_clb(logger, 0);
+
+    return 0;
+}
+
+static void
+test_date(void **state)
+{
+    (void) state; /* unused */
+
+    assert_int_equal(LY_EINVAL, lysp_check_date(NULL, NULL, 0, "date"));
+    assert_string_equal(logbuf, "Invalid argument date (lysp_check_date()).");
+    assert_int_equal(LY_EINVAL, lysp_check_date(NULL, "x", 1, "date"));
+    assert_string_equal(logbuf, "Invalid argument date_len (lysp_check_date()).");
+    assert_int_equal(LY_EINVAL, lysp_check_date(NULL, "nonsencexx", 10, "date"));
+    assert_string_equal(logbuf, "Invalid value \"nonsencexx\" of \"date\".");
+    assert_int_equal(LY_EINVAL, lysp_check_date(NULL, "123x-11-11", 10, "date"));
+    assert_string_equal(logbuf, "Invalid value \"123x-11-11\" of \"date\".");
+    assert_int_equal(LY_EINVAL, lysp_check_date(NULL, "2018-13-11", 10, "date"));
+    assert_string_equal(logbuf, "Invalid value \"2018-13-11\" of \"date\".");
+    assert_int_equal(LY_EINVAL, lysp_check_date(NULL, "2018-11-41", 10, "date"));
+    assert_string_equal(logbuf, "Invalid value \"2018-11-41\" of \"date\".");
+    assert_int_equal(LY_EINVAL, lysp_check_date(NULL, "2018-02-29", 10, "date"));
+    assert_string_equal(logbuf, "Invalid value \"2018-02-29\" of \"date\".");
+    assert_int_equal(LY_EINVAL, lysp_check_date(NULL, "2018.02-28", 10, "date"));
+    assert_string_equal(logbuf, "Invalid value \"2018.02-28\" of \"date\".");
+    assert_int_equal(LY_EINVAL, lysp_check_date(NULL, "2018-02.28", 10, "date"));
+    assert_string_equal(logbuf, "Invalid value \"2018-02.28\" of \"date\".");
+
+    assert_int_equal(LY_SUCCESS, lysp_check_date(NULL, "2018-11-11", 10, "date"));
+    assert_int_equal(LY_SUCCESS, lysp_check_date(NULL, "2018-02-28", 10, "date"));
+    assert_int_equal(LY_SUCCESS, lysp_check_date(NULL, "2016-02-29", 10, "date"));
+}
+
+int main(void)
+{
+    const struct CMUnitTest tests[] = {
+        cmocka_unit_test_setup(test_date, logger_setup),
+    };
+
+    return cmocka_run_group_tests(tests, NULL, NULL);
+}