]> O.S.I.I.S - jp/vkvg.git/commitdiff
curve tracking in pathes to avoid extra operation for bevel and rounded line join
authorJean-Philippe Bruyère <jp_bruyere@hotmail.com>
Sat, 31 Aug 2019 22:24:23 +0000 (00:24 +0200)
committerj-p <jp_bruyere@hotmail.com>
Tue, 3 Sep 2019 18:36:09 +0000 (20:36 +0200)
18 files changed:
CMakeLists.txt
appveyor.yml [new file with mode: 0644]
src/shaders.h
src/vkvg_context.c
src/vkvg_context_internal.c
src/vkvg_context_internal.h
src/vkvg_internal.h
src/vkvg_surface.c
tests/common/vkengine.c
tests/curve.c
tests/fill_and_stroke.c
tests/gradient.c
tests/gradient_transform.c
tests/random_rects.c
tests/rect_fill.c
tests/simple_paint.c
tests/svg.c
vkh

index a659a1c1db0b17e102c379d1123c83371dd7fdfc..086f7862f5a5551742964fe08babaa88927836a2 100644 (file)
@@ -38,7 +38,11 @@ OPTION(VKVG_BUILD_TESTS "build tests with glfw" ON)
 set(VULKAN_SDK "$ENV{VULKAN_SDK}" CACHE STRING "LunarG Vulkan SDK path")
 if (VULKAN_SDK)
                set(ENV{VULKAN_SDK} ${VULKAN_SDK})
-               SET(ENV{VK_LAYER_PATH} "${VULKAN_SDK}/etc/explicit_layer.d")
+               SET(vulkanSdkLayerPath "${VULKAN_SDK}/etc/vulkan/explicit_layer.d")
+               IF (NOT EXISTS "${vulkanSdkLayerPath}")
+                       SET(vulkanSdkLayerPath "${VULKAN_SDK}/etc/explicit_layer.d")
+               endif ()
+               SET(ENV{VK_LAYER_PATH} "${vulkanSdkLayerPath}")
                link_directories("${VULKAN_SDK}/lib")
 endif ()
 
diff --git a/appveyor.yml b/appveyor.yml
new file mode 100644 (file)
index 0000000..f6f37b5
--- /dev/null
@@ -0,0 +1,7 @@
+version: 1.0.{build}
+image:
+- Visual Studio 2015
+- Visual Studio 2017
+- Ubuntu
+build:
+  verbosity: minimal
index e979d9d3414082911298037a636d6722d859974f..844f3e00b09cb3bf548329e8f515f00edd958148 100644 (file)
@@ -1007,15 +1007,15 @@ unsigned char vkvg_main_frag_spv[] = {
 unsigned int vkvg_main_frag_spv_len = 5780;
 unsigned char vkvg_main_vert_spv[] = {
   0x03, 0x02, 0x23, 0x07, 0x00, 0x00, 0x01, 0x00, 0x07, 0x00, 0x0d, 0x00,
-  0x7b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00,
+  0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00,
   0x01, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x06, 0x00, 0x01, 0x00, 0x00, 0x00,
   0x47, 0x4c, 0x53, 0x4c, 0x2e, 0x73, 0x74, 0x64, 0x2e, 0x34, 0x35, 0x30,
   0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00,
   0x01, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x00,
   0x04, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, 0x00, 0x00, 0x00, 0x00,
-  0x09, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00,
-  0x1b, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00,
-  0x31, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, 0x03, 0x00, 0x03, 0x00,
+  0x08, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00,
+  0x29, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00,
+  0x46, 0x00, 0x00, 0x00, 0x51, 0x00, 0x00, 0x00, 0x03, 0x00, 0x03, 0x00,
   0x02, 0x00, 0x00, 0x00, 0xc2, 0x01, 0x00, 0x00, 0x04, 0x00, 0x09, 0x00,
   0x47, 0x4c, 0x5f, 0x41, 0x52, 0x42, 0x5f, 0x73, 0x65, 0x70, 0x61, 0x72,
   0x61, 0x74, 0x65, 0x5f, 0x73, 0x68, 0x61, 0x64, 0x65, 0x72, 0x5f, 0x6f,
@@ -1030,266 +1030,269 @@ unsigned char vkvg_main_vert_spv[] = {
   0x45, 0x5f, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x64, 0x69,
   0x72, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x00, 0x05, 0x00, 0x04, 0x00,
   0x04, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, 0x00, 0x00, 0x00, 0x00,
-  0x05, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, 0x6f, 0x75, 0x74, 0x55,
-  0x56, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00,
-  0x69, 0x6e, 0x55, 0x56, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00,
-  0x0f, 0x00, 0x00, 0x00, 0x6f, 0x75, 0x74, 0x50, 0x61, 0x74, 0x54, 0x79,
-  0x70, 0x65, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, 0x13, 0x00, 0x00, 0x00,
-  0x50, 0x75, 0x73, 0x68, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x73, 0x00, 0x00,
-  0x06, 0x00, 0x05, 0x00, 0x13, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-  0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x00, 0x00, 0x06, 0x00, 0x05, 0x00,
-  0x13, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x73, 0x69, 0x7a, 0x65,
-  0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x05, 0x00, 0x13, 0x00, 0x00, 0x00,
-  0x02, 0x00, 0x00, 0x00, 0x73, 0x72, 0x63, 0x54, 0x79, 0x70, 0x65, 0x00,
-  0x06, 0x00, 0x07, 0x00, 0x13, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
-  0x66, 0x75, 0x6c, 0x6c, 0x53, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x51, 0x75,
-  0x61, 0x64, 0x00, 0x00, 0x06, 0x00, 0x04, 0x00, 0x13, 0x00, 0x00, 0x00,
-  0x04, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x74, 0x00, 0x06, 0x00, 0x05, 0x00,
-  0x13, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x74, 0x49,
-  0x6e, 0x76, 0x00, 0x00, 0x05, 0x00, 0x03, 0x00, 0x15, 0x00, 0x00, 0x00,
-  0x70, 0x63, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x1b, 0x00, 0x00, 0x00,
-  0x6f, 0x75, 0x74, 0x53, 0x72, 0x63, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00,
-  0x21, 0x00, 0x00, 0x00, 0x6f, 0x75, 0x74, 0x4d, 0x61, 0x74, 0x00, 0x00,
-  0x05, 0x00, 0x06, 0x00, 0x2d, 0x00, 0x00, 0x00, 0x67, 0x6c, 0x5f, 0x50,
-  0x65, 0x72, 0x56, 0x65, 0x72, 0x74, 0x65, 0x78, 0x00, 0x00, 0x00, 0x00,
-  0x06, 0x00, 0x06, 0x00, 0x2d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-  0x67, 0x6c, 0x5f, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x00,
-  0x05, 0x00, 0x03, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-  0x05, 0x00, 0x06, 0x00, 0x31, 0x00, 0x00, 0x00, 0x67, 0x6c, 0x5f, 0x56,
-  0x65, 0x72, 0x74, 0x65, 0x78, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x00, 0x00,
-  0x05, 0x00, 0x03, 0x00, 0x48, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00,
-  0x05, 0x00, 0x04, 0x00, 0x50, 0x00, 0x00, 0x00, 0x69, 0x6e, 0x50, 0x6f,
-  0x73, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00,
+  0x05, 0x00, 0x05, 0x00, 0x08, 0x00, 0x00, 0x00, 0x6f, 0x75, 0x74, 0x50,
+  0x61, 0x74, 0x54, 0x79, 0x70, 0x65, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00,
+  0x0d, 0x00, 0x00, 0x00, 0x50, 0x75, 0x73, 0x68, 0x43, 0x6f, 0x6e, 0x73,
+  0x74, 0x73, 0x00, 0x00, 0x06, 0x00, 0x05, 0x00, 0x0d, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x00, 0x00,
+  0x06, 0x00, 0x05, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
+  0x73, 0x69, 0x7a, 0x65, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x05, 0x00,
+  0x0d, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x73, 0x72, 0x63, 0x54,
+  0x79, 0x70, 0x65, 0x00, 0x06, 0x00, 0x07, 0x00, 0x0d, 0x00, 0x00, 0x00,
+  0x03, 0x00, 0x00, 0x00, 0x66, 0x75, 0x6c, 0x6c, 0x53, 0x63, 0x72, 0x65,
+  0x65, 0x6e, 0x51, 0x75, 0x61, 0x64, 0x00, 0x00, 0x06, 0x00, 0x04, 0x00,
+  0x0d, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x74, 0x00,
+  0x06, 0x00, 0x05, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
+  0x6d, 0x61, 0x74, 0x49, 0x6e, 0x76, 0x00, 0x00, 0x05, 0x00, 0x03, 0x00,
+  0x0f, 0x00, 0x00, 0x00, 0x70, 0x63, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00,
+  0x15, 0x00, 0x00, 0x00, 0x6f, 0x75, 0x74, 0x53, 0x72, 0x63, 0x00, 0x00,
+  0x05, 0x00, 0x04, 0x00, 0x1b, 0x00, 0x00, 0x00, 0x6f, 0x75, 0x74, 0x4d,
+  0x61, 0x74, 0x00, 0x00, 0x05, 0x00, 0x06, 0x00, 0x27, 0x00, 0x00, 0x00,
+  0x67, 0x6c, 0x5f, 0x50, 0x65, 0x72, 0x56, 0x65, 0x72, 0x74, 0x65, 0x78,
+  0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x06, 0x00, 0x27, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x67, 0x6c, 0x5f, 0x50, 0x6f, 0x73, 0x69, 0x74,
+  0x69, 0x6f, 0x6e, 0x00, 0x05, 0x00, 0x03, 0x00, 0x29, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x06, 0x00, 0x2b, 0x00, 0x00, 0x00,
+  0x67, 0x6c, 0x5f, 0x56, 0x65, 0x72, 0x74, 0x65, 0x78, 0x49, 0x6e, 0x64,
+  0x65, 0x78, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x42, 0x00, 0x00, 0x00,
+  0x6f, 0x75, 0x74, 0x55, 0x56, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00,
+  0x46, 0x00, 0x00, 0x00, 0x69, 0x6e, 0x55, 0x56, 0x00, 0x00, 0x00, 0x00,
+  0x05, 0x00, 0x03, 0x00, 0x49, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00,
+  0x05, 0x00, 0x04, 0x00, 0x51, 0x00, 0x00, 0x00, 0x69, 0x6e, 0x50, 0x6f,
+  0x73, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0x08, 0x00, 0x00, 0x00,
+  0x0e, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x08, 0x00, 0x00, 0x00,
+  0x1e, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00,
+  0x0d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x0d, 0x00, 0x00, 0x00,
+  0x01, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
+  0x48, 0x00, 0x05, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
+  0x23, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00,
+  0x0d, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00,
+  0x1c, 0x00, 0x00, 0x00, 0x48, 0x00, 0x04, 0x00, 0x0d, 0x00, 0x00, 0x00,
+  0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00,
+  0x0d, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00,
+  0x20, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x0d, 0x00, 0x00, 0x00,
+  0x04, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
+  0x48, 0x00, 0x04, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
+  0x05, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x0d, 0x00, 0x00, 0x00,
+  0x05, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00,
+  0x48, 0x00, 0x05, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
+  0x07, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00,
+  0x0d, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00,
+  0x15, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
+  0x47, 0x00, 0x04, 0x00, 0x1b, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00,
+  0x03, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x27, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x47, 0x00, 0x03, 0x00, 0x27, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
+  0x47, 0x00, 0x04, 0x00, 0x2b, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00,
+  0x2a, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x42, 0x00, 0x00, 0x00,
   0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00,
-  0x0b, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
-  0x47, 0x00, 0x03, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00,
-  0x47, 0x00, 0x04, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00,
-  0x02, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x13, 0x00, 0x00, 0x00,
-  0x00, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-  0x48, 0x00, 0x05, 0x00, 0x13, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
-  0x23, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00,
-  0x13, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00,
-  0x18, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x13, 0x00, 0x00, 0x00,
-  0x03, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00,
-  0x48, 0x00, 0x04, 0x00, 0x13, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
-  0x05, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x13, 0x00, 0x00, 0x00,
-  0x04, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
-  0x48, 0x00, 0x05, 0x00, 0x13, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
-  0x07, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x48, 0x00, 0x04, 0x00,
-  0x13, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
-  0x48, 0x00, 0x05, 0x00, 0x13, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
-  0x23, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00,
-  0x13, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
-  0x08, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0x13, 0x00, 0x00, 0x00,
-  0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x1b, 0x00, 0x00, 0x00,
-  0x1e, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00,
-  0x21, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
-  0x48, 0x00, 0x05, 0x00, 0x2d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-  0x0b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00,
-  0x2d, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00,
-  0x31, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00,
-  0x47, 0x00, 0x04, 0x00, 0x50, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00,
+  0x46, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
+  0x47, 0x00, 0x04, 0x00, 0x51, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00,
   0x00, 0x00, 0x00, 0x00, 0x13, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00,
   0x21, 0x00, 0x03, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
-  0x16, 0x00, 0x03, 0x00, 0x06, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
-  0x17, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
-  0x03, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x08, 0x00, 0x00, 0x00,
-  0x03, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00,
-  0x08, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
-  0x20, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
-  0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00,
-  0x0b, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00,
-  0x0d, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
-  0x20, 0x00, 0x04, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
-  0x0d, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x0e, 0x00, 0x00, 0x00,
-  0x0f, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00,
-  0x10, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
-  0x17, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
-  0x02, 0x00, 0x00, 0x00, 0x18, 0x00, 0x04, 0x00, 0x12, 0x00, 0x00, 0x00,
-  0x11, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x08, 0x00,
-  0x13, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00,
-  0x0d, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00,
-  0x12, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x14, 0x00, 0x00, 0x00,
-  0x09, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00,
-  0x14, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00,
-  0x2b, 0x00, 0x04, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00,
-  0x02, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x17, 0x00, 0x00, 0x00,
-  0x09, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00,
-  0x1a, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
-  0x3b, 0x00, 0x04, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00,
-  0x03, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x0d, 0x00, 0x00, 0x00,
-  0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00,
-  0x1d, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
-  0x20, 0x00, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
-  0x12, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00,
-  0x21, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00,
-  0x0d, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
-  0x20, 0x00, 0x04, 0x00, 0x23, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00,
-  0x12, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x0d, 0x00, 0x00, 0x00,
-  0x26, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x14, 0x00, 0x02, 0x00,
-  0x29, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x03, 0x00, 0x2d, 0x00, 0x00, 0x00,
-  0x10, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x2e, 0x00, 0x00, 0x00,
-  0x03, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00,
-  0x2e, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
-  0x20, 0x00, 0x04, 0x00, 0x30, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
-  0x0d, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x30, 0x00, 0x00, 0x00,
-  0x31, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00,
-  0x0d, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
-  0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x00, 0x00,
-  0x00, 0x00, 0x00, 0x40, 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00,
-  0x3d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xbf, 0x2b, 0x00, 0x04, 0x00,
-  0x06, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-  0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00,
-  0x00, 0x00, 0x80, 0x3f, 0x20, 0x00, 0x04, 0x00, 0x47, 0x00, 0x00, 0x00,
-  0x07, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00,
-  0x0d, 0x00, 0x00, 0x00, 0x49, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
-  0x15, 0x00, 0x04, 0x00, 0x4a, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
-  0x00, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x4a, 0x00, 0x00, 0x00,
-  0x4b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00,
-  0x4c, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
-  0x20, 0x00, 0x04, 0x00, 0x4f, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
-  0x11, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x4f, 0x00, 0x00, 0x00,
-  0x50, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00,
-  0x51, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
-  0x2b, 0x00, 0x04, 0x00, 0x4a, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00,
-  0x01, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00,
-  0x6f, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x00, 0x00,
-  0x20, 0x00, 0x04, 0x00, 0x71, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00,
-  0x11, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00,
-  0x75, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00,
+  0x15, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
+  0x01, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00,
+  0x03, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00,
+  0x07, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
+  0x16, 0x00, 0x03, 0x00, 0x09, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
+  0x17, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00,
+  0x04, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00,
+  0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x18, 0x00, 0x04, 0x00,
+  0x0c, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
+  0x1e, 0x00, 0x08, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00,
+  0x0b, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
+  0x0c, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00,
+  0x0e, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00,
+  0x3b, 0x00, 0x04, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00,
+  0x09, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00,
+  0x10, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00,
+  0x11, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
+  0x20, 0x00, 0x04, 0x00, 0x14, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
+  0x0a, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x14, 0x00, 0x00, 0x00,
+  0x15, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00,
+  0x06, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x20, 0x00, 0x04, 0x00, 0x17, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00,
+  0x0a, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x1a, 0x00, 0x00, 0x00,
+  0x03, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00,
+  0x1a, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
+  0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00,
+  0x05, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x1d, 0x00, 0x00, 0x00,
+  0x09, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00,
+  0x06, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
+  0x14, 0x00, 0x02, 0x00, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x03, 0x00,
+  0x27, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00,
+  0x28, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00,
+  0x3b, 0x00, 0x04, 0x00, 0x28, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00,
+  0x03, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x2a, 0x00, 0x00, 0x00,
+  0x01, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00,
+  0x2a, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
+  0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00,
+  0x01, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00,
+  0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x2b, 0x00, 0x04, 0x00,
+  0x09, 0x00, 0x00, 0x00, 0x37, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xbf,
+  0x2b, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, 0x3a, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00,
+  0x3b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x3f, 0x17, 0x00, 0x04, 0x00,
+  0x40, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
+  0x20, 0x00, 0x04, 0x00, 0x41, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
+  0x40, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x41, 0x00, 0x00, 0x00,
+  0x42, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x06, 0x00,
+  0x40, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, 0x3a, 0x00, 0x00, 0x00,
+  0x3a, 0x00, 0x00, 0x00, 0x37, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00,
+  0x45, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00,
+  0x3b, 0x00, 0x04, 0x00, 0x45, 0x00, 0x00, 0x00, 0x46, 0x00, 0x00, 0x00,
+  0x01, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x48, 0x00, 0x00, 0x00,
+  0x07, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00,
+  0x06, 0x00, 0x00, 0x00, 0x4a, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
+  0x15, 0x00, 0x04, 0x00, 0x4b, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x4b, 0x00, 0x00, 0x00,
+  0x4c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00,
+  0x4d, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00,
+  0x20, 0x00, 0x04, 0x00, 0x50, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
+  0x0b, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x50, 0x00, 0x00, 0x00,
+  0x51, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00,
+  0x52, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00,
+  0x2b, 0x00, 0x04, 0x00, 0x4b, 0x00, 0x00, 0x00, 0x58, 0x00, 0x00, 0x00,
+  0x01, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x05, 0x00, 0x0b, 0x00, 0x00, 0x00,
+  0x70, 0x00, 0x00, 0x00, 0x35, 0x00, 0x00, 0x00, 0x35, 0x00, 0x00, 0x00,
+  0x20, 0x00, 0x04, 0x00, 0x72, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00,
+  0x0b, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x05, 0x00, 0x0b, 0x00, 0x00, 0x00,
+  0x76, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x00, 0x00,
   0x36, 0x00, 0x05, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
   0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00,
-  0x05, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x47, 0x00, 0x00, 0x00,
-  0x48, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00,
-  0x07, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00,
-  0x3e, 0x00, 0x03, 0x00, 0x09, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00,
-  0x41, 0x00, 0x05, 0x00, 0x17, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00,
-  0x15, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00,
-  0x0d, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00,
-  0x3e, 0x00, 0x03, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00,
-  0x41, 0x00, 0x05, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00,
-  0x15, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00,
-  0x10, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00,
-  0x3e, 0x00, 0x03, 0x00, 0x1b, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00,
-  0x41, 0x00, 0x05, 0x00, 0x23, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00,
-  0x15, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00,
-  0x12, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00,
-  0x3e, 0x00, 0x03, 0x00, 0x21, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00,
-  0x41, 0x00, 0x05, 0x00, 0x17, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00,
-  0x15, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00,
-  0x0d, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00,
-  0xab, 0x00, 0x05, 0x00, 0x29, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00,
-  0x28, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00,
-  0x2c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00,
-  0x2a, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x00, 0x00,
-  0xf8, 0x00, 0x02, 0x00, 0x2b, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00,
-  0x0d, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00,
-  0xc4, 0x00, 0x05, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00,
-  0x32, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, 0xc7, 0x00, 0x05, 0x00,
-  0x0d, 0x00, 0x00, 0x00, 0x35, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00,
-  0x16, 0x00, 0x00, 0x00, 0x6f, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00,
-  0x36, 0x00, 0x00, 0x00, 0x35, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00,
-  0x0d, 0x00, 0x00, 0x00, 0x37, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00,
-  0xc7, 0x00, 0x05, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00,
-  0x37, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x6f, 0x00, 0x04, 0x00,
-  0x06, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00,
-  0x50, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, 0x3a, 0x00, 0x00, 0x00,
-  0x36, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00,
-  0x11, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x3a, 0x00, 0x00, 0x00,
-  0x3b, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00,
-  0x3e, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x00, 0x00,
-  0x81, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00,
-  0x3c, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00,
-  0x06, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00,
-  0x00, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00,
-  0x43, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
-  0x50, 0x00, 0x07, 0x00, 0x10, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00,
-  0x42, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00,
-  0x41, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x1a, 0x00, 0x00, 0x00,
-  0x45, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00,
-  0x3e, 0x00, 0x03, 0x00, 0x45, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00,
-  0xfd, 0x00, 0x01, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x2c, 0x00, 0x00, 0x00,
-  0x41, 0x00, 0x07, 0x00, 0x4c, 0x00, 0x00, 0x00, 0x4d, 0x00, 0x00, 0x00,
-  0x15, 0x00, 0x00, 0x00, 0x49, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00,
-  0x4b, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00,
-  0x4e, 0x00, 0x00, 0x00, 0x4d, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00,
-  0x51, 0x00, 0x00, 0x00, 0x52, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00,
-  0x4b, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00,
-  0x53, 0x00, 0x00, 0x00, 0x52, 0x00, 0x00, 0x00, 0x85, 0x00, 0x05, 0x00,
-  0x06, 0x00, 0x00, 0x00, 0x54, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00,
-  0x53, 0x00, 0x00, 0x00, 0x41, 0x00, 0x07, 0x00, 0x4c, 0x00, 0x00, 0x00,
-  0x55, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x49, 0x00, 0x00, 0x00,
-  0x33, 0x00, 0x00, 0x00, 0x4b, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00,
-  0x06, 0x00, 0x00, 0x00, 0x56, 0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0x00,
-  0x41, 0x00, 0x05, 0x00, 0x51, 0x00, 0x00, 0x00, 0x58, 0x00, 0x00, 0x00,
-  0x50, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00,
-  0x06, 0x00, 0x00, 0x00, 0x59, 0x00, 0x00, 0x00, 0x58, 0x00, 0x00, 0x00,
-  0x85, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x5a, 0x00, 0x00, 0x00,
-  0x56, 0x00, 0x00, 0x00, 0x59, 0x00, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00,
-  0x06, 0x00, 0x00, 0x00, 0x5b, 0x00, 0x00, 0x00, 0x54, 0x00, 0x00, 0x00,
-  0x5a, 0x00, 0x00, 0x00, 0x41, 0x00, 0x07, 0x00, 0x4c, 0x00, 0x00, 0x00,
-  0x5c, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x49, 0x00, 0x00, 0x00,
-  0x16, 0x00, 0x00, 0x00, 0x4b, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00,
-  0x06, 0x00, 0x00, 0x00, 0x5d, 0x00, 0x00, 0x00, 0x5c, 0x00, 0x00, 0x00,
-  0x81, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x5e, 0x00, 0x00, 0x00,
-  0x5b, 0x00, 0x00, 0x00, 0x5d, 0x00, 0x00, 0x00, 0x41, 0x00, 0x07, 0x00,
-  0x4c, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00,
-  0x49, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00,
-  0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00,
-  0x5f, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x51, 0x00, 0x00, 0x00,
-  0x61, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, 0x4b, 0x00, 0x00, 0x00,
-  0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x62, 0x00, 0x00, 0x00,
-  0x61, 0x00, 0x00, 0x00, 0x85, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00,
-  0x63, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x62, 0x00, 0x00, 0x00,
-  0x41, 0x00, 0x07, 0x00, 0x4c, 0x00, 0x00, 0x00, 0x64, 0x00, 0x00, 0x00,
-  0x15, 0x00, 0x00, 0x00, 0x49, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00,
-  0x57, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00,
-  0x65, 0x00, 0x00, 0x00, 0x64, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00,
-  0x51, 0x00, 0x00, 0x00, 0x66, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00,
-  0x57, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00,
-  0x67, 0x00, 0x00, 0x00, 0x66, 0x00, 0x00, 0x00, 0x85, 0x00, 0x05, 0x00,
-  0x06, 0x00, 0x00, 0x00, 0x68, 0x00, 0x00, 0x00, 0x65, 0x00, 0x00, 0x00,
-  0x67, 0x00, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00,
-  0x69, 0x00, 0x00, 0x00, 0x63, 0x00, 0x00, 0x00, 0x68, 0x00, 0x00, 0x00,
-  0x41, 0x00, 0x07, 0x00, 0x4c, 0x00, 0x00, 0x00, 0x6a, 0x00, 0x00, 0x00,
-  0x15, 0x00, 0x00, 0x00, 0x49, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00,
-  0x57, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00,
-  0x6b, 0x00, 0x00, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00,
-  0x06, 0x00, 0x00, 0x00, 0x6c, 0x00, 0x00, 0x00, 0x69, 0x00, 0x00, 0x00,
-  0x6b, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00,
-  0x6d, 0x00, 0x00, 0x00, 0x5e, 0x00, 0x00, 0x00, 0x6c, 0x00, 0x00, 0x00,
-  0x3e, 0x00, 0x03, 0x00, 0x48, 0x00, 0x00, 0x00, 0x6d, 0x00, 0x00, 0x00,
-  0x3d, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00, 0x6e, 0x00, 0x00, 0x00,
-  0x48, 0x00, 0x00, 0x00, 0x85, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00,
-  0x70, 0x00, 0x00, 0x00, 0x6e, 0x00, 0x00, 0x00, 0x6f, 0x00, 0x00, 0x00,
-  0x41, 0x00, 0x05, 0x00, 0x71, 0x00, 0x00, 0x00, 0x72, 0x00, 0x00, 0x00,
-  0x15, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00,
-  0x11, 0x00, 0x00, 0x00, 0x73, 0x00, 0x00, 0x00, 0x72, 0x00, 0x00, 0x00,
-  0x88, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, 0x74, 0x00, 0x00, 0x00,
-  0x70, 0x00, 0x00, 0x00, 0x73, 0x00, 0x00, 0x00, 0x83, 0x00, 0x05, 0x00,
-  0x11, 0x00, 0x00, 0x00, 0x76, 0x00, 0x00, 0x00, 0x74, 0x00, 0x00, 0x00,
-  0x75, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00,
-  0x77, 0x00, 0x00, 0x00, 0x76, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-  0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00,
-  0x76, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x50, 0x00, 0x07, 0x00,
-  0x10, 0x00, 0x00, 0x00, 0x79, 0x00, 0x00, 0x00, 0x77, 0x00, 0x00, 0x00,
-  0x78, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00,
-  0x41, 0x00, 0x05, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x7a, 0x00, 0x00, 0x00,
-  0x2f, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00,
-  0x7a, 0x00, 0x00, 0x00, 0x79, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x01, 0x00,
+  0x05, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x48, 0x00, 0x00, 0x00,
+  0x49, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00,
+  0x11, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00,
+  0x10, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00,
+  0x13, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00,
+  0x08, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00,
+  0x17, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00,
+  0x16, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00,
+  0x19, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00,
+  0x15, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00,
+  0x1d, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00,
+  0x1c, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x0c, 0x00, 0x00, 0x00,
+  0x1f, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00,
+  0x1b, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00,
+  0x11, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00,
+  0x20, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00,
+  0x22, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0xab, 0x00, 0x05, 0x00,
+  0x23, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00,
+  0x16, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, 0x26, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, 0x24, 0x00, 0x00, 0x00,
+  0x25, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00,
+  0x25, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00,
+  0x2c, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, 0xc4, 0x00, 0x05, 0x00,
+  0x06, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x00, 0x00,
+  0x2d, 0x00, 0x00, 0x00, 0xc7, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00,
+  0x2f, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
+  0x6f, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00,
+  0x2f, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00,
+  0x31, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, 0xc7, 0x00, 0x05, 0x00,
+  0x06, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00,
+  0x10, 0x00, 0x00, 0x00, 0x6f, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00,
+  0x33, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00,
+  0x0b, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00,
+  0x33, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x0b, 0x00, 0x00, 0x00,
+  0x36, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0x35, 0x00, 0x00, 0x00,
+  0x50, 0x00, 0x05, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00,
+  0x37, 0x00, 0x00, 0x00, 0x37, 0x00, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00,
+  0x0b, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x00,
+  0x38, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x09, 0x00, 0x00, 0x00,
+  0x3c, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x51, 0x00, 0x05, 0x00, 0x09, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x00, 0x00,
+  0x39, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x50, 0x00, 0x07, 0x00,
+  0x0a, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00,
+  0x3d, 0x00, 0x00, 0x00, 0x3a, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x00, 0x00,
+  0x41, 0x00, 0x05, 0x00, 0x14, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00,
+  0x29, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00,
+  0x3f, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00,
+  0x42, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x01, 0x00,
+  0xf8, 0x00, 0x02, 0x00, 0x26, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00,
+  0x40, 0x00, 0x00, 0x00, 0x47, 0x00, 0x00, 0x00, 0x46, 0x00, 0x00, 0x00,
+  0x3e, 0x00, 0x03, 0x00, 0x42, 0x00, 0x00, 0x00, 0x47, 0x00, 0x00, 0x00,
+  0x41, 0x00, 0x07, 0x00, 0x4d, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00,
+  0x0f, 0x00, 0x00, 0x00, 0x4a, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00,
+  0x4c, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00,
+  0x4f, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00,
+  0x52, 0x00, 0x00, 0x00, 0x53, 0x00, 0x00, 0x00, 0x51, 0x00, 0x00, 0x00,
+  0x4c, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00,
+  0x54, 0x00, 0x00, 0x00, 0x53, 0x00, 0x00, 0x00, 0x85, 0x00, 0x05, 0x00,
+  0x09, 0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x00, 0x00,
+  0x54, 0x00, 0x00, 0x00, 0x41, 0x00, 0x07, 0x00, 0x4d, 0x00, 0x00, 0x00,
+  0x56, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x4a, 0x00, 0x00, 0x00,
+  0x2d, 0x00, 0x00, 0x00, 0x4c, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00,
+  0x09, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, 0x56, 0x00, 0x00, 0x00,
+  0x41, 0x00, 0x05, 0x00, 0x52, 0x00, 0x00, 0x00, 0x59, 0x00, 0x00, 0x00,
+  0x51, 0x00, 0x00, 0x00, 0x58, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00,
+  0x09, 0x00, 0x00, 0x00, 0x5a, 0x00, 0x00, 0x00, 0x59, 0x00, 0x00, 0x00,
+  0x85, 0x00, 0x05, 0x00, 0x09, 0x00, 0x00, 0x00, 0x5b, 0x00, 0x00, 0x00,
+  0x57, 0x00, 0x00, 0x00, 0x5a, 0x00, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00,
+  0x09, 0x00, 0x00, 0x00, 0x5c, 0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0x00,
+  0x5b, 0x00, 0x00, 0x00, 0x41, 0x00, 0x07, 0x00, 0x4d, 0x00, 0x00, 0x00,
+  0x5d, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x4a, 0x00, 0x00, 0x00,
+  0x10, 0x00, 0x00, 0x00, 0x4c, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00,
+  0x09, 0x00, 0x00, 0x00, 0x5e, 0x00, 0x00, 0x00, 0x5d, 0x00, 0x00, 0x00,
+  0x81, 0x00, 0x05, 0x00, 0x09, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x00, 0x00,
+  0x5c, 0x00, 0x00, 0x00, 0x5e, 0x00, 0x00, 0x00, 0x41, 0x00, 0x07, 0x00,
+  0x4d, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00,
+  0x4a, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x58, 0x00, 0x00, 0x00,
+  0x3d, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, 0x61, 0x00, 0x00, 0x00,
+  0x60, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x52, 0x00, 0x00, 0x00,
+  0x62, 0x00, 0x00, 0x00, 0x51, 0x00, 0x00, 0x00, 0x4c, 0x00, 0x00, 0x00,
+  0x3d, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, 0x63, 0x00, 0x00, 0x00,
+  0x62, 0x00, 0x00, 0x00, 0x85, 0x00, 0x05, 0x00, 0x09, 0x00, 0x00, 0x00,
+  0x64, 0x00, 0x00, 0x00, 0x61, 0x00, 0x00, 0x00, 0x63, 0x00, 0x00, 0x00,
+  0x41, 0x00, 0x07, 0x00, 0x4d, 0x00, 0x00, 0x00, 0x65, 0x00, 0x00, 0x00,
+  0x0f, 0x00, 0x00, 0x00, 0x4a, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00,
+  0x58, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00,
+  0x66, 0x00, 0x00, 0x00, 0x65, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00,
+  0x52, 0x00, 0x00, 0x00, 0x67, 0x00, 0x00, 0x00, 0x51, 0x00, 0x00, 0x00,
+  0x58, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00,
+  0x68, 0x00, 0x00, 0x00, 0x67, 0x00, 0x00, 0x00, 0x85, 0x00, 0x05, 0x00,
+  0x09, 0x00, 0x00, 0x00, 0x69, 0x00, 0x00, 0x00, 0x66, 0x00, 0x00, 0x00,
+  0x68, 0x00, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x09, 0x00, 0x00, 0x00,
+  0x6a, 0x00, 0x00, 0x00, 0x64, 0x00, 0x00, 0x00, 0x69, 0x00, 0x00, 0x00,
+  0x41, 0x00, 0x07, 0x00, 0x4d, 0x00, 0x00, 0x00, 0x6b, 0x00, 0x00, 0x00,
+  0x0f, 0x00, 0x00, 0x00, 0x4a, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
+  0x58, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00,
+  0x6c, 0x00, 0x00, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00,
+  0x09, 0x00, 0x00, 0x00, 0x6d, 0x00, 0x00, 0x00, 0x6a, 0x00, 0x00, 0x00,
+  0x6c, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x0b, 0x00, 0x00, 0x00,
+  0x6e, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x00, 0x00, 0x6d, 0x00, 0x00, 0x00,
+  0x3e, 0x00, 0x03, 0x00, 0x49, 0x00, 0x00, 0x00, 0x6e, 0x00, 0x00, 0x00,
+  0x3d, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x6f, 0x00, 0x00, 0x00,
+  0x49, 0x00, 0x00, 0x00, 0x85, 0x00, 0x05, 0x00, 0x0b, 0x00, 0x00, 0x00,
+  0x71, 0x00, 0x00, 0x00, 0x6f, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00,
+  0x41, 0x00, 0x05, 0x00, 0x72, 0x00, 0x00, 0x00, 0x73, 0x00, 0x00, 0x00,
+  0x0f, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00,
+  0x0b, 0x00, 0x00, 0x00, 0x74, 0x00, 0x00, 0x00, 0x73, 0x00, 0x00, 0x00,
+  0x88, 0x00, 0x05, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x75, 0x00, 0x00, 0x00,
+  0x71, 0x00, 0x00, 0x00, 0x74, 0x00, 0x00, 0x00, 0x83, 0x00, 0x05, 0x00,
+  0x0b, 0x00, 0x00, 0x00, 0x77, 0x00, 0x00, 0x00, 0x75, 0x00, 0x00, 0x00,
+  0x76, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x09, 0x00, 0x00, 0x00,
+  0x78, 0x00, 0x00, 0x00, 0x77, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x51, 0x00, 0x05, 0x00, 0x09, 0x00, 0x00, 0x00, 0x79, 0x00, 0x00, 0x00,
+  0x77, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x50, 0x00, 0x07, 0x00,
+  0x0a, 0x00, 0x00, 0x00, 0x7a, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00,
+  0x79, 0x00, 0x00, 0x00, 0x3a, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x00, 0x00,
+  0x41, 0x00, 0x05, 0x00, 0x14, 0x00, 0x00, 0x00, 0x7b, 0x00, 0x00, 0x00,
+  0x29, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00,
+  0x7b, 0x00, 0x00, 0x00, 0x7a, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x01, 0x00,
   0x38, 0x00, 0x01, 0x00
 };
-unsigned int vkvg_main_vert_spv_len = 3256;
+unsigned int vkvg_main_vert_spv_len = 3292;
 unsigned char vkvg_main_lcd_frag_spv[] = {
   0x03, 0x02, 0x23, 0x07, 0x00, 0x00, 0x01, 0x00, 0x07, 0x00, 0x0d, 0x00,
-  0xee, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00,
+  0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00,
   0x01, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x06, 0x00, 0x01, 0x00, 0x00, 0x00,
   0x47, 0x4c, 0x53, 0x4c, 0x2e, 0x73, 0x74, 0x64, 0x2e, 0x34, 0x35, 0x30,
   0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00,
   0x01, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x0b, 0x00, 0x04, 0x00, 0x00, 0x00,
   0x04, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, 0x00, 0x00, 0x00, 0x00,
-  0x0e, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00,
-  0x24, 0x00, 0x00, 0x00, 0xda, 0x00, 0x00, 0x00, 0xeb, 0x00, 0x00, 0x00,
+  0x0e, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00,
+  0x25, 0x00, 0x00, 0x00, 0xdc, 0x00, 0x00, 0x00, 0xed, 0x00, 0x00, 0x00,
   0x10, 0x00, 0x03, 0x00, 0x04, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
   0x03, 0x00, 0x03, 0x00, 0x02, 0x00, 0x00, 0x00, 0xc2, 0x01, 0x00, 0x00,
   0x04, 0x00, 0x09, 0x00, 0x47, 0x4c, 0x5f, 0x41, 0x52, 0x42, 0x5f, 0x73,
@@ -1308,72 +1311,72 @@ unsigned char vkvg_main_lcd_frag_spv[] = {
   0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x03, 0x00, 0x09, 0x00, 0x00, 0x00,
   0x63, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, 0x0e, 0x00, 0x00, 0x00,
   0x69, 0x6e, 0x50, 0x61, 0x74, 0x54, 0x79, 0x70, 0x65, 0x00, 0x00, 0x00,
-  0x05, 0x00, 0x04, 0x00, 0x15, 0x00, 0x00, 0x00, 0x69, 0x6e, 0x53, 0x72,
-  0x63, 0x00, 0x00, 0x00, 0x05, 0x00, 0x03, 0x00, 0x1a, 0x00, 0x00, 0x00,
-  0x70, 0x00, 0x00, 0x00, 0x05, 0x00, 0x06, 0x00, 0x1b, 0x00, 0x00, 0x00,
+  0x05, 0x00, 0x04, 0x00, 0x16, 0x00, 0x00, 0x00, 0x69, 0x6e, 0x53, 0x72,
+  0x63, 0x00, 0x00, 0x00, 0x05, 0x00, 0x03, 0x00, 0x1b, 0x00, 0x00, 0x00,
+  0x70, 0x00, 0x00, 0x00, 0x05, 0x00, 0x06, 0x00, 0x1c, 0x00, 0x00, 0x00,
   0x67, 0x6c, 0x5f, 0x46, 0x72, 0x61, 0x67, 0x43, 0x6f, 0x6f, 0x72, 0x64,
-  0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x03, 0x00, 0x21, 0x00, 0x00, 0x00,
-  0x75, 0x76, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x24, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x03, 0x00, 0x22, 0x00, 0x00, 0x00,
+  0x75, 0x76, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x25, 0x00, 0x00, 0x00,
   0x69, 0x6e, 0x4d, 0x61, 0x74, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00,
-  0x4d, 0x00, 0x00, 0x00, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x00, 0x00,
-  0x05, 0x00, 0x04, 0x00, 0x55, 0x00, 0x00, 0x00, 0x61, 0x6c, 0x70, 0x68,
-  0x61, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, 0x5b, 0x00, 0x00, 0x00,
+  0x4e, 0x00, 0x00, 0x00, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x00, 0x00,
+  0x05, 0x00, 0x04, 0x00, 0x56, 0x00, 0x00, 0x00, 0x61, 0x6c, 0x70, 0x68,
+  0x61, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, 0x5c, 0x00, 0x00, 0x00,
   0x5f, 0x75, 0x62, 0x6f, 0x47, 0x72, 0x61, 0x64, 0x00, 0x00, 0x00, 0x00,
-  0x06, 0x00, 0x04, 0x00, 0x5b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-  0x63, 0x70, 0x00, 0x00, 0x06, 0x00, 0x05, 0x00, 0x5b, 0x00, 0x00, 0x00,
+  0x06, 0x00, 0x04, 0x00, 0x5c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x63, 0x70, 0x00, 0x00, 0x06, 0x00, 0x05, 0x00, 0x5c, 0x00, 0x00, 0x00,
   0x01, 0x00, 0x00, 0x00, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x73, 0x00, 0x00,
-  0x06, 0x00, 0x05, 0x00, 0x5b, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
+  0x06, 0x00, 0x05, 0x00, 0x5c, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
   0x73, 0x74, 0x6f, 0x70, 0x73, 0x00, 0x00, 0x00, 0x06, 0x00, 0x05, 0x00,
-  0x5b, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x63, 0x6f, 0x75, 0x6e,
-  0x74, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x5d, 0x00, 0x00, 0x00,
+  0x5c, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x63, 0x6f, 0x75, 0x6e,
+  0x74, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x5e, 0x00, 0x00, 0x00,
   0x75, 0x62, 0x6f, 0x47, 0x72, 0x61, 0x64, 0x00, 0x05, 0x00, 0x09, 0x00,
-  0x6b, 0x00, 0x00, 0x00, 0x67, 0x72, 0x61, 0x64, 0x69, 0x65, 0x6e, 0x74,
+  0x6c, 0x00, 0x00, 0x00, 0x67, 0x72, 0x61, 0x64, 0x69, 0x65, 0x6e, 0x74,
   0x53, 0x74, 0x61, 0x72, 0x74, 0x50, 0x6f, 0x73, 0x52, 0x6f, 0x74, 0x61,
   0x74, 0x65, 0x64, 0x58, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x08, 0x00,
-  0x77, 0x00, 0x00, 0x00, 0x67, 0x72, 0x61, 0x64, 0x69, 0x65, 0x6e, 0x74,
+  0x78, 0x00, 0x00, 0x00, 0x67, 0x72, 0x61, 0x64, 0x69, 0x65, 0x6e, 0x74,
   0x45, 0x6e, 0x64, 0x50, 0x6f, 0x73, 0x52, 0x6f, 0x74, 0x61, 0x74, 0x65,
-  0x64, 0x58, 0x00, 0x00, 0x05, 0x00, 0x03, 0x00, 0x83, 0x00, 0x00, 0x00,
-  0x64, 0x00, 0x00, 0x00, 0x05, 0x00, 0x03, 0x00, 0x87, 0x00, 0x00, 0x00,
-  0x79, 0x00, 0x00, 0x00, 0x05, 0x00, 0x03, 0x00, 0x8a, 0x00, 0x00, 0x00,
-  0x78, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, 0x8d, 0x00, 0x00, 0x00,
+  0x64, 0x58, 0x00, 0x00, 0x05, 0x00, 0x03, 0x00, 0x84, 0x00, 0x00, 0x00,
+  0x64, 0x00, 0x00, 0x00, 0x05, 0x00, 0x03, 0x00, 0x88, 0x00, 0x00, 0x00,
+  0x79, 0x00, 0x00, 0x00, 0x05, 0x00, 0x03, 0x00, 0x8b, 0x00, 0x00, 0x00,
+  0x78, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, 0x8e, 0x00, 0x00, 0x00,
   0x78, 0x4c, 0x6f, 0x63, 0x52, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x00,
-  0x05, 0x00, 0x03, 0x00, 0xad, 0x00, 0x00, 0x00, 0x69, 0x00, 0x00, 0x00,
-  0x05, 0x00, 0x05, 0x00, 0xda, 0x00, 0x00, 0x00, 0x69, 0x6e, 0x46, 0x6f,
+  0x05, 0x00, 0x03, 0x00, 0xae, 0x00, 0x00, 0x00, 0x69, 0x00, 0x00, 0x00,
+  0x05, 0x00, 0x05, 0x00, 0xdc, 0x00, 0x00, 0x00, 0x69, 0x6e, 0x46, 0x6f,
   0x6e, 0x74, 0x55, 0x56, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00,
-  0xe4, 0x00, 0x00, 0x00, 0x66, 0x6f, 0x6e, 0x74, 0x4d, 0x61, 0x70, 0x00,
-  0x05, 0x00, 0x06, 0x00, 0xeb, 0x00, 0x00, 0x00, 0x6f, 0x75, 0x74, 0x46,
+  0xe6, 0x00, 0x00, 0x00, 0x66, 0x6f, 0x6e, 0x74, 0x4d, 0x61, 0x70, 0x00,
+  0x05, 0x00, 0x06, 0x00, 0xed, 0x00, 0x00, 0x00, 0x6f, 0x75, 0x74, 0x46,
   0x72, 0x61, 0x67, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x00, 0x00, 0x00, 0x00,
-  0x05, 0x00, 0x05, 0x00, 0xed, 0x00, 0x00, 0x00, 0x4e, 0x55, 0x4d, 0x5f,
+  0x05, 0x00, 0x05, 0x00, 0xef, 0x00, 0x00, 0x00, 0x4e, 0x55, 0x4d, 0x5f,
   0x53, 0x41, 0x4d, 0x50, 0x4c, 0x45, 0x53, 0x00, 0x47, 0x00, 0x03, 0x00,
   0x0e, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00,
   0x0e, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
-  0x47, 0x00, 0x04, 0x00, 0x15, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00,
-  0x01, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x1b, 0x00, 0x00, 0x00,
+  0x47, 0x00, 0x04, 0x00, 0x16, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00,
+  0x01, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x1c, 0x00, 0x00, 0x00,
   0x0b, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00,
-  0x24, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
-  0x47, 0x00, 0x04, 0x00, 0x4d, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00,
-  0x01, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x4d, 0x00, 0x00, 0x00,
+  0x25, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
+  0x47, 0x00, 0x04, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00,
+  0x01, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x4e, 0x00, 0x00, 0x00,
   0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00,
-  0x57, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
-  0x47, 0x00, 0x04, 0x00, 0x59, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
-  0x10, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x5a, 0x00, 0x00, 0x00,
+  0x58, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
+  0x47, 0x00, 0x04, 0x00, 0x5a, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
+  0x10, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x5b, 0x00, 0x00, 0x00,
   0x06, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00,
-  0x5b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00,
-  0x00, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x5b, 0x00, 0x00, 0x00,
+  0x5c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x5c, 0x00, 0x00, 0x00,
   0x01, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00,
-  0x48, 0x00, 0x05, 0x00, 0x5b, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
+  0x48, 0x00, 0x05, 0x00, 0x5c, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
   0x23, 0x00, 0x00, 0x00, 0x30, 0x01, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00,
-  0x5b, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00,
-  0x30, 0x02, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0x5b, 0x00, 0x00, 0x00,
-  0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x5d, 0x00, 0x00, 0x00,
+  0x5c, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00,
+  0x30, 0x02, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0x5c, 0x00, 0x00, 0x00,
+  0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x5e, 0x00, 0x00, 0x00,
   0x22, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00,
-  0x5d, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-  0x47, 0x00, 0x04, 0x00, 0xda, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00,
-  0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0xe4, 0x00, 0x00, 0x00,
+  0x5e, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x47, 0x00, 0x04, 0x00, 0xdc, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0xe6, 0x00, 0x00, 0x00,
   0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00,
-  0xe4, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-  0x47, 0x00, 0x04, 0x00, 0xeb, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00,
-  0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0xed, 0x00, 0x00, 0x00,
+  0xe6, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x47, 0x00, 0x04, 0x00, 0xed, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0xef, 0x00, 0x00, 0x00,
   0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x13, 0x00, 0x02, 0x00,
   0x02, 0x00, 0x00, 0x00, 0x21, 0x00, 0x03, 0x00, 0x03, 0x00, 0x00, 0x00,
   0x02, 0x00, 0x00, 0x00, 0x16, 0x00, 0x03, 0x00, 0x06, 0x00, 0x00, 0x00,
@@ -1388,381 +1391,383 @@ unsigned char vkvg_main_lcd_frag_spv[] = {
   0x20, 0x00, 0x04, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
   0x0c, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x0d, 0x00, 0x00, 0x00,
   0x0e, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00,
-  0x14, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
-  0x3b, 0x00, 0x04, 0x00, 0x14, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00,
-  0x01, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x18, 0x00, 0x00, 0x00,
+  0x15, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
+  0x3b, 0x00, 0x04, 0x00, 0x15, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00,
+  0x01, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x19, 0x00, 0x00, 0x00,
   0x06, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00,
-  0x19, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00,
-  0x3b, 0x00, 0x04, 0x00, 0x14, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00,
-  0x01, 0x00, 0x00, 0x00, 0x18, 0x00, 0x04, 0x00, 0x22, 0x00, 0x00, 0x00,
-  0x18, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00,
-  0x23, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00,
-  0x3b, 0x00, 0x04, 0x00, 0x23, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00,
+  0x1a, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00,
+  0x3b, 0x00, 0x04, 0x00, 0x15, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00,
+  0x01, 0x00, 0x00, 0x00, 0x18, 0x00, 0x04, 0x00, 0x23, 0x00, 0x00, 0x00,
+  0x19, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00,
+  0x24, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00,
+  0x3b, 0x00, 0x04, 0x00, 0x24, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00,
   0x01, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x0c, 0x00, 0x00, 0x00,
-  0x25, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00,
-  0x26, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-  0x2b, 0x00, 0x04, 0x00, 0x26, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00,
-  0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x28, 0x00, 0x00, 0x00,
+  0x26, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00,
+  0x27, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x2b, 0x00, 0x04, 0x00, 0x27, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x29, 0x00, 0x00, 0x00,
   0x01, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00,
-  0x2b, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
-  0x2b, 0x00, 0x04, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00,
-  0x01, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x26, 0x00, 0x00, 0x00,
-  0x32, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00,
-  0x0c, 0x00, 0x00, 0x00, 0x37, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
-  0x19, 0x00, 0x09, 0x00, 0x4a, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
+  0x2c, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
+  0x2b, 0x00, 0x04, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00,
+  0x01, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x27, 0x00, 0x00, 0x00,
+  0x33, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00,
+  0x0c, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
+  0x19, 0x00, 0x09, 0x00, 0x4b, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
   0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
   0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-  0x1b, 0x00, 0x03, 0x00, 0x4b, 0x00, 0x00, 0x00, 0x4a, 0x00, 0x00, 0x00,
-  0x20, 0x00, 0x04, 0x00, 0x4c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-  0x4b, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x4c, 0x00, 0x00, 0x00,
-  0x4d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00,
-  0x26, 0x00, 0x00, 0x00, 0x56, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
-  0x1c, 0x00, 0x04, 0x00, 0x57, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
-  0x56, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x26, 0x00, 0x00, 0x00,
-  0x58, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x04, 0x00,
-  0x59, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x58, 0x00, 0x00, 0x00,
-  0x1c, 0x00, 0x04, 0x00, 0x5a, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
-  0x58, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x06, 0x00, 0x5b, 0x00, 0x00, 0x00,
-  0x57, 0x00, 0x00, 0x00, 0x59, 0x00, 0x00, 0x00, 0x5a, 0x00, 0x00, 0x00,
-  0x26, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x5c, 0x00, 0x00, 0x00,
-  0x02, 0x00, 0x00, 0x00, 0x5b, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00,
-  0x5c, 0x00, 0x00, 0x00, 0x5d, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
-  0x20, 0x00, 0x04, 0x00, 0x5e, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
-  0x06, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x97, 0x00, 0x00, 0x00,
+  0x1b, 0x00, 0x03, 0x00, 0x4c, 0x00, 0x00, 0x00, 0x4b, 0x00, 0x00, 0x00,
+  0x20, 0x00, 0x04, 0x00, 0x4d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x4c, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x4d, 0x00, 0x00, 0x00,
+  0x4e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00,
+  0x27, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
+  0x1c, 0x00, 0x04, 0x00, 0x58, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
+  0x57, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x27, 0x00, 0x00, 0x00,
+  0x59, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x04, 0x00,
+  0x5a, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x59, 0x00, 0x00, 0x00,
+  0x1c, 0x00, 0x04, 0x00, 0x5b, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
+  0x59, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x06, 0x00, 0x5c, 0x00, 0x00, 0x00,
+  0x58, 0x00, 0x00, 0x00, 0x5a, 0x00, 0x00, 0x00, 0x5b, 0x00, 0x00, 0x00,
+  0x27, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x5d, 0x00, 0x00, 0x00,
+  0x02, 0x00, 0x00, 0x00, 0x5c, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00,
+  0x5d, 0x00, 0x00, 0x00, 0x5e, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
+  0x20, 0x00, 0x04, 0x00, 0x5f, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
+  0x06, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x98, 0x00, 0x00, 0x00,
   0x02, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00,
-  0xac, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00,
-  0x2b, 0x00, 0x04, 0x00, 0x0c, 0x00, 0x00, 0x00, 0xb5, 0x00, 0x00, 0x00,
-  0x03, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0xb6, 0x00, 0x00, 0x00,
-  0x02, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x14, 0x00, 0x02, 0x00,
-  0xba, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0xd8, 0x00, 0x00, 0x00,
+  0xad, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00,
+  0x2b, 0x00, 0x04, 0x00, 0x0c, 0x00, 0x00, 0x00, 0xb6, 0x00, 0x00, 0x00,
+  0x03, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0xb7, 0x00, 0x00, 0x00,
+  0x02, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, 0x14, 0x00, 0x02, 0x00,
+  0xbb, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0xda, 0x00, 0x00, 0x00,
   0x06, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00,
-  0xd9, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xd8, 0x00, 0x00, 0x00,
-  0x3b, 0x00, 0x04, 0x00, 0xd9, 0x00, 0x00, 0x00, 0xda, 0x00, 0x00, 0x00,
-  0x01, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x26, 0x00, 0x00, 0x00,
-  0xdb, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x19, 0x00, 0x09, 0x00,
-  0xe1, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
+  0xdb, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xda, 0x00, 0x00, 0x00,
+  0x3b, 0x00, 0x04, 0x00, 0xdb, 0x00, 0x00, 0x00, 0xdc, 0x00, 0x00, 0x00,
+  0x01, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x27, 0x00, 0x00, 0x00,
+  0xdd, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x19, 0x00, 0x09, 0x00,
+  0xe3, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
   0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
   0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x03, 0x00,
-  0xe2, 0x00, 0x00, 0x00, 0xe1, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00,
-  0xe3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe2, 0x00, 0x00, 0x00,
-  0x3b, 0x00, 0x04, 0x00, 0xe3, 0x00, 0x00, 0x00, 0xe4, 0x00, 0x00, 0x00,
-  0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0xea, 0x00, 0x00, 0x00,
+  0xe4, 0x00, 0x00, 0x00, 0xe3, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00,
+  0xe5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe4, 0x00, 0x00, 0x00,
+  0x3b, 0x00, 0x04, 0x00, 0xe5, 0x00, 0x00, 0x00, 0xe6, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0xec, 0x00, 0x00, 0x00,
   0x03, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00,
-  0xea, 0x00, 0x00, 0x00, 0xeb, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
-  0x32, 0x00, 0x04, 0x00, 0x0c, 0x00, 0x00, 0x00, 0xed, 0x00, 0x00, 0x00,
+  0xec, 0x00, 0x00, 0x00, 0xed, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
+  0x32, 0x00, 0x04, 0x00, 0x0c, 0x00, 0x00, 0x00, 0xef, 0x00, 0x00, 0x00,
   0x08, 0x00, 0x00, 0x00, 0x36, 0x00, 0x05, 0x00, 0x02, 0x00, 0x00, 0x00,
   0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
   0xf8, 0x00, 0x02, 0x00, 0x05, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00,
   0x08, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
-  0x3b, 0x00, 0x04, 0x00, 0x19, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00,
-  0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x19, 0x00, 0x00, 0x00,
-  0x21, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00,
-  0x2b, 0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
-  0x3b, 0x00, 0x04, 0x00, 0x2b, 0x00, 0x00, 0x00, 0x6b, 0x00, 0x00, 0x00,
-  0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x2b, 0x00, 0x00, 0x00,
-  0x77, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00,
-  0x2b, 0x00, 0x00, 0x00, 0x83, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
-  0x3b, 0x00, 0x04, 0x00, 0x2b, 0x00, 0x00, 0x00, 0x87, 0x00, 0x00, 0x00,
-  0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x2b, 0x00, 0x00, 0x00,
-  0x8a, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00,
-  0x2b, 0x00, 0x00, 0x00, 0x8d, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
-  0x3b, 0x00, 0x04, 0x00, 0xac, 0x00, 0x00, 0x00, 0xad, 0x00, 0x00, 0x00,
+  0x3b, 0x00, 0x04, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00,
+  0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x1a, 0x00, 0x00, 0x00,
+  0x22, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00,
+  0x2c, 0x00, 0x00, 0x00, 0x56, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
+  0x3b, 0x00, 0x04, 0x00, 0x2c, 0x00, 0x00, 0x00, 0x6c, 0x00, 0x00, 0x00,
+  0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x2c, 0x00, 0x00, 0x00,
+  0x78, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00,
+  0x2c, 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
+  0x3b, 0x00, 0x04, 0x00, 0x2c, 0x00, 0x00, 0x00, 0x88, 0x00, 0x00, 0x00,
+  0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x2c, 0x00, 0x00, 0x00,
+  0x8b, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00,
+  0x2c, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
+  0x3b, 0x00, 0x04, 0x00, 0xad, 0x00, 0x00, 0x00, 0xae, 0x00, 0x00, 0x00,
   0x07, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x09, 0x00, 0x00, 0x00,
   0x0b, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x0c, 0x00, 0x00, 0x00,
   0x0f, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00,
-  0x13, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfb, 0x00, 0x09, 0x00,
-  0x0f, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfb, 0x00, 0x0b, 0x00,
+  0x0f, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
   0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00,
-  0x02, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00,
-  0x10, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00,
-  0x16, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00,
-  0x09, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00,
-  0x13, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x11, 0x00, 0x00, 0x00,
-  0x3d, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00,
-  0x1b, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x07, 0x00, 0x18, 0x00, 0x00, 0x00,
-  0x1d, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00,
-  0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00,
-  0x07, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00,
-  0x4f, 0x00, 0x07, 0x00, 0x18, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00,
-  0x1e, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-  0x01, 0x00, 0x00, 0x00, 0x83, 0x00, 0x05, 0x00, 0x18, 0x00, 0x00, 0x00,
-  0x20, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00,
-  0x3e, 0x00, 0x03, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
-  0x41, 0x00, 0x06, 0x00, 0x28, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00,
-  0x24, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00,
-  0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00,
-  0x29, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x2b, 0x00, 0x00, 0x00,
-  0x2c, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00,
-  0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00,
-  0x2c, 0x00, 0x00, 0x00, 0x85, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00,
-  0x2e, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00,
-  0x41, 0x00, 0x06, 0x00, 0x28, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00,
-  0x24, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00,
-  0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00,
-  0x30, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x2b, 0x00, 0x00, 0x00,
-  0x33, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00,
-  0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00,
-  0x33, 0x00, 0x00, 0x00, 0x85, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00,
-  0x35, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00,
-  0x81, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x00,
-  0x2e, 0x00, 0x00, 0x00, 0x35, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00,
-  0x28, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00,
-  0x37, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00,
-  0x06, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00,
-  0x81, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x3a, 0x00, 0x00, 0x00,
-  0x36, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00,
-  0x28, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00,
-  0x25, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00,
-  0x06, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x00, 0x00,
-  0x41, 0x00, 0x05, 0x00, 0x2b, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x00, 0x00,
-  0x1a, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00,
-  0x06, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x00, 0x00,
-  0x85, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00,
-  0x3c, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00,
-  0x28, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00,
-  0x2f, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00,
-  0x06, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00,
-  0x41, 0x00, 0x05, 0x00, 0x2b, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00,
-  0x1a, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00,
-  0x06, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00,
-  0x85, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00,
-  0x41, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00,
-  0x06, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00,
-  0x44, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x28, 0x00, 0x00, 0x00,
-  0x46, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, 0x37, 0x00, 0x00, 0x00,
-  0x32, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00,
-  0x47, 0x00, 0x00, 0x00, 0x46, 0x00, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00,
-  0x06, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00,
-  0x47, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x18, 0x00, 0x00, 0x00,
-  0x49, 0x00, 0x00, 0x00, 0x3a, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00,
-  0x3e, 0x00, 0x03, 0x00, 0x21, 0x00, 0x00, 0x00, 0x49, 0x00, 0x00, 0x00,
-  0x3d, 0x00, 0x04, 0x00, 0x4b, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00,
-  0x4d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x18, 0x00, 0x00, 0x00,
-  0x4f, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00,
-  0x07, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00,
-  0x4f, 0x00, 0x07, 0x00, 0x18, 0x00, 0x00, 0x00, 0x51, 0x00, 0x00, 0x00,
-  0x50, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
-  0x03, 0x00, 0x00, 0x00, 0x88, 0x00, 0x05, 0x00, 0x18, 0x00, 0x00, 0x00,
-  0x52, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x00, 0x00, 0x51, 0x00, 0x00, 0x00,
-  0x57, 0x00, 0x05, 0x00, 0x07, 0x00, 0x00, 0x00, 0x53, 0x00, 0x00, 0x00,
-  0x4e, 0x00, 0x00, 0x00, 0x52, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00,
-  0x09, 0x00, 0x00, 0x00, 0x53, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00,
-  0x13, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x12, 0x00, 0x00, 0x00,
-  0x41, 0x00, 0x07, 0x00, 0x5e, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x00, 0x00,
-  0x5d, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00,
-  0x32, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00,
-  0x60, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x04, 0x00,
-  0x06, 0x00, 0x00, 0x00, 0x61, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00,
-  0x41, 0x00, 0x07, 0x00, 0x5e, 0x00, 0x00, 0x00, 0x62, 0x00, 0x00, 0x00,
-  0x5d, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00,
-  0x32, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00,
-  0x63, 0x00, 0x00, 0x00, 0x62, 0x00, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00,
-  0x06, 0x00, 0x00, 0x00, 0x64, 0x00, 0x00, 0x00, 0x61, 0x00, 0x00, 0x00,
-  0x63, 0x00, 0x00, 0x00, 0x41, 0x00, 0x07, 0x00, 0x5e, 0x00, 0x00, 0x00,
-  0x65, 0x00, 0x00, 0x00, 0x5d, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00,
-  0x2f, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00,
-  0x06, 0x00, 0x00, 0x00, 0x66, 0x00, 0x00, 0x00, 0x65, 0x00, 0x00, 0x00,
-  0x41, 0x00, 0x07, 0x00, 0x5e, 0x00, 0x00, 0x00, 0x67, 0x00, 0x00, 0x00,
-  0x5d, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00,
-  0x27, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00,
-  0x68, 0x00, 0x00, 0x00, 0x67, 0x00, 0x00, 0x00, 0x83, 0x00, 0x05, 0x00,
-  0x06, 0x00, 0x00, 0x00, 0x69, 0x00, 0x00, 0x00, 0x66, 0x00, 0x00, 0x00,
-  0x68, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x07, 0x00, 0x06, 0x00, 0x00, 0x00,
-  0x6a, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00,
-  0x64, 0x00, 0x00, 0x00, 0x69, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00,
-  0x55, 0x00, 0x00, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x41, 0x00, 0x07, 0x00,
-  0x5e, 0x00, 0x00, 0x00, 0x6c, 0x00, 0x00, 0x00, 0x5d, 0x00, 0x00, 0x00,
-  0x25, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00,
-  0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x6d, 0x00, 0x00, 0x00,
-  0x6c, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00,
-  0x6e, 0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x06, 0x00,
-  0x06, 0x00, 0x00, 0x00, 0x6f, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
-  0x0e, 0x00, 0x00, 0x00, 0x6e, 0x00, 0x00, 0x00, 0x85, 0x00, 0x05, 0x00,
-  0x06, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x6d, 0x00, 0x00, 0x00,
-  0x6f, 0x00, 0x00, 0x00, 0x41, 0x00, 0x07, 0x00, 0x5e, 0x00, 0x00, 0x00,
-  0x71, 0x00, 0x00, 0x00, 0x5d, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00,
-  0x25, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00,
-  0x06, 0x00, 0x00, 0x00, 0x72, 0x00, 0x00, 0x00, 0x71, 0x00, 0x00, 0x00,
-  0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x73, 0x00, 0x00, 0x00,
-  0x55, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x06, 0x00, 0x06, 0x00, 0x00, 0x00,
-  0x74, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00,
-  0x73, 0x00, 0x00, 0x00, 0x85, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00,
-  0x75, 0x00, 0x00, 0x00, 0x72, 0x00, 0x00, 0x00, 0x74, 0x00, 0x00, 0x00,
-  0x83, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x76, 0x00, 0x00, 0x00,
-  0x70, 0x00, 0x00, 0x00, 0x75, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00,
-  0x6b, 0x00, 0x00, 0x00, 0x76, 0x00, 0x00, 0x00, 0x41, 0x00, 0x07, 0x00,
-  0x5e, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x5d, 0x00, 0x00, 0x00,
-  0x25, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00,
-  0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x79, 0x00, 0x00, 0x00,
-  0x78, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00,
-  0x7a, 0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x06, 0x00,
-  0x06, 0x00, 0x00, 0x00, 0x7b, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
-  0x0e, 0x00, 0x00, 0x00, 0x7a, 0x00, 0x00, 0x00, 0x85, 0x00, 0x05, 0x00,
-  0x06, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x00, 0x00, 0x79, 0x00, 0x00, 0x00,
-  0x7b, 0x00, 0x00, 0x00, 0x41, 0x00, 0x07, 0x00, 0x5e, 0x00, 0x00, 0x00,
-  0x7d, 0x00, 0x00, 0x00, 0x5d, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00,
-  0x2f, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00,
-  0x06, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x7d, 0x00, 0x00, 0x00,
-  0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x00,
-  0x55, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x06, 0x00, 0x06, 0x00, 0x00, 0x00,
-  0x80, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00,
-  0x7f, 0x00, 0x00, 0x00, 0x85, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00,
-  0x81, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
-  0x83, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x82, 0x00, 0x00, 0x00,
-  0x7c, 0x00, 0x00, 0x00, 0x81, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00,
-  0x77, 0x00, 0x00, 0x00, 0x82, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00,
-  0x06, 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 0x00, 0x77, 0x00, 0x00, 0x00,
-  0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x85, 0x00, 0x00, 0x00,
-  0x6b, 0x00, 0x00, 0x00, 0x83, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00,
-  0x86, 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 0x00, 0x85, 0x00, 0x00, 0x00,
-  0x3e, 0x00, 0x03, 0x00, 0x83, 0x00, 0x00, 0x00, 0x86, 0x00, 0x00, 0x00,
-  0x41, 0x00, 0x05, 0x00, 0x28, 0x00, 0x00, 0x00, 0x88, 0x00, 0x00, 0x00,
-  0x1b, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00,
-  0x06, 0x00, 0x00, 0x00, 0x89, 0x00, 0x00, 0x00, 0x88, 0x00, 0x00, 0x00,
-  0x3e, 0x00, 0x03, 0x00, 0x87, 0x00, 0x00, 0x00, 0x89, 0x00, 0x00, 0x00,
-  0x41, 0x00, 0x05, 0x00, 0x28, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x00, 0x00,
-  0x1b, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00,
-  0x06, 0x00, 0x00, 0x00, 0x8c, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x00, 0x00,
-  0x3e, 0x00, 0x03, 0x00, 0x8a, 0x00, 0x00, 0x00, 0x8c, 0x00, 0x00, 0x00,
-  0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x00, 0x00,
-  0x8a, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00,
-  0x8f, 0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x06, 0x00,
-  0x06, 0x00, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
-  0x0e, 0x00, 0x00, 0x00, 0x8f, 0x00, 0x00, 0x00, 0x85, 0x00, 0x05, 0x00,
-  0x06, 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x00, 0x00,
-  0x90, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00,
-  0x92, 0x00, 0x00, 0x00, 0x87, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00,
-  0x06, 0x00, 0x00, 0x00, 0x93, 0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0x00,
-  0x0c, 0x00, 0x06, 0x00, 0x06, 0x00, 0x00, 0x00, 0x94, 0x00, 0x00, 0x00,
-  0x01, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x93, 0x00, 0x00, 0x00,
-  0x85, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x95, 0x00, 0x00, 0x00,
-  0x92, 0x00, 0x00, 0x00, 0x94, 0x00, 0x00, 0x00, 0x83, 0x00, 0x05, 0x00,
-  0x06, 0x00, 0x00, 0x00, 0x96, 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00,
-  0x95, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x8d, 0x00, 0x00, 0x00,
-  0x96, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x97, 0x00, 0x00, 0x00,
-  0x98, 0x00, 0x00, 0x00, 0x5d, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00,
-  0x25, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00,
-  0x99, 0x00, 0x00, 0x00, 0x98, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00,
-  0x97, 0x00, 0x00, 0x00, 0x9a, 0x00, 0x00, 0x00, 0x5d, 0x00, 0x00, 0x00,
-  0x2f, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00,
-  0x07, 0x00, 0x00, 0x00, 0x9b, 0x00, 0x00, 0x00, 0x9a, 0x00, 0x00, 0x00,
-  0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x9c, 0x00, 0x00, 0x00,
-  0x6b, 0x00, 0x00, 0x00, 0x41, 0x00, 0x07, 0x00, 0x5e, 0x00, 0x00, 0x00,
-  0x9d, 0x00, 0x00, 0x00, 0x5d, 0x00, 0x00, 0x00, 0x37, 0x00, 0x00, 0x00,
-  0x25, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00,
-  0x06, 0x00, 0x00, 0x00, 0x9e, 0x00, 0x00, 0x00, 0x9d, 0x00, 0x00, 0x00,
-  0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x9f, 0x00, 0x00, 0x00,
-  0x83, 0x00, 0x00, 0x00, 0x85, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00,
-  0xa0, 0x00, 0x00, 0x00, 0x9e, 0x00, 0x00, 0x00, 0x9f, 0x00, 0x00, 0x00,
-  0x81, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xa1, 0x00, 0x00, 0x00,
-  0x9c, 0x00, 0x00, 0x00, 0xa0, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00,
-  0x06, 0x00, 0x00, 0x00, 0xa2, 0x00, 0x00, 0x00, 0x6b, 0x00, 0x00, 0x00,
-  0x41, 0x00, 0x07, 0x00, 0x5e, 0x00, 0x00, 0x00, 0xa3, 0x00, 0x00, 0x00,
-  0x5d, 0x00, 0x00, 0x00, 0x37, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00,
-  0x27, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00,
-  0xa4, 0x00, 0x00, 0x00, 0xa3, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00,
-  0x06, 0x00, 0x00, 0x00, 0xa5, 0x00, 0x00, 0x00, 0x83, 0x00, 0x00, 0x00,
-  0x85, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xa6, 0x00, 0x00, 0x00,
-  0xa4, 0x00, 0x00, 0x00, 0xa5, 0x00, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00,
-  0x06, 0x00, 0x00, 0x00, 0xa7, 0x00, 0x00, 0x00, 0xa2, 0x00, 0x00, 0x00,
-  0xa6, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00,
-  0xa8, 0x00, 0x00, 0x00, 0x8d, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x08, 0x00,
-  0x06, 0x00, 0x00, 0x00, 0xa9, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
-  0x31, 0x00, 0x00, 0x00, 0xa1, 0x00, 0x00, 0x00, 0xa7, 0x00, 0x00, 0x00,
-  0xa8, 0x00, 0x00, 0x00, 0x50, 0x00, 0x07, 0x00, 0x07, 0x00, 0x00, 0x00,
-  0xaa, 0x00, 0x00, 0x00, 0xa9, 0x00, 0x00, 0x00, 0xa9, 0x00, 0x00, 0x00,
-  0xa9, 0x00, 0x00, 0x00, 0xa9, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x08, 0x00,
-  0x07, 0x00, 0x00, 0x00, 0xab, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
-  0x2e, 0x00, 0x00, 0x00, 0x99, 0x00, 0x00, 0x00, 0x9b, 0x00, 0x00, 0x00,
-  0xaa, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x09, 0x00, 0x00, 0x00,
-  0xab, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0xad, 0x00, 0x00, 0x00,
-  0x2f, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0xae, 0x00, 0x00, 0x00,
-  0xf8, 0x00, 0x02, 0x00, 0xae, 0x00, 0x00, 0x00, 0xf6, 0x00, 0x04, 0x00,
-  0xb0, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-  0xf9, 0x00, 0x02, 0x00, 0xb2, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00,
-  0xb2, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x0c, 0x00, 0x00, 0x00,
-  0xb3, 0x00, 0x00, 0x00, 0xad, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x04, 0x00,
-  0x26, 0x00, 0x00, 0x00, 0xb4, 0x00, 0x00, 0x00, 0xb3, 0x00, 0x00, 0x00,
-  0x41, 0x00, 0x05, 0x00, 0xb6, 0x00, 0x00, 0x00, 0xb7, 0x00, 0x00, 0x00,
-  0x5d, 0x00, 0x00, 0x00, 0xb5, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00,
-  0x26, 0x00, 0x00, 0x00, 0xb8, 0x00, 0x00, 0x00, 0xb7, 0x00, 0x00, 0x00,
-  0x82, 0x00, 0x05, 0x00, 0x26, 0x00, 0x00, 0x00, 0xb9, 0x00, 0x00, 0x00,
-  0xb8, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0xb0, 0x00, 0x05, 0x00,
-  0xba, 0x00, 0x00, 0x00, 0xbb, 0x00, 0x00, 0x00, 0xb4, 0x00, 0x00, 0x00,
-  0xb9, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, 0xbb, 0x00, 0x00, 0x00,
-  0xaf, 0x00, 0x00, 0x00, 0xb0, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00,
-  0xaf, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00,
-  0xbc, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00,
-  0x0c, 0x00, 0x00, 0x00, 0xbd, 0x00, 0x00, 0x00, 0xad, 0x00, 0x00, 0x00,
-  0x80, 0x00, 0x05, 0x00, 0x0c, 0x00, 0x00, 0x00, 0xbe, 0x00, 0x00, 0x00,
-  0xbd, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00,
-  0x97, 0x00, 0x00, 0x00, 0xbf, 0x00, 0x00, 0x00, 0x5d, 0x00, 0x00, 0x00,
-  0x2f, 0x00, 0x00, 0x00, 0xbe, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00,
-  0x07, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0xbf, 0x00, 0x00, 0x00,
-  0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0xc1, 0x00, 0x00, 0x00,
-  0x6b, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x0c, 0x00, 0x00, 0x00,
-  0xc2, 0x00, 0x00, 0x00, 0xad, 0x00, 0x00, 0x00, 0x41, 0x00, 0x07, 0x00,
-  0x5e, 0x00, 0x00, 0x00, 0xc3, 0x00, 0x00, 0x00, 0x5d, 0x00, 0x00, 0x00,
-  0x37, 0x00, 0x00, 0x00, 0xc2, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00,
-  0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0xc4, 0x00, 0x00, 0x00,
-  0xc3, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00,
-  0xc5, 0x00, 0x00, 0x00, 0x83, 0x00, 0x00, 0x00, 0x85, 0x00, 0x05, 0x00,
-  0x06, 0x00, 0x00, 0x00, 0xc6, 0x00, 0x00, 0x00, 0xc4, 0x00, 0x00, 0x00,
-  0xc5, 0x00, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00,
-  0xc7, 0x00, 0x00, 0x00, 0xc1, 0x00, 0x00, 0x00, 0xc6, 0x00, 0x00, 0x00,
-  0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0xc8, 0x00, 0x00, 0x00,
-  0x6b, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x0c, 0x00, 0x00, 0x00,
-  0xc9, 0x00, 0x00, 0x00, 0xad, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00,
-  0x0c, 0x00, 0x00, 0x00, 0xca, 0x00, 0x00, 0x00, 0xc9, 0x00, 0x00, 0x00,
-  0x2f, 0x00, 0x00, 0x00, 0x41, 0x00, 0x07, 0x00, 0x5e, 0x00, 0x00, 0x00,
-  0xcb, 0x00, 0x00, 0x00, 0x5d, 0x00, 0x00, 0x00, 0x37, 0x00, 0x00, 0x00,
-  0xca, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00,
-  0x06, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00, 0x00, 0xcb, 0x00, 0x00, 0x00,
-  0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0xcd, 0x00, 0x00, 0x00,
-  0x83, 0x00, 0x00, 0x00, 0x85, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00,
-  0xce, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00, 0x00, 0xcd, 0x00, 0x00, 0x00,
-  0x81, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xcf, 0x00, 0x00, 0x00,
-  0xc8, 0x00, 0x00, 0x00, 0xce, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00,
-  0x06, 0x00, 0x00, 0x00, 0xd0, 0x00, 0x00, 0x00, 0x8d, 0x00, 0x00, 0x00,
-  0x0c, 0x00, 0x08, 0x00, 0x06, 0x00, 0x00, 0x00, 0xd1, 0x00, 0x00, 0x00,
-  0x01, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, 0xc7, 0x00, 0x00, 0x00,
-  0xcf, 0x00, 0x00, 0x00, 0xd0, 0x00, 0x00, 0x00, 0x50, 0x00, 0x07, 0x00,
-  0x07, 0x00, 0x00, 0x00, 0xd2, 0x00, 0x00, 0x00, 0xd1, 0x00, 0x00, 0x00,
-  0xd1, 0x00, 0x00, 0x00, 0xd1, 0x00, 0x00, 0x00, 0xd1, 0x00, 0x00, 0x00,
-  0x0c, 0x00, 0x08, 0x00, 0x07, 0x00, 0x00, 0x00, 0xd3, 0x00, 0x00, 0x00,
-  0x01, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, 0xbc, 0x00, 0x00, 0x00,
-  0xc0, 0x00, 0x00, 0x00, 0xd2, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00,
-  0x09, 0x00, 0x00, 0x00, 0xd3, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00,
-  0xb1, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0xb1, 0x00, 0x00, 0x00,
-  0x3d, 0x00, 0x04, 0x00, 0x0c, 0x00, 0x00, 0x00, 0xd4, 0x00, 0x00, 0x00,
-  0xad, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x0c, 0x00, 0x00, 0x00,
-  0xd5, 0x00, 0x00, 0x00, 0xd4, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00,
-  0x3e, 0x00, 0x03, 0x00, 0xad, 0x00, 0x00, 0x00, 0xd5, 0x00, 0x00, 0x00,
-  0xf9, 0x00, 0x02, 0x00, 0xae, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00,
-  0xb0, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x13, 0x00, 0x00, 0x00,
-  0xf8, 0x00, 0x02, 0x00, 0x13, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00,
-  0x28, 0x00, 0x00, 0x00, 0xdc, 0x00, 0x00, 0x00, 0xda, 0x00, 0x00, 0x00,
-  0xdb, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00,
-  0xdd, 0x00, 0x00, 0x00, 0xdc, 0x00, 0x00, 0x00, 0xbe, 0x00, 0x05, 0x00,
-  0xba, 0x00, 0x00, 0x00, 0xde, 0x00, 0x00, 0x00, 0xdd, 0x00, 0x00, 0x00,
-  0x0a, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, 0xe0, 0x00, 0x00, 0x00,
-  0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, 0xde, 0x00, 0x00, 0x00,
-  0xdf, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00,
-  0xdf, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0xe2, 0x00, 0x00, 0x00,
-  0xe5, 0x00, 0x00, 0x00, 0xe4, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00,
-  0xd8, 0x00, 0x00, 0x00, 0xe6, 0x00, 0x00, 0x00, 0xda, 0x00, 0x00, 0x00,
-  0x57, 0x00, 0x05, 0x00, 0x07, 0x00, 0x00, 0x00, 0xe7, 0x00, 0x00, 0x00,
-  0xe5, 0x00, 0x00, 0x00, 0xe6, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00,
-  0x07, 0x00, 0x00, 0x00, 0xe8, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00,
-  0x85, 0x00, 0x05, 0x00, 0x07, 0x00, 0x00, 0x00, 0xe9, 0x00, 0x00, 0x00,
-  0xe8, 0x00, 0x00, 0x00, 0xe7, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00,
-  0x09, 0x00, 0x00, 0x00, 0xe9, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00,
-  0xe0, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0xe0, 0x00, 0x00, 0x00,
-  0x3d, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0xec, 0x00, 0x00, 0x00,
-  0x09, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0xeb, 0x00, 0x00, 0x00,
-  0xec, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x01, 0x00, 0x38, 0x00, 0x01, 0x00
+  0x02, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
+  0x13, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x10, 0x00, 0x00, 0x00,
+  0x3d, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00,
+  0x16, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x09, 0x00, 0x00, 0x00,
+  0x17, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x14, 0x00, 0x00, 0x00,
+  0xf8, 0x00, 0x02, 0x00, 0x11, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00,
+  0x07, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00,
+  0x4f, 0x00, 0x07, 0x00, 0x19, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00,
+  0x1d, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x01, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00,
+  0x1f, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x07, 0x00,
+  0x19, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00,
+  0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
+  0x83, 0x00, 0x05, 0x00, 0x19, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00,
+  0x1e, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00,
+  0x1b, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00,
+  0x29, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00,
+  0x26, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00,
+  0x06, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00,
+  0x41, 0x00, 0x05, 0x00, 0x2c, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00,
+  0x1b, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00,
+  0x06, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00,
+  0x85, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00,
+  0x2b, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00,
+  0x29, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00,
+  0x30, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00,
+  0x06, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00,
+  0x41, 0x00, 0x05, 0x00, 0x2c, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00,
+  0x1b, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00,
+  0x06, 0x00, 0x00, 0x00, 0x35, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00,
+  0x85, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x00,
+  0x32, 0x00, 0x00, 0x00, 0x35, 0x00, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00,
+  0x06, 0x00, 0x00, 0x00, 0x37, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00,
+  0x36, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x29, 0x00, 0x00, 0x00,
+  0x39, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00,
+  0x28, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00,
+  0x3a, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00,
+  0x06, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x00, 0x00, 0x37, 0x00, 0x00, 0x00,
+  0x3a, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x29, 0x00, 0x00, 0x00,
+  0x3c, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00,
+  0x33, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00,
+  0x3d, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00,
+  0x2c, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00,
+  0x28, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00,
+  0x3f, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x85, 0x00, 0x05, 0x00,
+  0x06, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x00, 0x00,
+  0x3f, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x29, 0x00, 0x00, 0x00,
+  0x41, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00,
+  0x33, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00,
+  0x42, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00,
+  0x2c, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00,
+  0x33, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00,
+  0x44, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, 0x85, 0x00, 0x05, 0x00,
+  0x06, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00,
+  0x44, 0x00, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00,
+  0x46, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00,
+  0x41, 0x00, 0x06, 0x00, 0x29, 0x00, 0x00, 0x00, 0x47, 0x00, 0x00, 0x00,
+  0x25, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00,
+  0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00,
+  0x47, 0x00, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00,
+  0x49, 0x00, 0x00, 0x00, 0x46, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00,
+  0x50, 0x00, 0x05, 0x00, 0x19, 0x00, 0x00, 0x00, 0x4a, 0x00, 0x00, 0x00,
+  0x3b, 0x00, 0x00, 0x00, 0x49, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00,
+  0x22, 0x00, 0x00, 0x00, 0x4a, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00,
+  0x4c, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00,
+  0x3d, 0x00, 0x04, 0x00, 0x19, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00,
+  0x22, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00,
+  0x51, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x07, 0x00,
+  0x19, 0x00, 0x00, 0x00, 0x52, 0x00, 0x00, 0x00, 0x51, 0x00, 0x00, 0x00,
+  0x51, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
+  0x88, 0x00, 0x05, 0x00, 0x19, 0x00, 0x00, 0x00, 0x53, 0x00, 0x00, 0x00,
+  0x50, 0x00, 0x00, 0x00, 0x52, 0x00, 0x00, 0x00, 0x57, 0x00, 0x05, 0x00,
+  0x07, 0x00, 0x00, 0x00, 0x54, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x00, 0x00,
+  0x53, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x09, 0x00, 0x00, 0x00,
+  0x54, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x14, 0x00, 0x00, 0x00,
+  0xf8, 0x00, 0x02, 0x00, 0x12, 0x00, 0x00, 0x00, 0x41, 0x00, 0x07, 0x00,
+  0x5f, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x5e, 0x00, 0x00, 0x00,
+  0x26, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00,
+  0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x61, 0x00, 0x00, 0x00,
+  0x60, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00,
+  0x62, 0x00, 0x00, 0x00, 0x61, 0x00, 0x00, 0x00, 0x41, 0x00, 0x07, 0x00,
+  0x5f, 0x00, 0x00, 0x00, 0x63, 0x00, 0x00, 0x00, 0x5e, 0x00, 0x00, 0x00,
+  0x26, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00,
+  0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x64, 0x00, 0x00, 0x00,
+  0x63, 0x00, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00,
+  0x65, 0x00, 0x00, 0x00, 0x62, 0x00, 0x00, 0x00, 0x64, 0x00, 0x00, 0x00,
+  0x41, 0x00, 0x07, 0x00, 0x5f, 0x00, 0x00, 0x00, 0x66, 0x00, 0x00, 0x00,
+  0x5e, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00,
+  0x28, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00,
+  0x67, 0x00, 0x00, 0x00, 0x66, 0x00, 0x00, 0x00, 0x41, 0x00, 0x07, 0x00,
+  0x5f, 0x00, 0x00, 0x00, 0x68, 0x00, 0x00, 0x00, 0x5e, 0x00, 0x00, 0x00,
+  0x26, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00,
+  0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x69, 0x00, 0x00, 0x00,
+  0x68, 0x00, 0x00, 0x00, 0x83, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00,
+  0x6a, 0x00, 0x00, 0x00, 0x67, 0x00, 0x00, 0x00, 0x69, 0x00, 0x00, 0x00,
+  0x0c, 0x00, 0x07, 0x00, 0x06, 0x00, 0x00, 0x00, 0x6b, 0x00, 0x00, 0x00,
+  0x01, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x65, 0x00, 0x00, 0x00,
+  0x6a, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x56, 0x00, 0x00, 0x00,
+  0x6b, 0x00, 0x00, 0x00, 0x41, 0x00, 0x07, 0x00, 0x5f, 0x00, 0x00, 0x00,
+  0x6d, 0x00, 0x00, 0x00, 0x5e, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00,
+  0x26, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00,
+  0x06, 0x00, 0x00, 0x00, 0x6e, 0x00, 0x00, 0x00, 0x6d, 0x00, 0x00, 0x00,
+  0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x6f, 0x00, 0x00, 0x00,
+  0x56, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x06, 0x00, 0x06, 0x00, 0x00, 0x00,
+  0x70, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00,
+  0x6f, 0x00, 0x00, 0x00, 0x85, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00,
+  0x71, 0x00, 0x00, 0x00, 0x6e, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00,
+  0x41, 0x00, 0x07, 0x00, 0x5f, 0x00, 0x00, 0x00, 0x72, 0x00, 0x00, 0x00,
+  0x5e, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00,
+  0x33, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00,
+  0x73, 0x00, 0x00, 0x00, 0x72, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00,
+  0x06, 0x00, 0x00, 0x00, 0x74, 0x00, 0x00, 0x00, 0x56, 0x00, 0x00, 0x00,
+  0x0c, 0x00, 0x06, 0x00, 0x06, 0x00, 0x00, 0x00, 0x75, 0x00, 0x00, 0x00,
+  0x01, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x74, 0x00, 0x00, 0x00,
+  0x85, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x76, 0x00, 0x00, 0x00,
+  0x73, 0x00, 0x00, 0x00, 0x75, 0x00, 0x00, 0x00, 0x83, 0x00, 0x05, 0x00,
+  0x06, 0x00, 0x00, 0x00, 0x77, 0x00, 0x00, 0x00, 0x71, 0x00, 0x00, 0x00,
+  0x76, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x6c, 0x00, 0x00, 0x00,
+  0x77, 0x00, 0x00, 0x00, 0x41, 0x00, 0x07, 0x00, 0x5f, 0x00, 0x00, 0x00,
+  0x79, 0x00, 0x00, 0x00, 0x5e, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00,
+  0x30, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00,
+  0x06, 0x00, 0x00, 0x00, 0x7a, 0x00, 0x00, 0x00, 0x79, 0x00, 0x00, 0x00,
+  0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x7b, 0x00, 0x00, 0x00,
+  0x56, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x06, 0x00, 0x06, 0x00, 0x00, 0x00,
+  0x7c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00,
+  0x7b, 0x00, 0x00, 0x00, 0x85, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00,
+  0x7d, 0x00, 0x00, 0x00, 0x7a, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x00, 0x00,
+  0x41, 0x00, 0x07, 0x00, 0x5f, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00,
+  0x5e, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00,
+  0x33, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00,
+  0x7f, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00,
+  0x06, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x56, 0x00, 0x00, 0x00,
+  0x0c, 0x00, 0x06, 0x00, 0x06, 0x00, 0x00, 0x00, 0x81, 0x00, 0x00, 0x00,
+  0x01, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
+  0x85, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x82, 0x00, 0x00, 0x00,
+  0x7f, 0x00, 0x00, 0x00, 0x81, 0x00, 0x00, 0x00, 0x83, 0x00, 0x05, 0x00,
+  0x06, 0x00, 0x00, 0x00, 0x83, 0x00, 0x00, 0x00, 0x7d, 0x00, 0x00, 0x00,
+  0x82, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x78, 0x00, 0x00, 0x00,
+  0x83, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00,
+  0x85, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00,
+  0x06, 0x00, 0x00, 0x00, 0x86, 0x00, 0x00, 0x00, 0x6c, 0x00, 0x00, 0x00,
+  0x83, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x87, 0x00, 0x00, 0x00,
+  0x85, 0x00, 0x00, 0x00, 0x86, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00,
+  0x84, 0x00, 0x00, 0x00, 0x87, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00,
+  0x29, 0x00, 0x00, 0x00, 0x89, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00,
+  0x33, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00,
+  0x8a, 0x00, 0x00, 0x00, 0x89, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00,
+  0x88, 0x00, 0x00, 0x00, 0x8a, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00,
+  0x29, 0x00, 0x00, 0x00, 0x8c, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00,
+  0x28, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00,
+  0x8d, 0x00, 0x00, 0x00, 0x8c, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00,
+  0x8b, 0x00, 0x00, 0x00, 0x8d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00,
+  0x06, 0x00, 0x00, 0x00, 0x8f, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x00, 0x00,
+  0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00,
+  0x56, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x06, 0x00, 0x06, 0x00, 0x00, 0x00,
+  0x91, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00,
+  0x90, 0x00, 0x00, 0x00, 0x85, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00,
+  0x92, 0x00, 0x00, 0x00, 0x8f, 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00,
+  0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x93, 0x00, 0x00, 0x00,
+  0x88, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00,
+  0x94, 0x00, 0x00, 0x00, 0x56, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x06, 0x00,
+  0x06, 0x00, 0x00, 0x00, 0x95, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
+  0x0d, 0x00, 0x00, 0x00, 0x94, 0x00, 0x00, 0x00, 0x85, 0x00, 0x05, 0x00,
+  0x06, 0x00, 0x00, 0x00, 0x96, 0x00, 0x00, 0x00, 0x93, 0x00, 0x00, 0x00,
+  0x95, 0x00, 0x00, 0x00, 0x83, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00,
+  0x97, 0x00, 0x00, 0x00, 0x92, 0x00, 0x00, 0x00, 0x96, 0x00, 0x00, 0x00,
+  0x3e, 0x00, 0x03, 0x00, 0x8e, 0x00, 0x00, 0x00, 0x97, 0x00, 0x00, 0x00,
+  0x41, 0x00, 0x06, 0x00, 0x98, 0x00, 0x00, 0x00, 0x99, 0x00, 0x00, 0x00,
+  0x5e, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00,
+  0x3d, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x9a, 0x00, 0x00, 0x00,
+  0x99, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x98, 0x00, 0x00, 0x00,
+  0x9b, 0x00, 0x00, 0x00, 0x5e, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00,
+  0x30, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00,
+  0x9c, 0x00, 0x00, 0x00, 0x9b, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00,
+  0x06, 0x00, 0x00, 0x00, 0x9d, 0x00, 0x00, 0x00, 0x6c, 0x00, 0x00, 0x00,
+  0x41, 0x00, 0x07, 0x00, 0x5f, 0x00, 0x00, 0x00, 0x9e, 0x00, 0x00, 0x00,
+  0x5e, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00,
+  0x28, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00,
+  0x9f, 0x00, 0x00, 0x00, 0x9e, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00,
+  0x06, 0x00, 0x00, 0x00, 0xa0, 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 0x00,
+  0x85, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xa1, 0x00, 0x00, 0x00,
+  0x9f, 0x00, 0x00, 0x00, 0xa0, 0x00, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00,
+  0x06, 0x00, 0x00, 0x00, 0xa2, 0x00, 0x00, 0x00, 0x9d, 0x00, 0x00, 0x00,
+  0xa1, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00,
+  0xa3, 0x00, 0x00, 0x00, 0x6c, 0x00, 0x00, 0x00, 0x41, 0x00, 0x07, 0x00,
+  0x5f, 0x00, 0x00, 0x00, 0xa4, 0x00, 0x00, 0x00, 0x5e, 0x00, 0x00, 0x00,
+  0x38, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00,
+  0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0xa5, 0x00, 0x00, 0x00,
+  0xa4, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00,
+  0xa6, 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 0x00, 0x85, 0x00, 0x05, 0x00,
+  0x06, 0x00, 0x00, 0x00, 0xa7, 0x00, 0x00, 0x00, 0xa5, 0x00, 0x00, 0x00,
+  0xa6, 0x00, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00,
+  0xa8, 0x00, 0x00, 0x00, 0xa3, 0x00, 0x00, 0x00, 0xa7, 0x00, 0x00, 0x00,
+  0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0xa9, 0x00, 0x00, 0x00,
+  0x8e, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x08, 0x00, 0x06, 0x00, 0x00, 0x00,
+  0xaa, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00,
+  0xa2, 0x00, 0x00, 0x00, 0xa8, 0x00, 0x00, 0x00, 0xa9, 0x00, 0x00, 0x00,
+  0x50, 0x00, 0x07, 0x00, 0x07, 0x00, 0x00, 0x00, 0xab, 0x00, 0x00, 0x00,
+  0xaa, 0x00, 0x00, 0x00, 0xaa, 0x00, 0x00, 0x00, 0xaa, 0x00, 0x00, 0x00,
+  0xaa, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x08, 0x00, 0x07, 0x00, 0x00, 0x00,
+  0xac, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00,
+  0x9a, 0x00, 0x00, 0x00, 0x9c, 0x00, 0x00, 0x00, 0xab, 0x00, 0x00, 0x00,
+  0x3e, 0x00, 0x03, 0x00, 0x09, 0x00, 0x00, 0x00, 0xac, 0x00, 0x00, 0x00,
+  0x3e, 0x00, 0x03, 0x00, 0xae, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00,
+  0xf9, 0x00, 0x02, 0x00, 0xaf, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00,
+  0xaf, 0x00, 0x00, 0x00, 0xf6, 0x00, 0x04, 0x00, 0xb1, 0x00, 0x00, 0x00,
+  0xb2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00,
+  0xb3, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0xb3, 0x00, 0x00, 0x00,
+  0x3d, 0x00, 0x04, 0x00, 0x0c, 0x00, 0x00, 0x00, 0xb4, 0x00, 0x00, 0x00,
+  0xae, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x04, 0x00, 0x27, 0x00, 0x00, 0x00,
+  0xb5, 0x00, 0x00, 0x00, 0xb4, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00,
+  0xb7, 0x00, 0x00, 0x00, 0xb8, 0x00, 0x00, 0x00, 0x5e, 0x00, 0x00, 0x00,
+  0xb6, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x27, 0x00, 0x00, 0x00,
+  0xb9, 0x00, 0x00, 0x00, 0xb8, 0x00, 0x00, 0x00, 0x82, 0x00, 0x05, 0x00,
+  0x27, 0x00, 0x00, 0x00, 0xba, 0x00, 0x00, 0x00, 0xb9, 0x00, 0x00, 0x00,
+  0x33, 0x00, 0x00, 0x00, 0xb0, 0x00, 0x05, 0x00, 0xbb, 0x00, 0x00, 0x00,
+  0xbc, 0x00, 0x00, 0x00, 0xb5, 0x00, 0x00, 0x00, 0xba, 0x00, 0x00, 0x00,
+  0xfa, 0x00, 0x04, 0x00, 0xbc, 0x00, 0x00, 0x00, 0xb0, 0x00, 0x00, 0x00,
+  0xb1, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0xb0, 0x00, 0x00, 0x00,
+  0x3d, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0xbd, 0x00, 0x00, 0x00,
+  0x09, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x0c, 0x00, 0x00, 0x00,
+  0xbe, 0x00, 0x00, 0x00, 0xae, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00,
+  0x0c, 0x00, 0x00, 0x00, 0xbf, 0x00, 0x00, 0x00, 0xbe, 0x00, 0x00, 0x00,
+  0x30, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x98, 0x00, 0x00, 0x00,
+  0xc0, 0x00, 0x00, 0x00, 0x5e, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00,
+  0xbf, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00,
+  0xc1, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00,
+  0x06, 0x00, 0x00, 0x00, 0xc2, 0x00, 0x00, 0x00, 0x6c, 0x00, 0x00, 0x00,
+  0x3d, 0x00, 0x04, 0x00, 0x0c, 0x00, 0x00, 0x00, 0xc3, 0x00, 0x00, 0x00,
+  0xae, 0x00, 0x00, 0x00, 0x41, 0x00, 0x07, 0x00, 0x5f, 0x00, 0x00, 0x00,
+  0xc4, 0x00, 0x00, 0x00, 0x5e, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00,
+  0xc3, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00,
+  0x06, 0x00, 0x00, 0x00, 0xc5, 0x00, 0x00, 0x00, 0xc4, 0x00, 0x00, 0x00,
+  0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0xc6, 0x00, 0x00, 0x00,
+  0x84, 0x00, 0x00, 0x00, 0x85, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00,
+  0xc7, 0x00, 0x00, 0x00, 0xc5, 0x00, 0x00, 0x00, 0xc6, 0x00, 0x00, 0x00,
+  0x81, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xc8, 0x00, 0x00, 0x00,
+  0xc2, 0x00, 0x00, 0x00, 0xc7, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00,
+  0x06, 0x00, 0x00, 0x00, 0xc9, 0x00, 0x00, 0x00, 0x6c, 0x00, 0x00, 0x00,
+  0x3d, 0x00, 0x04, 0x00, 0x0c, 0x00, 0x00, 0x00, 0xca, 0x00, 0x00, 0x00,
+  0xae, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x0c, 0x00, 0x00, 0x00,
+  0xcb, 0x00, 0x00, 0x00, 0xca, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00,
+  0x41, 0x00, 0x07, 0x00, 0x5f, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00, 0x00,
+  0x5e, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0xcb, 0x00, 0x00, 0x00,
+  0x28, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00,
+  0xcd, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00,
+  0x06, 0x00, 0x00, 0x00, 0xce, 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 0x00,
+  0x85, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xcf, 0x00, 0x00, 0x00,
+  0xcd, 0x00, 0x00, 0x00, 0xce, 0x00, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00,
+  0x06, 0x00, 0x00, 0x00, 0xd0, 0x00, 0x00, 0x00, 0xc9, 0x00, 0x00, 0x00,
+  0xcf, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00,
+  0xd1, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x08, 0x00,
+  0x06, 0x00, 0x00, 0x00, 0xd2, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
+  0x31, 0x00, 0x00, 0x00, 0xc8, 0x00, 0x00, 0x00, 0xd0, 0x00, 0x00, 0x00,
+  0xd1, 0x00, 0x00, 0x00, 0x50, 0x00, 0x07, 0x00, 0x07, 0x00, 0x00, 0x00,
+  0xd3, 0x00, 0x00, 0x00, 0xd2, 0x00, 0x00, 0x00, 0xd2, 0x00, 0x00, 0x00,
+  0xd2, 0x00, 0x00, 0x00, 0xd2, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x08, 0x00,
+  0x07, 0x00, 0x00, 0x00, 0xd4, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
+  0x2e, 0x00, 0x00, 0x00, 0xbd, 0x00, 0x00, 0x00, 0xc1, 0x00, 0x00, 0x00,
+  0xd3, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x09, 0x00, 0x00, 0x00,
+  0xd4, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0xb2, 0x00, 0x00, 0x00,
+  0xf8, 0x00, 0x02, 0x00, 0xb2, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00,
+  0x0c, 0x00, 0x00, 0x00, 0xd5, 0x00, 0x00, 0x00, 0xae, 0x00, 0x00, 0x00,
+  0x80, 0x00, 0x05, 0x00, 0x0c, 0x00, 0x00, 0x00, 0xd6, 0x00, 0x00, 0x00,
+  0xd5, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00,
+  0xae, 0x00, 0x00, 0x00, 0xd6, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00,
+  0xaf, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0xb1, 0x00, 0x00, 0x00,
+  0xf9, 0x00, 0x02, 0x00, 0x14, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00,
+  0x13, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x14, 0x00, 0x00, 0x00,
+  0xf8, 0x00, 0x02, 0x00, 0x14, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00,
+  0x29, 0x00, 0x00, 0x00, 0xde, 0x00, 0x00, 0x00, 0xdc, 0x00, 0x00, 0x00,
+  0xdd, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00,
+  0xdf, 0x00, 0x00, 0x00, 0xde, 0x00, 0x00, 0x00, 0xbe, 0x00, 0x05, 0x00,
+  0xbb, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0xdf, 0x00, 0x00, 0x00,
+  0x0a, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, 0xe2, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, 0xe0, 0x00, 0x00, 0x00,
+  0xe1, 0x00, 0x00, 0x00, 0xe2, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00,
+  0xe1, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0xe4, 0x00, 0x00, 0x00,
+  0xe7, 0x00, 0x00, 0x00, 0xe6, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00,
+  0xda, 0x00, 0x00, 0x00, 0xe8, 0x00, 0x00, 0x00, 0xdc, 0x00, 0x00, 0x00,
+  0x57, 0x00, 0x05, 0x00, 0x07, 0x00, 0x00, 0x00, 0xe9, 0x00, 0x00, 0x00,
+  0xe7, 0x00, 0x00, 0x00, 0xe8, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00,
+  0x07, 0x00, 0x00, 0x00, 0xea, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00,
+  0x85, 0x00, 0x05, 0x00, 0x07, 0x00, 0x00, 0x00, 0xeb, 0x00, 0x00, 0x00,
+  0xea, 0x00, 0x00, 0x00, 0xe9, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00,
+  0x09, 0x00, 0x00, 0x00, 0xeb, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00,
+  0xe2, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0xe2, 0x00, 0x00, 0x00,
+  0x3d, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0xee, 0x00, 0x00, 0x00,
+  0x09, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0xed, 0x00, 0x00, 0x00,
+  0xee, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x01, 0x00, 0x38, 0x00, 0x01, 0x00
 };
-unsigned int vkvg_main_lcd_frag_spv_len = 5760;
+unsigned int vkvg_main_lcd_frag_spv_len = 5784;
 unsigned char wired_frag_spv[] = {
   0x03, 0x02, 0x23, 0x07, 0x00, 0x00, 0x01, 0x00, 0x07, 0x00, 0x0d, 0x00,
   0x2a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00,
index db48ed2e919eb43f65d7752af120ec2f4f9467ea..747a2089fbb1f2e9f9eaf684ee6248db234490e2 100644 (file)
@@ -277,7 +277,8 @@ void vkvg_close_path (VkvgContext ctx){
         ctx->pathes[ctx->pathPtr] = ctx->pointCount - 1;
         ctx->pathes[ctx->pathPtr-1] |= PATH_CLOSED_BIT;
         _check_pathes_array(ctx);
-        ctx->pathPtr++;
+        ctx->pathPtr += ctx->curvePtr + 1;
+        ctx->curvePtr = 0;
     }else
         _finish_path(ctx);
 }
@@ -343,13 +344,18 @@ void vkvg_arc (VkvgContext ctx, float xc, float yc, float radius, float a1, floa
     if (EQUF(a2, a1))
         return;
 
+    _set_curve_start (ctx);
+
     while(a < a2){
         v.x = cosf(a)*radius + xc;
         v.y = sinf(a)*radius + yc;
         _add_point (ctx, v.x, v.y);
         a+=step;
     }
+
     if (EQUF(a2-a1,M_PIF*2.f)){//if arc is complete circle, last point is the same as the first one
+        ctx->pathes[ctx->pathPtr+ctx->curvePtr+2] = ctx->pointCount - 1;
+        ctx->curvePtr+=2;
         vkvg_close_path(ctx);
         return;
     }
@@ -359,6 +365,7 @@ void vkvg_arc (VkvgContext ctx, float xc, float yc, float radius, float a1, floa
     v.y = sinf(a)*radius + yc;
     //if (!vec2_equ (v,lastP))//this test should not be required
         _add_point (ctx, v.x, v.y);
+    _set_curve_end(ctx);
 }
 void vkvg_arc_negative (VkvgContext ctx, float xc, float yc, float radius, float a1, float a2) {
     while (a2 > a1)
@@ -382,6 +389,8 @@ void vkvg_arc_negative (VkvgContext ctx, float xc, float yc, float radius, float
     if (EQUF(a2, a1))
         return;
 
+    _set_curve_start (ctx);
+
     while(a > a2){
         v.x = cosf(a)*radius + xc;
         v.y = sinf(a)*radius + yc;
@@ -398,6 +407,7 @@ void vkvg_arc_negative (VkvgContext ctx, float xc, float yc, float radius, float
     v.y = sinf(a)*radius + yc;
     //if (!vec2_equ (v,lastP))
         _add_point (ctx, v.x, v.y);
+    _set_curve_end(ctx);
 }
 void vkvg_rel_move_to (VkvgContext ctx, float x, float y)
 {
@@ -418,11 +428,14 @@ void vkvg_curve_to (VkvgContext ctx, float x1, float y1, float x2, float y2, flo
         vkvg_move_to(ctx, x1, y1);
 
     vec2 cp = _get_current_position(ctx);
-    _recursive_bezier       (ctx, cp.x, cp.y, x1, y1, x2, y2, x3, y3, 0);
+
+    _set_curve_start (ctx);
+    _recursive_bezier (ctx, cp.x, cp.y, x1, y1, x2, y2, x3, y3, 0);
     /*cp.x = x3;
     cp.y = y3;
     if (!vec2_equ(ctx->points[ctx->pointCount-1],cp))*/
     _add_point(ctx,x3,y3);
+    _set_curve_end (ctx);
 }
 void vkvg_rel_curve_to (VkvgContext ctx, float x1, float y1, float x2, float y2, float x3, float y3) {
     if (_current_path_is_empty(ctx)){
@@ -546,13 +559,14 @@ void vkvg_stroke_preserve (VkvgContext ctx)
     uint32_t lastPathPointIdx, iL, iR;
 
     while (ptrPath < ctx->pathPtr){
+        int ptrCurve = 0;
         uint32_t firstIdx = ctx->vertCount;
         i = ctx->pathes[ptrPath]&PATH_ELT_MASK;
 
         LOG(LOG_INFO_PATH, "\tPATH: start = %d; ", ctx->pathes[ptrPath]&PATH_ELT_MASK, ctx->pathes[ptrPath+1]&PATH_ELT_MASK);
 
         if (_path_is_closed(ctx,ptrPath)){
-            lastPathPointIdx = ctx->pathes[ptrPath+1]&PATH_ELT_MASK;// _get_last_point_of_closed_path(ctx,ptrPath);
+            lastPathPointIdx = ctx->pathes[ptrPath+1]&PATH_ELT_MASK;
             LOG(LOG_INFO_PATH, "end = %d\n", lastPathPointIdx);
             //prevent closing on the same position, this could be generalize
             //to prevent processing of two consecutive point at the same position
@@ -601,10 +615,27 @@ void vkvg_stroke_preserve (VkvgContext ctx)
             iL = i++;
         }
 
-        while (i < lastPathPointIdx){
-            iR = i+1;
-            _build_vb_step(ctx,v,hw,iL,i,iR);
-            iL = i++;
+        if (_path_has_curves (ctx,ptrPath)) {
+            while (i < lastPathPointIdx){
+                if (i + ptrCurve + 2 < ctx->pathPtr && ctx->pathes [ptrPath + 2 + ptrCurve] == i){
+                    while (i<ctx->pathes[ptrPath + 2 + ptrCurve+1]){
+                        iR = i+1;
+                        _build_vb_step(ctx,v,hw,iL,i,iR,true);
+                        iL = i++;
+                    }
+                    ptrCurve += 2;
+                }else{
+                    iR = i+1;
+                    _build_vb_step(ctx,v,hw,iL,i,iR, false);
+                    iL = i++;
+                }
+            }
+        }else{
+            while (i < lastPathPointIdx){
+                iR = i+1;
+                _build_vb_step(ctx,v,hw,iL,i,iR, false);
+                iL = i++;
+            }
         }
 
         if (!_path_is_closed(ctx,ptrPath)){
@@ -643,7 +674,7 @@ void vkvg_stroke_preserve (VkvgContext ctx)
             i++;
         }else{
             iR = ctx->pathes[ptrPath]&PATH_ELT_MASK;
-            _build_vb_step(ctx,v,hw,iL,i,iR);
+            _build_vb_step(ctx,v,hw,iL,i,iR, false);
 
             uint32_t* inds = (uint32_t*)(ctx->indices.allocInfo.pMappedData + ((ctx->indCount-6) * sizeof(uint32_t)));
             uint32_t ii = firstIdx;
@@ -653,7 +684,7 @@ void vkvg_stroke_preserve (VkvgContext ctx)
             i++;
         }
 
-        ptrPath+=2;
+        ptrPath+=2+ptrCurve;
     }
     _record_draw_cmd(ctx);
 }
index 73fc6751767878b20c5cf7566d0a8155881409bd..1bff46c58846e0463d55f950a30d45c772a2e0f3 100644 (file)
@@ -1,4 +1,4 @@
-/*
+/*
  * Copyright (c) 2018 Jean-Philippe Bruyère <jp_bruyere@hotmail.com>
  *
  * Permission is hereby granted, free of charge, to any person obtaining a copy of
@@ -43,7 +43,7 @@ void _check_cmd_buff_state (VkvgContext ctx) {
         _update_push_constants(ctx);
 }
 void _check_pathes_array (VkvgContext ctx){
-    if (ctx->sizePathes - ctx->pathPtr > VKVG_ARRAY_THRESHOLD)
+    if (ctx->sizePathes - ctx->pathPtr - ctx->curvePtr > VKVG_ARRAY_THRESHOLD)
         return;
     ctx->sizePathes += VKVG_PATHES_SIZE;
     ctx->pathes = (uint32_t*) realloc (ctx->pathes, ctx->sizePathes*sizeof(uint32_t));
@@ -57,6 +57,20 @@ inline bool _current_path_is_empty (VkvgContext ctx) {
 inline vec2 _get_current_position (VkvgContext ctx) {
     return ctx->points[ctx->pointCount-1];
 }
+//set curve start point and set path has curve bit
+inline void _set_curve_start (VkvgContext ctx) {
+    ctx->pathes[ctx->pathPtr+ctx->curvePtr+1] = ctx->pointCount - 1;
+    ctx->pathes[ctx->pathPtr-1] |= PATH_HAS_CURVES_BIT;
+}
+//set curve end point and set path has curve bit
+inline void _set_curve_end (VkvgContext ctx) {
+    ctx->pathes[ctx->pathPtr+ctx->curvePtr+2] = ctx->pointCount - 1;
+    ctx->curvePtr+=2;
+}
+//path start pointed at ptrPath has curve bit
+inline bool _path_has_curves (VkvgContext ctx, int ptrPath) {
+    return ctx->pathes[ptrPath] & PATH_HAS_CURVES_BIT;
+}
 //this function expect that current path is empty
 void _start_sub_path (VkvgContext ctx, float x, float y) {
     //set start to current idx in point array
@@ -77,20 +91,17 @@ void _finish_path (VkvgContext ctx){
     //set end index of current path to last point in points array
     ctx->pathes[ctx->pathPtr] = ctx->pointCount - 1;
     _check_pathes_array(ctx);
-    ctx->pathPtr++;
+    ctx->pathPtr += ctx->curvePtr + 1;
+    ctx->curvePtr = 0;
 }
 void _clear_path (VkvgContext ctx){
     ctx->pathPtr = 0;
     ctx->pointCount = 0;
+    ctx->curvePtr = 0;
 }
 inline bool _path_is_closed (VkvgContext ctx, uint32_t ptrPath){
     return ctx->pathes[ptrPath] & PATH_CLOSED_BIT;
 }
-uint32_t _get_last_point_of_closed_path(VkvgContext ctx, uint32_t ptrPath){
-    if (ptrPath+2 < ctx->pathPtr)                      //this is not the last path
-        return ctx->pathes[ptrPath+2]-1;    //last p is p prior to first idx of next path
-    return ctx->pointCount-1;                          //last point of path is last point of point array
-}
 void _add_point (VkvgContext ctx, float x, float y){
     vec2 v = {x,y};
     ctx->points[ctx->pointCount] = v;
@@ -176,7 +187,7 @@ void _vao_add_rectangle (VkvgContext ctx, float x, float y, float width, float h
 
 void _create_cmd_buff (VkvgContext ctx){
     ctx->cmd = vkh_cmd_buff_create((VkhDevice)ctx->pSurf->dev, ctx->cmdPool,VK_COMMAND_BUFFER_LEVEL_PRIMARY);
-#if DEBUG
+#if defined(DEBUG) && defined(ENABLE_VALIDATION)
     vkh_device_set_object_name((VkhDevice)ctx->pSurf->dev, VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT, (uint64_t)ctx->cmd, "vkvgCtxCmd");
 #endif
 }
@@ -510,7 +521,7 @@ void add_line(vkvg_context* ctx, vec2 p1, vec2 p2, vec4 col){
     ctx->indCount+=2;
 }
 
-void _build_vb_step (vkvg_context* ctx, Vertex v, float hw, uint32_t iL, uint32_t i, uint32_t iR){
+void _build_vb_step (vkvg_context* ctx, Vertex v, float hw, uint32_t iL, uint32_t i, uint32_t iR, bool isCurve){
     vec2 v0n = vec2_line_norm(ctx->points[iL], ctx->points[i]);
     vec2 v1n = vec2_line_norm(ctx->points[i], ctx->points[iR]);
 
@@ -528,7 +539,7 @@ void _build_vb_step (vkvg_context* ctx, Vertex v, float hw, uint32_t iL, uint32_
 
     uint32_t idx = ctx->vertCount;
 
-    if (ctx->lineJoin == VKVG_LINE_JOIN_MITER){
+    if (ctx->lineJoin == VKVG_LINE_JOIN_MITER || isCurve){
         v.pos = vec2_add(ctx->points[i], bisec);
         _add_vertex(ctx, v);
         v.pos = vec2_sub(ctx->points[i], bisec);
@@ -588,7 +599,6 @@ void _build_vb_step (vkvg_context* ctx, Vertex v, float hw, uint32_t iL, uint32_
         else
             v.pos = vec2_add (ctx->points[i], vp);
         _add_vertex(ctx, v);
-
     }
 
 /*
@@ -811,6 +821,7 @@ void _poly_fill (VkvgContext ctx){
 
     while (ptrPath < ctx->pathPtr){
         //close path
+        uint32_t ptrCurve = 0;
         ctx->pathes[ptrPath] |= PATH_CLOSED_BIT;// ctx->pathes[ptrPath];//close path by setting start and end equal
 
         uint32_t firstPtIdx = ctx->pathes[ptrPath]&PATH_ELT_MASK;
@@ -818,15 +829,33 @@ void _poly_fill (VkvgContext ctx){
         uint32_t pathPointCount = lastPtIdx - firstPtIdx + 1;
         uint32_t firstVertIdx = ctx->vertCount;
 
-        for (int i = 0; i < pathPointCount; i++) {
-             v.pos = ctx->points[i+firstPtIdx];
-             _add_vertex(ctx, v);
+        if (_path_has_curves(ctx, ptrPath)) {
+            int i=0;
+            while (i < pathPointCount) {
+                if (ptrPath + ptrCurve < ctx->pathPtr && ctx->pathes[ptrPath+2+ptrCurve] == i+firstPtIdx){
+                    while (i < ctx->pathes[ptrPath+3+ptrCurve] && i < pathPointCount){
+                        v.pos = ctx->points[i+firstPtIdx];
+                        _add_vertex(ctx, v);
+                        i++;
+                    }
+                    ptrCurve+=2;
+                }else{
+                    v.pos = ctx->points[i+firstPtIdx];
+                    _add_vertex(ctx, v);
+                    i++;
+                }
+            }
+        }else{
+            for (int i = 0; i < pathPointCount; i++) {
+                v.pos = ctx->points[i+firstPtIdx];
+                _add_vertex(ctx, v);
+            }
         }
 
         LOG(LOG_INFO_PATH, "\tpoly fill: point count = %d; 1st vert = %d; vert count = %d\n", pathPointCount, firstVertIdx, ctx->vertCount - firstVertIdx);
         CmdDraw (ctx->cmd, pathPointCount, 1, firstVertIdx ,0);
 
-        ptrPath+=2;
+        ptrPath+=2+ptrCurve;
     }
 }
 void _fill_ec (VkvgContext ctx){
@@ -835,7 +864,7 @@ void _fill_ec (VkvgContext ctx){
     v.uv.z = -1;
 
     while (ptrPath < ctx->pathPtr){
-
+        uint32_t ptrCurve = 0;
         ctx->pathes[ptrPath]|=PATH_CLOSED_BIT;//close path
 
         uint32_t firstPtIdx = ctx->pathes[ptrPath]&PATH_ELT_MASK;
@@ -848,12 +877,33 @@ void _fill_ec (VkvgContext ctx){
         uint32_t i = 0;
 
         //init points link list
-        while (i < pathPointCount-1){
-            v.pos = ctx->points[i+firstPtIdx];
-            ear_clip_point ecp = {v.pos, i+firstVertIdx, &ecps[i+1]};
-            ecps[i] = ecp;
-            _add_vertex(ctx, v);
-            i++;
+        if (_path_has_curves(ctx, ptrPath)) {
+            while (i < pathPointCount-1){
+                if (ptrPath + ptrCurve < ctx->pathPtr && ctx->pathes[ptrPath+2+ptrCurve] == i+firstPtIdx){
+                    while (i < ctx->pathes[ptrPath+3+ptrCurve] && i < pathPointCount-1){
+                        v.pos = ctx->points[i+firstPtIdx];
+                        ear_clip_point ecp = {v.pos, i+firstVertIdx, &ecps[i+1]};
+                        ecps[i] = ecp;
+                        _add_vertex(ctx, v);
+                        i++;
+                    }
+                    ptrCurve+=2;
+                }else{
+                    v.pos = ctx->points[i+firstPtIdx];
+                    ear_clip_point ecp = {v.pos, i+firstVertIdx, &ecps[i+1]};
+                    ecps[i] = ecp;
+                    _add_vertex(ctx, v);
+                    i++;
+                }
+            }
+        }else{
+            while (i < pathPointCount-1){
+                v.pos = ctx->points[i+firstPtIdx];
+                ear_clip_point ecp = {v.pos, i+firstVertIdx, &ecps[i+1]};
+                ecps[i] = ecp;
+                _add_vertex(ctx, v);
+                i++;
+            }
         }
         v.pos = ctx->points[i+firstPtIdx];
         ear_clip_point ecp = {v.pos, i+firstVertIdx, ecps};
@@ -896,7 +946,7 @@ void _fill_ec (VkvgContext ctx){
         if (ecps_count == 3)
             _add_triangle_indices(ctx, ecp_current->next->idx, ecp_current->idx, ecp_current->next->next->idx);
 
-        ptrPath+=2;
+        ptrPath+=2+ptrCurve;
     }
     _record_draw_cmd(ctx);
 }
index b09061015474a21fdcb9ea66fd19ee17e92150ff..d48bdbbacff8055e0b6bf6968cb8f3bf7920bc95 100644 (file)
@@ -102,14 +102,20 @@ typedef struct _vkvg_context_t {
     size_t             sizePoints;     //reserved size
     uint32_t   pointCount;     //effective points count
 
-    uint32_t   pathPtr;
     //pathes array is a list of couple (start,end) point idx refering to point array
     //it split points list in subpathes and tell if path is closed.
     //if path is closed, end index is the same as start.
     //(TODO: I should use a boolean or smthg else instead to keep last point in array)
+    uint32_t   pathPtr;        //pointer in the path array, even=start point;odd=end point
     uint32_t*  pathes;
     size_t             sizePathes;
 
+    //if current path contains curves, start/end points are store next to the path start/stop
+    //curve start point = pathPtr + curvePtr
+    //when closing of finishing path, pathPtr is incremented by 1 + pathPtr
+    //note:number of pathes can no longuer be computed from pathPtr/2, the array contains now curves datas
+    uint32_t    curvePtr;
+
     float              lineWidth;
 
     vkvg_operator_t     curOperator;
@@ -145,7 +151,9 @@ void _check_pathes_array    (VkvgContext ctx);
 void _finish_path                      (VkvgContext ctx);
 void _clear_path                       (VkvgContext ctx);
 bool _path_is_closed           (VkvgContext ctx, uint32_t ptrPath);
-uint32_t _get_last_point_of_closed_path (VkvgContext ctx, uint32_t ptrPath);
+void _set_curve_start       (VkvgContext ctx);
+void _set_curve_end         (VkvgContext ctx);
+bool _path_has_curves       (VkvgContext ctx, int ptrPath);
 
 float _normalizeAngle       (float a);
 
@@ -164,7 +172,7 @@ void _add_vertexf           (VkvgContext ctx, float x, float y);
 void _set_vertex                       (VkvgContext ctx, uint32_t idx, Vertex v);
 void _add_triangle_indices     (VkvgContext ctx, uint32_t i0, uint32_t i1,uint32_t i2);
 void _add_tri_indices_for_rect (VkvgContext ctx, uint32_t i);
-void _build_vb_step         (vkvg_context* ctx, Vertex v, float hw, uint32_t iL, uint32_t i, uint32_t iR);
+void _build_vb_step         (vkvg_context* ctx, Vertex v, float hw, uint32_t iL, uint32_t i, uint32_t iR, bool isCurve);
 void _vao_add_rectangle     (VkvgContext ctx, float x, float y, float width, float height);
 
 void _bind_draw_pipeline    (VkvgContext ctx);
index 0e66b42832979313f590850184d9aba32a3cc8ec..e36fbb7bad739891e289170e93baba4cc5186702 100644 (file)
 #include <float.h>
 #include <math.h>
 
-#define M_PIF           3.14159265358979323846f /* float pi */
-#define PATH_CLOSED_BIT 0x80000000              /* most significant bit of path elmts is closed/open path state */
-#define PATH_ELT_MASK   0x7FFFFFFF              /* Bit mask for fetching path element value */
+#define M_PIF               3.14159265358979323846f /* float pi */
+#define PATH_CLOSED_BIT     0x80000000              /* most significant bit of path elmts is closed/open path state */
+#define PATH_HAS_CURVES_BIT 0x40000000              /* most significant bit of path elmts end is continue path bit
+                                                       Used to handle curved/line transition */
+#define PATH_IS_CURVE_BIT   0x80000000              /* most significant bit of path elmts end is curve/line state,
+                                                       stored to avoid emiting join in curves */
+#define PATH_ELT_MASK       0x3FFFFFFF              /* Bit mask for fetching path element value */
 
 #define ROUNDF(f, c) (((float)((int)((f) * (c))) / (c)))
 #define ROUND_DOWN(v,p) (floorf(v * p) / p)
index 149fe0a7fb3d6f74bc0dd38a887286256713da09..a4018903f28f8db1dda404253e21cc06574c3a9b 100644 (file)
@@ -157,7 +157,7 @@ void _init_surface (VkvgSurface surf) {
     _create_framebuffer         (surf);
 
     _clear_surface              (surf, VK_IMAGE_ASPECT_STENCIL_BIT);
-#if DEBUG
+#if defined(DEBUG) && defined(ENABLE_VALIDATION)
     vkh_image_set_name(surf->img, "surfImg");
     vkh_image_set_name(surf->imgMS, "surfImgMS");
     vkh_image_set_name(surf->stencil, "surfStencil");
index 31d11e01df5475eee3100257c55b83bf73df47db..6f7265c66ab93bfcfd909faf773585ad55417773 100644 (file)
@@ -108,14 +108,23 @@ vk_engine_t* vkengine_create (VkPhysicalDeviceType preferedGPU, VkPresentModeKHR
 
     for (uint i=0;i<enabledExtsCount;i++)
         enabledExts[i] = gflwExts[i];
-#if DEBUG
+
+#if defined (ENABLE_VALIDATION)
+    const uint32_t enabledLayersCount = 2;
+    const char* enabledLayers[] = {"VK_LAYER_KHRONOS_validation", "VK_LAYER_RENDERDOC_Capture"};
+#else
+    const uint32_t enabledLayersCount = 0;
+    const char* enabledLayers[] = {NULL};
+#endif
+#if defined (DEBUG)
     enabledExts[enabledExtsCount] = "VK_EXT_debug_report";
     enabledExtsCount++;
     enabledExts[enabledExtsCount] = "VK_EXT_debug_utils";
     enabledExtsCount++;
 #endif
 
-    e->app = vkh_app_create("vkvgTest", enabledExtsCount, enabledExts);
+
+    e->app = vkh_app_create("vkvgTest", enabledLayersCount, enabledLayers, enabledExtsCount, enabledExts);
 
     glfwWindowHint(GLFW_CLIENT_API, GLFW_NO_API);
     glfwWindowHint(GLFW_RESIZABLE,  GLFW_TRUE);
@@ -178,7 +187,7 @@ vk_engine_t* vkengine_create (VkPhysicalDeviceType preferedGPU, VkPresentModeKHR
         }
     }
 
-#if DEBUG
+#if defined(DEBUG) && defined(ENABLE_VALIDATION)
     char const * dex [] = {"VK_KHR_swapchain", "VK_EXT_debug_marker"};
     enabledExtsCount = 2;
 #else
index 11e44d47c503843f5b029743d0ecbe0aca8b9771..e305c51aee921988a10a2532774c80d8f52b13ee 100644 (file)
@@ -3,13 +3,54 @@
 void test(){
     VkvgContext ctx = vkvg_create(surf);
 
+    vkvg_set_fill_rule(ctx, VKVG_FILL_RULE_NON_ZERO);
     vkvg_set_line_width(ctx, 10);
-    vkvg_set_source_rgb   (ctx, 0,0,0);
 
-    vkvg_arc(ctx, 150, 100, 10, 0, M_PI*2);
-    vkvg_fill(ctx);
-    vkvg_arc(ctx, 200, 200, 10, 0, M_PI*2);
-    vkvg_fill(ctx);
+    //vkvg_move_to(ctx,400,100);
+    vkvg_arc(ctx, 300, 300, 100, 0, M_PI);
+    vkvg_line_to(ctx,200,100);
+    vkvg_arc(ctx, 250, 100, 50, M_PI, M_PI * 1.5f);
+    vkvg_line_to(ctx,350,50);
+    vkvg_arc(ctx, 350, 100, 50, M_PI*1.5f, M_PI * 2.0f);
+
+    vkvg_set_source_rgb   (ctx, 1,0,0);
+    vkvg_fill_preserve(ctx);
+    vkvg_set_source_rgb   (ctx, 1,1,0);
+    vkvg_stroke_preserve(ctx);
+    vkvg_translate(ctx,50,50);
+    vkvg_set_source_rgb   (ctx, 1,0,0);
+    vkvg_fill_preserve(ctx);
+    vkvg_set_source_rgb   (ctx, 1,1,0);
+    vkvg_stroke_preserve(ctx);
+    vkvg_translate(ctx,50,50);
+    vkvg_set_source_rgb   (ctx, 1,0,0);
+    vkvg_fill_preserve(ctx);
+    vkvg_set_source_rgb   (ctx, 1,1,0);
+    vkvg_stroke_preserve(ctx);
+    vkvg_translate(ctx,50,50);
+    vkvg_set_source_rgb   (ctx, 1,0,0);
+    vkvg_fill_preserve(ctx);
+    vkvg_set_source_rgb   (ctx, 1,1,0);
+    vkvg_stroke_preserve(ctx);
+    vkvg_translate(ctx,50,50);
+    vkvg_set_source_rgb   (ctx, 1,0,0);
+    vkvg_fill_preserve(ctx);
+    vkvg_set_source_rgb   (ctx, 1,1,0);
+    vkvg_stroke_preserve(ctx);
+    vkvg_translate(ctx,50,50);
+    vkvg_set_source_rgb   (ctx, 1,0,0);
+    vkvg_fill_preserve(ctx);
+    vkvg_set_source_rgb   (ctx, 1,1,0);
+    vkvg_stroke_preserve(ctx);
+    vkvg_translate(ctx,50,50);
+    vkvg_set_source_rgb   (ctx, 1,0,0);
+    vkvg_fill_preserve(ctx);
+    vkvg_set_source_rgb   (ctx, 1,1,0);
+    vkvg_stroke_preserve(ctx);
+    vkvg_translate(ctx,100,100);
+
+    /*vkvg_arc(ctx, 200, 200, 10, 0, M_PI*2);
+
 
     vkvg_set_source_rgba   (ctx, 0.5,0.0,1.0,0.5);
     vkvg_move_to(ctx,100,100);
@@ -24,8 +65,8 @@ void test(){
     vkvg_close_path(ctx);
     //vkvg_curve_to(ctx, 150,100,200,150,200,200);
     vkvg_fill_preserve(ctx);
-    vkvg_set_source_rgba   (ctx, 1,1,1.0,0.5);
-    vkvg_stroke(ctx);
+    vkvg_set_source_rgba   (ctx, 1,1,1.0,0.5);*/
+    //vkvg_stroke(ctx);
 
     vkvg_destroy(ctx);
 }
index 1174884bc29467bef952bd1ec7b31769bd00cfc1..791d3919bb9f4504998e5d110749e2c7b6a6c202 100644 (file)
@@ -17,7 +17,7 @@ void test(){
     vkvg_set_source_rgb (ctx, 0, 0, 1);
     vkvg_fill_preserve (ctx);
     //vkvg_fill(ctx);
-    vkvg_set_source_rgb (ctx, 0, 0, 0);
+    vkvg_set_source_rgb (ctx, 1, 0, 0);
     vkvg_stroke (ctx);
 
     vkvg_destroy(ctx);
index 9f5fc5626e38bcc2b59428641d12a9cf5a8d053d..c11a6dc8a95b02fb2db6a3e2653a4f181cdd94a8 100644 (file)
@@ -3,15 +3,16 @@
 void test(){
     VkvgContext ctx = vkvg_create(surf);
 
-    VkvgPattern pat = vkvg_pattern_create_linear(100,0,300,0);
+    VkvgPattern pat = vkvg_pattern_create_linear(0,0,300,300);
     vkvg_set_line_width(ctx, 20);
     vkvg_pattern_add_color_stop(pat, 0, 1, 0, 0, 1);
     vkvg_pattern_add_color_stop(pat, 0.5, 0, 1, 0, 1);
     vkvg_pattern_add_color_stop(pat, 1, 0, 0, 1, 1);
     vkvg_set_source (ctx, pat);
     vkvg_rectangle(ctx,100,100,200,200);
-    vkvg_fill (ctx);
-    //vkvg_stroke (ctx);
+    //vkvg_fill (ctx);
+    //vkvg_paint(ctx);
+    vkvg_stroke (ctx);
     vkvg_pattern_destroy (pat);
 
     vkvg_destroy(ctx);
index 4668ca0aa8d94c9dd1615a2959a2acd278e4b3bd..196fe9eff9793f444f6ccf41d000d932f3715a0f 100644 (file)
@@ -4,8 +4,9 @@ void test(){
     VkvgContext ctx = vkvg_create(surf);
 
     //vkvg_translate(ctx,-100,-100);
-    //vkvg_rotate(ctx,1.5);
-    //vkvg_translate(ctx,100,100);
+
+    vkvg_translate(ctx,100,100);
+    vkvg_rotate(ctx,0.5);
 
     vkvg_scale(ctx,2,2);
     VkvgPattern pat = vkvg_pattern_create_linear(0,0,200,0);
index e2063bb7be8bf261af00611b18ed4f2746215ef6..002510f3dcfa46424ada6d2cfe9c999ae0137b23 100644 (file)
@@ -11,7 +11,7 @@ void test(){
     VkvgContext ctx = vkvg_create(surf);
     vkvg_set_fill_rule(ctx, VKVG_FILL_RULE_NON_ZERO);
     vkvg_set_line_width(ctx,2);
-    for (int i=0; i<1500; i++) {
+    for (int i=0; i<500; i++) {
         randomize_color(ctx);
         float x = trunc( (0.5*(float)w*rand())/RAND_MAX );
         float y = trunc( (0.5*(float)w*rand())/RAND_MAX );
index dd0b15f18021bef0e83f1fa901df80794f80013a..0e9d0c1bd9d77e7057f8c3dca0190a13a089211b 100644 (file)
@@ -3,7 +3,7 @@
 void test(){
     vkvg_surface_clear(surf);
     VkvgContext ctx = vkvg_create(surf);
-    vkvg_set_fill_rule(ctx, VKVG_FILL_RULE_NON_ZERO);
+    vkvg_set_fill_rule(ctx, VKVG_FILL_RULE_EVEN_ODD);
     vkvg_set_line_width(ctx,10);
     vkvg_set_source_rgba(ctx,0,0,1,0.5);
     vkvg_rectangle(ctx,100,100,200,200);
index f3c1161f6df8aba5165d94a6f6c47495b0cb90f5..9ea7aae142bd31c33afa270eb6cda40968651f12 100644 (file)
@@ -9,6 +9,8 @@ void test(){
 
 int main(int argc, char *argv[]) {
 
+    vkengine_dump_available_layers();
+
     perform_test (test, 1024, 768);
 
     return 0;
index f60380b3e056a008892b6ef427764b03bd5dd706..a8d880f08e5276ea743afe18c86c01dd3dace44b 100644 (file)
@@ -14,6 +14,8 @@ void _svg_set_color (VkvgContext ctx, uint32_t c, float alpha) {
 
 static float rotation = 0.f;
 static const char* path = "data/tiger.svg";
+//static const char* path = "data/vkvg.svg";
+//static const char* path = "data/testPiece.svg";
 
 void test_svg_surface() {
     VkvgSurface svgSurf = vkvg_surface_create_from_svg(device, path);
@@ -37,7 +39,8 @@ void test_nsvg() {
     vkvg_set_source_rgba(ctx,0.9f,1.0,1.0,1);
     vkvg_paint(ctx);
 
-    vkvg_scale(ctx,0.3f,0.3f);
+    vkvg_scale(ctx,1.0f,1.0f);
+    //vkvg_render_svg(ctx, svg, "br0");
     vkvg_render_svg(ctx, svg, NULL);
 
     vkvg_destroy(ctx);
@@ -129,6 +132,6 @@ void test_svg () {
 
 int main(int argc, char *argv[]) {
 
-    perform_test (test_nsvg, 512, 512);
+    perform_test (test_nsvg, 1024, 800);
     return 0;
 }
diff --git a/vkh b/vkh
index 38f463fd3eda82350ed019f17ead06e6057b16d1..38ec67de2972f9d4734980a7a83bd4baf9784aa5 160000 (submodule)
--- a/vkh
+++ b/vkh
@@ -1 +1 @@
-Subproject commit 38f463fd3eda82350ed019f17ead06e6057b16d1
+Subproject commit 38ec67de2972f9d4734980a7a83bd4baf9784aa5